Skip to content

D-DRAM-P3: integrate #1949 with P2 open ends; ReadPolicy range rule; D-DRAM-1 census - #1951

Merged
AdaWorldAPI merged 3 commits into
mainfrom
ccr-85acaff0-oszq40-dram-p3
Nov 3, 2026
Merged

AdaWorldAPI merged 3 commits into
mainfrom
ccr-85acaff0-oszq40-dram-p3

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Lab and docs only. Please don't merge automatically. Every gate in #1949 stays with its owner (EXO-46, EXO-89, EXO-151, D4, S-INGRESS).

Plan: .claude/plans/d-dram-p3-integrated-v1.md

The plan merges the open ends of D-GLOBAL-WHERE P2 (#1950) into the D-DRAM-0 falsifier map (#1949). This session owns all eleven resulting items.

It first credits what P2 already measured against #1949's pre-registered gates:

  • measured in the lab, with ids given under D4: L9, L10, C2 and C4;
  • partly measured: L1/L2 (route-binding reuse, not receipts), L6, A3 and A4.

It then orders the items by signal per unit of effort. STATUS_BOARD gains rows D-DRAM-P3-1 to D-DRAM-P3-8.

D-DRAM-P3-1: ReadPolicy also requires spread ranges (crepe-plan-probe, lab)

plan_read used to decide on covered rows alone. P2 measured the cost of that: one contiguous 10% range went to a full scan that was 3.8× (1M) and 4.6× (10M) slower than reading the range. A full read now also needs ranges × page_rows ≥ n_rows, so the ranges must be spread widely enough to touch about every page.

where_lance_arm at 1M passes all oracle and refusal checks:

cell old DEFAULT new DEFAULT
clustered 10%, k=16 full read, 103,492 µs range read, 13,292 µs
clustered 10–50% (all k) full read range read, 1.2–7.8× faster
scattered 10% full read full read (unchanged)
scattered 50% full read coalesces into one range covering nearly the table; same time, 56,820 vs 54,430 µs

Tests:

  • Four new unit tests. Each is a can-fire / can-stay-silent pair or a boundary check: a long run keeps the range read, scattered ranges still read in full, the condition fires at exactly ranges × page_rows = n_rows, and page_rows = 0 restores coverage-only.
  • Disable runs: reverting to coverage-only turns 2 tests red; spread = false turns 6 red.
  • Full crate: fmt --check, clippy --all-targets -D warnings and cargo test (63 tests) pass locally.

D-DRAM-P3-3: D-DRAM-1 census (read-only), .claude/board/entries/2026-11-03-d-dram-1-census.md

Every item below was read at its cited line.

ndarray b3d7919

  • Only half_add_mask and full_add_mask are shipped as public counting words (plus sum8_u8_add_masked for masked byte sums).
  • The "5×24" kernels are the U24x5 microtile packing. It lives in examples/ only, and its source says "Lab fixture only: no public type, no production caller."
  • Abacus is also examples/ only.
  • So D-DRAM-3 builds on the two adder words only. Importing U24x5 or Abacus would hit docs(D-DRAM-0): DR locator memoization and adaptive Abakus mask lens (architecture gates) #1949's stop condition.

lance-graph

  • lance-graph-dt64 dr.rs owns the DR map (MapTable, LocalMap, Frame, Guards). Its Focus is a tile revision, not a lease.
  • Every lease candidate is in an excluded lab crate: drf-focus-probe FocusKey/check_seal and lance-graph-nsl FocusLease.
  • So a locator receipt has no production host, and D-DRAM-2 stays gated on EXO-46/EXO-151.

Not in this PR

These are owned and queued in the plan:

  • P3-4: EXISTS early exit. Draft PR to follow; needs mask-risc owner review.
  • P3-5: k-of-n bench on the adder words.
  • P3-2: non-vacuous projection cases, on the research branch.
  • P3-6: ordered-compare proposal.
  • P3-7: route-once lab measurement.
  • P3-8: D4/S-INGRESS decision memo.

Generated by Claude Code

Credits what D-GLOBAL-WHERE P2 (#1950) already measured against the gates
pre-registered in #1949:
- measured in the lab: L9, L10, C2, C4;
- partly measured: L1/L2, L6, A3, A4.

Orders eleven owned items by signal per effort. Three of them need no
outside decision: ReadPolicy weighing the range count, non-vacuous
projection cases, and the D-DRAM-1 census.

Production and gated items keep their owners (mask-risc, ndarray, Quack,
EXO-46/89/151, D4/S-INGRESS). #1949's stop conditions stay in force.
Adds the D-DRAM-P3 rows to STATUS_BOARD, an INTEGRATION_PLANS entry, and
the regenerated supersession index.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
plan_read decided on covered rows alone. In D-GLOBAL-WHERE P2 it therefore
sent one contiguous 10% range to a full scan, 3.8x (1M) and 4.6x (10M)
slower than the range read. A full read now also needs
`ranges x page_rows >= n_rows`: the ranges must be spread widely enough to
touch about every page. ReadPolicy::DEFAULT uses page_rows = 4,096, a
POLICY PIN taken from the #1788 A.3 chunk size; page_rows = 0 restores
the old rule.

Measured with where_lance_arm at 1M (all oracle and refusal checks pass):
- clustered 10% and 50% now read ranges, 1.2-7.8x faster than the old
  full read (10%, k=16: 103,492 -> 13,292 us);
- scattered 10% still reads in full;
- scattered 50% coalesces into one range covering nearly the table, at
  the old full-read time (56,820 vs 54,430 us).

Tests (4 new):
- a long run keeps the range read;
- scattered ranges still read in full;
- the page condition fires at the boundary and not one range below;
- page_rows = 0 restores the coverage-only rule.

Disable runs: with the old coverage-only rule, two tests fail; with
`spread = false`, six fail. Full crate: fmt, clippy -D warnings and
cargo test (63 tests) all pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
Read-only census, verified in code:
- ndarray ships only `half_add_mask` / `full_add_mask` (and
  `sum8_u8_add_masked`) for counting.
- The "5x24" kernels are the `U24x5` microtile packing, in examples/ only
  ("Lab fixture only: no public type"); Abacus is examples/ only.
- dt64 `dr.rs` owns the DR map. Every focus/lease candidate outside it
  (drf-focus-probe FocusKey, lance-graph-nsl FocusLease) is in an excluded
  lab crate, so a locator receipt has no production host. D-DRAM-2 stays
  gated on EXO-46/EXO-151.

Also: the STATUS_BOARD and plan checklist mark P3-1 and P3-3 done, the
two Haiku harvest runs are logged with their misses, and the indexes are
regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

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

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f0911c08-e1a5-4d7c-a292-a2d1f5483489
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review November 3, 2026 23:17
@AdaWorldAPI
AdaWorldAPI merged commit 05f03ab into main Nov 3, 2026
12 of 13 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T23:18:11.625220Z a1ab4b6 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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