Skip to content

r2il-mask-abi-probe: DAV candidate filter through quack and R2IL on one evaluator (Round 4) - #1352

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/sharp-bardeen-8nlu1z-r4
Oct 6, 2026
Merged

AdaWorldAPI merged 1 commit into
mainfrom
claude/sharp-bardeen-8nlu1z-r4

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Round 4 of the arc whose Rounds 1–3 merged in #1347 and #1349. It asks whether quack and R2IL can run one shared program on one evaluator.

Change

FoldDialect in tests/row_bridge.rs gets four new lowering arms:

New arm Lowers to
LOAD space 3 (a resident mask plane as an address) Operand::Plane
IntNot MaskOp::Not
RANGE (bounds come from immediates) Pred::Range
KEEP (writes into a sink the caller lends) Terminal::Keep

Each one lowers to a Pred / MaskOp / Terminal that mask-risc already has; no kernel or evaluator is added. The push-exactly-one census test now covers all four.

Evidence

The program is the DAV candidate filter from crates/jc/examples/dav_active_observation_probe.rs: is_null(valid) AND lo <= row < hi. The probe spells it three ways: quack::lower, R2IL bytes with NOT first, and R2IL bytes with RANGE first.

Results agree. The kept mask and the count match a row oracle bit-for-bit at n ∈ {21, 64, 65, 130, 256, 1000}. All three paths execute through mask_risc::execute_into.

Physical work, measured at n = 1000:

Path Passes Derived words Lowering
quack 3 48 Tiled
R2IL, NOT first 2 32 Tiled
R2IL, RANGE first 3 48 Tiled

The COUNT forms of all three are Tiled as well.

Positive-polarity control. For plane AND range, both frontends emit one Range gated under the plane, which mask-risc folds straight to a count (Lowering::Range). That path writes no derived words, and both match the oracle. So what blocks the zero-write path for the DAV filter is the complement on the validity plane, not the frontends.

Allocation. The dialect's KEEP path allocates 16,648 B at both 16,384 and 1,048,576 rows.

Disable runs. I broke each guard in turn, ran the tests, and restored it.

  • These went red:
    • the plane-AND peephole replaced by a plain And
    • IntNot without the complement
    • RANGE dropping its upper bound
    • KEEP writing nowhere
    • KEEP pushing a status scalar
    • a population-sized buffer allocated per fold
  • The 2-vs-3 pass-count pin depends on which operand the peephole matches, not on how many ops it scans. A scan over all ops left it green. A commutative peephole is refused by mask-risc with ScratchReadBeforeWrite. So folding the RANGE-first order would need the Not moved ahead of the Range.

Gates. The full probe suite (60 tests), clippy -D warnings and fmt are clean. CI runs this crate at rust-test.yml:176.

Board entry: 2026-10-06-quack-r2il-one-evaluator-round4.md

🤖 Generated with Claude Code

https://claude.ai/code/session_01MHMvKHLhM6xwRswKY4s6vY


Generated by Claude Code

…ne evaluator

Round 4. FoldDialect gains four lowering arms, each onto an existing
mask-risc op: LOAD space 3 (a resident plane as an address), IntNot ->
MaskOp::Not, RANGE -> Pred::Range, KEEP -> Terminal::Keep. The DAV
candidate filter is_null(valid) AND lo <= row < hi then runs as
quack::lower and as R2IL bytes in two orders, and every kept mask and
count matches a row oracle at six row counts.

Measured at n=1000: quack 3 passes, R2IL NOT-first 2, R2IL RANGE-first
3; all Tiled. Positive polarity (plane AND range) folds to
Lowering::Range with zero derived words on both frontends, so the
complement of the plane is what blocks the zero-write path. The KEEP
path allocates the same bytes at 16K and 1M rows.

Seven disable runs; six go red. A scan over all ops leaves the pin
green (the peephole matches the right operand's slot); a commutative
peephole is refused by mask-risc with ScratchReadBeforeWrite.

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

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 66 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 81f6dbf1-1e8c-4c5b-96a0-8ce01b1b971f
📥 Commits

Reviewing files that changed from the base of the PR and between 3290a9c and ee8aef6.

📒 Files selected for processing (3)
  • .claude/board/entries/2026-10-06-quack-r2il-one-evaluator-round4.md
  • .claude/board/entries/README.md
  • crates/r2il-mask-abi-probe/tests/row_bridge.rs
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


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

@cursor

cursor Bot commented Oct 6, 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: a216ad17-95d0-4e08-9f6b-a02520f62593)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 6, 2026 10:44
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 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-10-06T10:47:58.967174Z ee8aef6 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.

@AdaWorldAPI
AdaWorldAPI merged commit 79852d0 into main Oct 6, 2026
10 of 11 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