Skip to content
Merged
Changes from all commits
Commits
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
26 changes: 25 additions & 1 deletion .claude/blackboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,31 @@
> **Read this first.** The "Polyglot Notebook" architecture below is a
> separate/older program, not the current epoch.

## 2026-07-29 (latest) β€” blake3 dependency DROPPED: call sites swapped to the in-tree module
## 2026-08-31 (latest) β€” W1a-#9 masking primitives SHIPPED on every dispatch arm (PR #285)

`U64x8`/`U32x16` gained `andnot` (set difference, `self & !other` β€” argument
order deliberately differs from the raw Intel intrinsic, same direction on
every backend) and `ternlog::<IMM>` (any 3-input boolean via the VPTERNLOG
truth-table immediate; single VPTERNLOGQ/D on avx512, const-folded minterm
composition elsewhere). Review round forced the completion that mattered:
the methods exist on ALL SIX arms (scalar, avx2, avx512, neon `U32x16`,
wasm `U32x16` via per-part `v128_andnot`, nightly via core::simd), the
named immediates live on the always-compiled facade as
`crate::simd::ternlog` (their first home in the scalar backend was compiled
out on x86 β€” three bots caught it independently), and every portable arm
carries the avx512-equivalent compile-time IMM domain guard. Doc examples
Comment on lines +17 to +18

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add the missing scalar U64 IMM guard before calling it complete

For the scalar backend's U64x8 only, src/simd_scalar.rs:2087 enters the minterm logic without the const { assert!(IMM >= 0 && IMM <= 255, ...) } present on U32x16 and the other portable implementations. Consequently, calls such as U64x8::ternlog::<256> compile and silently ignore the out-of-domain bits, so this entry incorrectly records the IMM-domain work as complete; either add that guard or retain this as a loose end.

Useful? React with πŸ‘Β / πŸ‘Ž.

on all twelve method sites; the avx512 ones execute in this environment's
doc-test run. Declined finding, reasons on the PR thread: extending the
Comment on lines +19 to +20

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not claim the doctests exercise the AVX-512 backend

On the repository's default x86-64-v3 doctest build, each example imports ndarray::simd::{U64x8,U32x16}, whose facade exports the AVX2 types; even examples extracted from simd_avx512.rs therefore execute AVX2 methods rather than the AVX-512 implementations. This environment also has no AVX-512 hardware, so the entry overstates the native backend's runtime verification; record these examples as compile-only/default-facade coverage unless they were actually run on an AVX-512 host.

AGENTS.md reference: AGENTS.md:L22-L22

Useful? React with πŸ‘Β / πŸ‘Ž.

pre-existing off-by-default nightly arm is REQUIRED (not extending it is
the E0599 hole), and the stable-only rule governs the default build graph,
which is untouched. Loose end, deliberate: whole-crate wasm compile-check
is blocked by the pre-existing getrandom wasm dependency gap β€” the
wasm-simd-parity sibling crate remains the verification home for that arm.
Consumer side: lance-graph's mask-algebra arc (D-MAR-1, #1099) is the
first caller; the codegen probe measured `vpternlogq $0x80` / `vandnps`
single-instruction lowering under v4.

## 2026-07-29 β€” blake3 dependency DROPPED: call sites swapped to the in-tree module

Operator: "go ahead" on the rung-3a swap, with the measured cost table in
hand. This closes the only rung of `the-simd-ladder.md` that carried a cargo
Expand Down
Loading