Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
aab8b34
feat: add enum-backed packed string
jcfangc Aug 2, 2026
1630b5c
feat: scaffold packed string API
jcfangc Aug 2, 2026
00329f0
fix: make set_chunk overwrite existing bits
jcfangc Aug 2, 2026
85531ec
refactor: encode packed width as const generic
jcfangc Aug 2, 2026
c15fa1c
feat: derive packed character encodings
jcfangc Aug 2, 2026
600ef8a
chore: add reproducible codegen comparison tooling
jcfangc Aug 27, 2026
6273527
fix: harden codegen comparison tooling
jcfangc Aug 30, 2026
a70c16b
fix: compare production release codegen
jcfangc Aug 30, 2026
f6c328f
fix: audit independent backend codegen roots
jcfangc Aug 30, 2026
5cd550a
refactor: split count_ones backends
jcfangc Aug 30, 2026
ec585dc
fix: materialize codegen harness source
jcfangc Aug 30, 2026
f8a5b25
fix: pin codegen harness revision
jcfangc Aug 30, 2026
55dea04
fix: isolate baseline codegen worktree
jcfangc Aug 30, 2026
0a6ddd5
refactor: split pack_bools backends
jcfangc Aug 30, 2026
5de3844
refactor: split pack_str backends
jcfangc Aug 30, 2026
23f0422
refactor: split binary backends
jcfangc Aug 30, 2026
23fb110
fix: cover binary codegen variants
jcfangc Aug 30, 2026
bbecf66
refactor: split not backends
jcfangc Aug 30, 2026
8b6604d
refactor: split shl backends
jcfangc Aug 30, 2026
58c7bf3
refactor: split shr backends
jcfangc Aug 30, 2026
5051974
refactor: split copy_words_shifted backends
jcfangc Aug 30, 2026
543b520
fix: normalize anonymous relocation identities
jcfangc Aug 30, 2026
d7cf6db
fix: handle anonymous relocation variants
jcfangc Aug 30, 2026
e780b29
fix: preserve anonymous relocation addends
jcfangc Aug 30, 2026
3952f53
fix: normalize anonymous relocation ordinals
jcfangc Aug 30, 2026
dc1fe39
refactor: split eq_words_aligned backends
jcfangc Aug 30, 2026
ce97458
refactor: split eq_words_unaligned backends
jcfangc Aug 30, 2026
e39a0b4
refactor: split cmp_aligned backends
jcfangc Aug 30, 2026
929e1c7
refactor: split cmp_unaligned backends
jcfangc Aug 30, 2026
ef4cca8
refactor: split contains backends
jcfangc Aug 30, 2026
e7a5b41
fix: compare anonymous relocation targets semantically
jcfangc Aug 30, 2026
bc0b1c9
fix: preserve relocation identity during comparison
jcfangc Aug 30, 2026
badb700
fix: resolve one-level nested anonymous targets
jcfangc Aug 30, 2026
832b296
fix: preserve nested anonymous alias topology
jcfangc Aug 30, 2026
7a4cf2c
fix: make metadata changes non-blocking by default
jcfangc Aug 30, 2026
f8365de
refactor: split find_core backends
jcfangc Aug 30, 2026
e01e3c8
refactor: split rfind_core backends
jcfangc Aug 30, 2026
a7e14fc
refactor: split leading_core backends
jcfangc Aug 30, 2026
bc61492
fix: cover leading codegen specializations
jcfangc Aug 30, 2026
9aef41e
fix: cover trailing codegen specializations
jcfangc Aug 30, 2026
189ea51
refactor: split trailing_core backends
jcfangc Aug 30, 2026
7971ed4
fix: refine codegen topology comparison
jcfangc Aug 31, 2026
66ab326
refactor: split words_eq scalar backends
jcfangc Aug 31, 2026
9b7c10a
refactor: split words_ord scalar backends
jcfangc Aug 31, 2026
e989199
refactor: split contains scalar backend
jcfangc Aug 31, 2026
ec60aaa
refactor: split find scalar backend
jcfangc Aug 31, 2026
436a59e
refactor: split rfind scalar backend
jcfangc Aug 31, 2026
3396aca
docs: remove obsolete architecture notes
jcfangc Aug 31, 2026
089fac0
refactor: move bool construction impls to parent
jcfangc Aug 31, 2026
dd21158
refactor: flatten words scan ends module
jcfangc Sep 1, 2026
6db8c3f
refactor: extract shifted-copy scalar backend
jcfangc Sep 1, 2026
9646d63
docs: align repository documentation with current APIs
jcfangc Sep 1, 2026
2a954e5
chore: identify Python tooling project
jcfangc Sep 1, 2026
c8b4373
chore: close bit-string cleanup
jcfangc Sep 1, 2026
03c09ee
refactor packed string length derivation
jcfangc Sep 2, 2026
c84ce03
validate packed string bit payloads
jcfangc Sep 2, 2026
ee9b611
refactor packed string views around bitstr
jcfangc Sep 2, 2026
dc05db1
add packed attribute macro
jcfangc Sep 2, 2026
6cccb1d
implement packed matching and ordering
jcfangc Sep 4, 2026
f0f67ce
implement packed construction and insertion
jcfangc Sep 4, 2026
8cdcc95
implement packed concatenation and slicing
jcfangc Sep 4, 2026
e7eeddb
implement packed replacement and filtering
jcfangc Sep 4, 2026
38e78f0
consolidate packed macro API
jcfangc Sep 4, 2026
6c92eb0
fix bitstr rustdoc link
jcfangc Sep 4, 2026
482ff8f
test packed character views and edits
jcfangc Sep 4, 2026
1d65fdc
fix packed string ordering semantics
jcfangc Sep 5, 2026
9e31708
propagate packed string invariants
jcfangc Sep 5, 2026
25c43d1
add packed string oracle tests
jcfangc Sep 5, 2026
d54e24a
harden packed boundary coverage
jcfangc Sep 5, 2026
6201623
make packed edit oracle explicit
jcfangc Sep 5, 2026
cea5e2b
chore: retire codegen migration gate
jcfangc Sep 5, 2026
6f85c11
prepare 0.6.0 release
jcfangc Sep 5, 2026
7ba78d0
inherit release version from workspace
jcfangc Sep 5, 2026
ef6392e
replace int-interval dependency
jcfangc Sep 5, 2026
4347e20
harden release workflow documentation
jcfangc Sep 5, 2026
075fc02
correct packed type size documentation
jcfangc Sep 5, 2026
3b34a41
reuse shared release publisher for derive
jcfangc Sep 5, 2026
efc04ae
pin CodSpeed workflow environment
jcfangc Sep 5, 2026
27ba5cb
pin CodSpeed workflow revision
jcfangc Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/codspeed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ permissions:

jobs:
benchmarks:
uses: jcfangc/ci/.github/workflows/rust-codspeed.yml@v0
uses: jcfangc/ci/.github/workflows/rust-codspeed.yml@ccd19196bcd8e8a42924c0621c321ee2dc2db61a
with:
rust_toolchain: stable
rust_toolchain: "1.98.1"
cargo_codspeed_version: "5.0.1"
runner: ubuntu-24.04
build_command: RUSTFLAGS="-C target-feature=+avx2" cargo codspeed build -m simulation
run_command: cargo codspeed run -m simulation ours_
8 changes: 7 additions & 1 deletion .github/workflows/gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
fail-fast: false
matrix:
include:
- name: linux-x64-scalar
- name: linux-x64-baseline
os: ubuntu-latest
rustflags: ""

Expand All @@ -40,6 +40,8 @@ jobs:

steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0

- uses: dtolnay/rust-toolchain@stable

Expand All @@ -60,3 +62,7 @@ jobs:

- name: Test
run: cargo test --locked

- name: Test benchmark tooling
if: matrix.name == 'linux-x64-baseline'
run: python3 -m unittest discover -s scripts/tests -v
28 changes: 28 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,35 @@ concurrency:
cancel-in-progress: false

jobs:
publish-derive:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- name: Checkout CI scripts
env:
CI_REF: v0
run: |
rm -rf "$RUNNER_TEMP/ci"
git clone --depth 1 --branch "$CI_REF" \
https://github.com/jcfangc/ci \
"$RUNNER_TEMP/ci"
test -f "$RUNNER_TEMP/ci/.github/scripts/release/publish.py"

- name: Test
run: cargo test --locked

- name: Publish derive crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
PACKAGE_MANIFEST: derive/Cargo.toml
RELEASE_MODE: ${{ inputs.mode || 'real' }}
run: python3 "$RUNNER_TEMP/ci/.github/scripts/release/publish.py"

release:
needs: publish-derive
uses: jcfangc/ci/.github/workflows/rust-crates-release.yml@v0
with:
mode: ${{ inputs.mode || 'real' }}
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,10 @@
/.venv
/proptest-regressions
.cargo/config.toml

# Python tooling caches
__pycache__/
*.py[cod]
.pytest_cache/
.mypy_cache/
.ruff_cache/
66 changes: 0 additions & 66 deletions CLAUDE.md

This file was deleted.

21 changes: 16 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 12 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
[package]
name = "bit-string"
version = "0.5.0"
version.workspace = true
edition = "2024"
description = "A compact owned bit string type with editing, matching, and bitwise operations."
readme = "README.md"
repository = "https://github.com/jcfangc/bit-string"
license = "MIT OR Apache-2.0"
keywords = ["bitstring", "bits", "bitset", "sequence"]
categories = ["data-structures", "no-std"]
exclude = ["/benches", "/src/**/tests_for_*", "/tests", ".github/"]
exclude = ["/benches", "/scripts", "/src/**/tests_for_*", "/tests", ".github/"]

[workspace]
members = ["derive"]

[workspace.package]
version = "0.6.0"

[workspace.dependencies]
bit-string-derive = { version = "0.6", path = "derive" }

[dependencies]
int-interval = "0.9.6"
bit-string-derive.workspace = true
int-intervals = "0.1"
witnessed = "0.8.0"

[lib]
Expand Down
Loading
Loading