hakmem

Bit tricks as a lawful algebra. A learning project; the README's Status section says what to expect.

Checks on main

Every 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.

checkx86_64-linuxaarch64-linux
cargo-audit: RustSec advisories, offline
hakmem-audit
pendingpending
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2
hakmem-clippy-bmi2-default
pendingpending
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2, no default features (no alloc)
hakmem-clippy-bmi2-no-default
pendingpending
clippy, +bmi2,+pclmulqdq,+ssse3,+avx2, feature portable
hakmem-clippy-bmi2-portable-feature
pendingpending
clippy, portable
hakmem-clippy-portable-default
pendingpending
clippy, portable, no default features (no alloc)
hakmem-clippy-portable-no-default
pendingpending
codegen, +bmi2,+pclmulqdq,+ssse3,+avx2: lib.rs's claims hold for the asm, and the instruction counts
hakmem-codegen-bmi2
pendingpending
codegen, no flags: the benches' innermost loops by hakmem function, llvm-mca cycles
hakmem-codegen-loops-portable
pendingpending
codegen, x86-64-v3: the benches' innermost loops by hakmem function, llvm-mca cycles
hakmem-codegen-loops-v3
pendingpending
codegen, no flags: hakmem functions left out of line in the benches
hakmem-codegen-outlined-portable
pendingpending
codegen, x86-64-v3: hakmem functions left out of line in the benches
hakmem-codegen-outlined-v3
pendingpending
codegen, no flags: lib.rs's claims hold for the asm, and the instruction counts
hakmem-codegen-portable
pendingpending
cargo-deny: licences, bans, sources
hakmem-deny
pendingpending
rustdoc, warnings as errors, as docs.rs builds it
hakmem-doc
pendingpending
doctests (the README), +bmi2,+pclmulqdq,+ssse3,+avx2
hakmem-doctest-bmi2
pendingpending
doctests (the README), portable
hakmem-doctest-portable
pendingpending
MSRV 1.89.0: the packaged tarball builds and tests
hakmem-msrv
pendingpending
bare metal and kernels: the none targets build, and a +bmi2 kernel keeps PEXT
hakmem-none
pendingpending
what cargo publish uploads: the file list, and the changelog heading the version
hakmem-package
pendingpending
the public API matches public-api/, every target
hakmem-public-api
pendingpending
tests, +bmi2,+pclmulqdq,+ssse3,+avx2
hakmem-test-bmi2-default
pendingpending
tests, +bmi2,+pclmulqdq,+ssse3,+avx2, no default features (no alloc)
hakmem-test-bmi2-no-default
pendingpending
tests, +bmi2,+pclmulqdq,+ssse3,+avx2, feature portable
hakmem-test-bmi2-portable-feature
pendingpending
tests, debug build (debug asserts, overflow checks)
hakmem-test-debug
pendingpending
tests, portable
hakmem-test-portable-default
pendingpending
tests, portable, no default features (no alloc)
hakmem-test-portable-no-default
pendingpending
Miri over the intrinsics, every path Miri can run
miri
pendingpending
Check that the project tree is formatted
treefmt
pendingpending
.github/ is what nix/workflows.nix renders: parsed back, actionlint, shellcheck, zizmor
workflows
pendingpending