Bit tricks as a lawful algebra. A learning project; the README's Status section says what to expect.
mainEvery cell is one Nix derivation built in a sandbox without network;
the matrix lives in nix/matrix.nix and the workflow reads
it at run time. Only cells whose output is not yet in the binary
cache are built; a cell in the cache passed by construction. CI
writes each result here after every push
(.github/status.sh). Benchmarks are tracked over time,
never pass/fail.
| check | x86_64-linux | aarch64-linux |
|---|---|---|
cargo-audit: RustSec advisories, offlinehakmem-audit | pending | pending |
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2hakmem-clippy-bmi2-default | pending | pending |
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2, no default features (no alloc)hakmem-clippy-bmi2-no-default | pending | pending |
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2, feature portablehakmem-clippy-bmi2-portable-feature | pending | pending |
clippy, portablehakmem-clippy-portable-default | pending | pending |
clippy, portable, no default features (no alloc)hakmem-clippy-portable-no-default | pending | pending |
codegen, +bmi2,+pclmulqdq,+ssse3,+avx2: lib.rs's claims hold for the asm, and the instruction countshakmem-codegen-bmi2 | pending | pending |
codegen, no flags: the benches' innermost loops by hakmem function, llvm-mca cycleshakmem-codegen-loops-portable | pending | pending |
codegen, x86-64-v3: the benches' innermost loops by hakmem function, llvm-mca cycleshakmem-codegen-loops-v3 | pending | pending |
codegen, no flags: hakmem functions left out of line in the bencheshakmem-codegen-outlined-portable | pending | pending |
codegen, x86-64-v3: hakmem functions left out of line in the bencheshakmem-codegen-outlined-v3 | pending | pending |
codegen, no flags: lib.rs's claims hold for the asm, and the instruction countshakmem-codegen-portable | pending | pending |
cargo-deny: licences, bans, sourceshakmem-deny | pending | pending |
rustdoc, warnings as errors, as docs.rs builds ithakmem-doc | pending | pending |
doctests (the README), +bmi2,+pclmulqdq,+ssse3,+avx2hakmem-doctest-bmi2 | pending | pending |
doctests (the README), portablehakmem-doctest-portable | pending | pending |
MSRV 1.89.0: the packaged tarball builds and testshakmem-msrv | pending | pending |
bare metal and kernels: the none targets build, and a +bmi2 kernel keeps PEXThakmem-none | pending | pending |
what cargo publish uploads: the file list, and the changelog heading the versionhakmem-package | pending | pending |
the public API matches public-api/, every targethakmem-public-api | pending | pending |
tests, +bmi2,+pclmulqdq,+ssse3,+avx2hakmem-test-bmi2-default | pending | pending |
tests, +bmi2,+pclmulqdq,+ssse3,+avx2, no default features (no alloc)hakmem-test-bmi2-no-default | pending | pending |
tests, +bmi2,+pclmulqdq,+ssse3,+avx2, feature portablehakmem-test-bmi2-portable-feature | pending | pending |
tests, debug build (debug asserts, overflow checks)hakmem-test-debug | pending | pending |
tests, portablehakmem-test-portable-default | pending | pending |
tests, portable, no default features (no alloc)hakmem-test-portable-no-default | pending | pending |
Miri over the intrinsics, every path Miri can runmiri | pending | pending |
Check that the project tree is formattedtreefmt | pending | pending |
.github/ is what nix/workflows.nix renders: parsed back, actionlint, shellcheck, zizmorworkflows | pending | pending |