Skip to content

plan: chacha20 0.9.1 → 0.10.1 matryoshka port, spec v1 - #281

Merged
AdaWorldAPI merged 3 commits into
masterfrom
claude/lance-graph-java-panama-valhalla-sus9w8
Aug 21, 2026
Merged

plan: chacha20 0.9.1 → 0.10.1 matryoshka port, spec v1#281
AdaWorldAPI merged 3 commits into
masterfrom
claude/lance-graph-java-panama-valhalla-sus9w8

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Nur eine Spec, kein Code. Eine Datei, 224 Zeilen, additiv.

Worum es geht

vendor/chacha20 haengt auf 0.9.1 (cipher 0.4); upstream ist bei 0.10.1 (cipher 0.5). Die Spec haelt fest, was der AdaWorldAPI-Delta tatsaechlich ist — gemessen gegen das pristine 0.9.1-Crate aus dem Registry-Cache, nicht aus dem Gedaechtnis rekonstruiert: 4 Quell-Hunks + 1 neue Datei + ein Manifest-Rewrite. legacy.rs, xchacha.rs und backends/{soft,sse2,avx2,neon}.rs sind unveraendert.

Warum das Verifikations-Ledger oben im Dokument steht

Mehrere Punkte liessen sich in diesem Container nicht verifizieren. Sie sind als UNVERIFIED markiert statt geraten:

  • (a) die genauen encrypt/decrypt-Signaturen von aead 0.6 — nur die Exports gegreppt, nicht die Signaturen gelesen;
  • (b) ob cargo die Form „dasselbe Crate zweimal unter einem Rename patchen" ueberhaupt akzeptiert (Option B, §5.4) — das klaert cargo metadata, nicht Quelltextlesen;
  • (c) Durchsatz ndarray_simd vs. upstreams neuer backends/avx512.rs.

(c) ist die eigentliche Entscheidung, und sie ist auf beiden Seiten ungemessen: davon haengt ab, ob der x86-Arm ueberhaupt portiert werden sollte, oder ob upstreams eigener AVX-512-Backend den Delta dort obsolet macht. Solange das nicht gemessen ist, ist jede Portierungsreihenfolge geraten.

Was hier bewusst NICHT passiert

Nichts gebaut, nichts gemessen, keine Abhaengigkeit bewegt, kein Cargo.toml angefasst. Der naechste Schritt ist die Messung fuer (c), nicht der Port.


🤖 Generated with Claude Code

https://claude.ai/code/session_017Pud4qpxFHwqyqDjSabQbs


Generated by Claude Code

claude added 3 commits August 18, 2026 16:01
…-W8 PR-N)

dst = a & !b word-wise, following the mask_and/mask_or family shape
exactly (U64x8-chunked polyfill loop + scalar tail, length-mismatch
panics, #[inline]). Re-exported through ndarray::simd (the sanctioned
consumer path) alongside the existing mask ops.

Tail semantics documented on both fns: !b sets b's tail bits, but
a & !b is word-wise a subset of a, so dst's tail is zero whenever a's
tail is zero — the same pre-conforming-inputs contract mask_or carries.
A caller holding a possibly-non-conforming a clears the tail itself
(the lance-graph-java kernel does, against its known row count).

Tests (5): parity vs inline scalar reference across 13 lengths
straddling the 8-word group boundary (incl. the 2-word/70-row shape);
algebra identities ((a&!b)|(a&b)==a, (a&!b)&b==0, with a non-vacuity
check); the two-arm conforming-tail falsifier; should_panic
length-mismatch arms for both fns. Disable-run performed centrally:
the vectorized op flipped to & — parity + algebra went red, restored,
51/51 green; clippy -D warnings + fmt clean.

Blackboard entry records the consumer wave (lance-graph-java D-LGJ-W8,
lgj_mask_andnot behind Mask.minus) and the explicit W1a deviation
(free-fn family shape over the struct-method litmus; council-surfaced,
rationale in the entry).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Pud4qpxFHwqyqDjSabQbs
Der Fork in vendor/chacha20 haengt auf 0.9.1 und cipher 0.4; upstream
0.10.1 sitzt auf cipher 0.5. Die Spec haelt fest, was der AdaWorldAPI-
Delta tatsaechlich ist -- gemessen gegen das pristine 0.9.1-Crate aus
dem Registry-Cache, nicht geraten: 4 Quell-Hunks + 1 neue Datei + ein
Manifest-Rewrite.

Der Grund fuer das Ledger oben im Dokument: mehrere Punkte liessen sich
in diesem Container NICHT verifizieren, und die sind als UNVERIFIED
markiert statt geraten -- (a) die genauen encrypt/decrypt-Signaturen von
aead 0.6, (b) ob cargo die Form "dasselbe Crate zweimal unter einem
Rename patchen" akzeptiert, (c) Durchsatz ndarray_simd vs. der neue
backends/avx512.rs von upstream. Punkt (c) entscheidet, ob der x86-Arm
ueberhaupt portiert werden sollte, und ist auf BEIDEN Seiten ungemessen.

Nur die Spec, kein Code. Nichts gebaut, nichts gemessen.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b3bbaa6-3586-464c-94dd-c6929aa8ba3e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Aug 21, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_667c31bb-b239-4e16-81c3-491b345b9c02)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review August 21, 2026 04:03
@AdaWorldAPI
AdaWorldAPI merged commit 5bb1c2d into master Aug 21, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants