Merge dev#1
Merged
Merged
Conversation
- Added `.vscode/**`, `.cursor/**`, and `.claude/**` to the list of excluded directories in the publish configuration, ensuring a cleaner package output.
- Introduced new utility functions in `mod.ts` for better access to bitwise operations and validation methods, including `fromArray`, `fromObjects`, and `fromUint32Array`. - Updated `README.md` to reflect changes in method names, replacing `getTruthyCount` with `getCount`, and improved examples for clarity. - Added constants and validation utilities in `constants.ts` and `validation.ts` to streamline the codebase and enhance maintainability. - Updated benchmarks in `BooleanArray.bench.ts` to align with new method signatures and improve performance testing accuracy. - Refined `.gitignore` to exclude coverage reports, ensuring cleaner repository management.
- Introduced a new benchmark script `gc_allocations.ts` to measure garbage collection allocation pressure for various `BooleanArray` APIs. - Updated `deno.json` to include a new command `bench:allocations` for running the benchmark. - Enhanced `mod.ts` by exporting new utility functions `getLSBPosition` and `popcount` for better access to bitwise operations. - Refactored `BooleanArray` methods to optimize memory usage during operations, ensuring efficient performance in tight loops.
…benchmarks - Added `nextTruthyIndex`, `nextFalsyIndex`, and `nextIndexOf` methods to `BooleanArray` for efficient cursor-style scanning without allocations. - Enhanced `README.md` to document the new cursor methods and their usage. - Introduced benchmarks for the new cursor methods in `gc_allocations.ts` to measure performance under various scenarios. - Expanded tests in `boolean-array.test.ts` to validate the behavior of the new cursor APIs, ensuring correct functionality and range handling.
…nchmarks - Changed the target library version in `deno.json` from `es2022` to `es2024`. - Enhanced `mod.ts` by adding new utility functions for `fromUint8Array` and additional bitwise operations, improving the `BooleanArray` API. - Updated `README.md` to reflect new methods and usage examples, including bulk operations and zero-allocation methods. - Introduced new benchmark tasks in `deno.json` for measuring GC allocation pressure and comparing with external npm packages. - Added a new benchmark script `external_gc_allocations.ts` to evaluate memory usage against competitor libraries.
- Updated `mod.ts` to include additional constants and utility functions for better access to bitwise operations, including `BITS_PER_INT`, `MAX_SAFE_SIZE`, and `MAX_UINT32`. - Refactored the `BooleanArray` class to expose new static methods for size and value validation, chunk calculations, and array creation from various input types. - Improved the CI workflow in `publish.yml` by adding steps for Deno setup, linting documentation, and verifying package publication. - Updated `constants.ts` to ensure type consistency for `ALL_BITS_TRUE` and maintain clarity in the codebase.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merge
devintomainwith a broad BooleanArray performance/API update focused on reducing allocation pressure in hot paths, improving typed-arrayinteroperability, and tightening release validation.
Changes
cloneIntocopyFromArraycopyFromObjectssetFromObjectscopyFromUint32Array/copyToUint32ArraycopyFromUint8Array/copyToUint8ArraygetUint8IntoandInto,orInto,xorInto,differenceIntonandInto,norInto,xnorInto,notIntointersectscontainsAllnextTruthyIndexnextFalsyIndexArrayLikeinputs, including typed numeric index streams and positionalUint8Arraymasks.deno publish.operations.