Repository navigation
Require emitted runtime bodies for every primitive bridge - #12389
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a853512487
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // preparation and its process-wide caches are released before the ordinary floor starts. | ||
| fn run_required_primitive_runtime_body() -> bool { | ||
| let executable = match std::env::current_exe() { | ||
| Ok(path) => path.with_file_name("gunbc"), |
There was a problem hiding this comment.
Resolve the sibling binary correctly under Cargo tests
When primitive_runtime_body_phase_executes_the_live_gate runs via cargo test -p v1-compiler --bin claim_executor, current_exe() points to a hashed test harness under target/{profile}/deps/, so replacing only its filename produces target/{profile}/deps/gunbc, which Cargo does not create—the built binary is normally target/{profile}/gunbc (or a hashed test executable). Consequently the newly added test returns false before exercising the gate; resolve or inject the gunbc path in a way that handles the test-harness layout.
Useful? React with 👍 / 👎.
|
Merge-group run 36302367527 failed in the build lane, after the runtime-body phase and ordinary witnesses passed. The The cause is producer placement: |
|
Repair The failed queue entry was dequeued to permit the repair push. GitHub currently reports this head mergeable, but re-enqueue refuses until the fresh required |
|
Fixed the remaining required-lane failure at The prior run's sealed receipt identified one declarations finding: the host-verdict census cited The producer directory now participates in the shared parse/declaration root roster. The runtime phase consumes that same roster without adding the directory twice. The ordinary floor and v1-only stage0 regeneration source roots remain unchanged. Validation: release build succeeded; the standalone parser, which runs the same declaration checker as the required phase, exited 0 with 6,907 parse-clean files and no declaration findings; formatting and diff checks passed. Fresh required CI must pass before re-enqueue. The preceding 161-output regeneration qualification remains at |
|
Required CI passed at |
…t gunbc.rust_item_scan's helper The free call ends_with(s:, suffix:) has no substrate provider (the interpreter realizes ends_with only as method_call.ends_with), so at every head it bound to the one user declaration, gunbc.rust_item_scan ends_with -- the pair the bare-provider roster carried. #12389 put that module into this file's closure through std.primitive_identity, which hid the dependency without changing it. The method form p.ends_with(suffix:) is the std method row, so this v2 compiler file no longer depends on a gunbc-private helper and the roster's ImportsFixed retirement is true on its own terms. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…vely through sha256_fips_witness's KATs), and the host crypto seams' seed-growth receipt Per proud-deer-538: the floor carries only host-vs-known-answer claims (7 eval steps at most) over the FIPS vectors sha256_fips_witness asserts of the pure fold plus the padding boundaries; the direct pure-vs-host comparison is a local receipt. gunbc.host_crypto_digest_seed_growth enumerates both host digest seams (sha256_hex_of_text_digest, and hmac_sha256_hex_tag, which had none), retired by an emitted #12389 bridge body. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A primitive bridge could pass the modeled and interpreter checks while naming no emitted runtime body. Add a runtime-body surface derived from the live runtime source and require every current bridge to join it by
bridge_name.Enroll
primitive-runtime-bodyin the witnesses lane, after parse and before floor, on the existing PR opened/synchronize/reopened, merge-group, and workflow-dispatch events. Every invocation runs a permanent missing-body mutation control through the same predicate. Required-regen remains complementary: it checks mirror freshness, not definition membership.The runtime producer integration lives under
test/primitive_runtime_body, outside both ordinary floor roots and the v1-only stage0 regeneration sweep. Its root is explicitly added only to the required phase child. The reusable census and controls remain underdag. The newly reached Rust scanner uses the shared typed empty-list constructor so it can emit natively.Every required invocation now shares one live census across standing admission, the permanent
map_insertmutation, the full combined-surface check, and appended-bridge refusal. The full-population controls execute in this phase; they are not orphan test declarations outside ordinary discovery, and the ordinary floor does not repeatedly derive the complete census under its new-witness step ceiling.Validation at repair head
eeb3cffe6a5: all 16 serial dispatcher tests passed (155.70 seconds), including the relocated live producer and consolidated controls. The prior head passed its PR compiler, Clippy, native, and witness checks, but the merge-group build lane exposed the producer's source-root leak: stage0 regeneration sweptsrc/v1and therefore imported v2 scanner dependencies into a v1-only subject. This repair moves the producer without changing the predicate or its controls. Source-matched whole-population regeneration passed at this exact repair head: 161 planned/executed/adjudicated, first_generation_equal=true, changed_paths=[] (624.036 seconds, exit 0). Fresh compiler and Clippy checks passed; native and required witness CI remain in progress. Historical enqueue is not current landing proof.The 12 ordinary-root fixture witnesses previously passed, with a maximum 3,417 steps against the 72,300-step ceiling; this placement-only repair does not change those fixtures or their predicate.
A detached probe at demand-integration
d691e985604automatically enrolled the 63rd bridge (observed_monotonic_nanos) without a roster edit. Removing its definition made the exact required-phase adapter refuse; restoring it returned green.Scope: file-level function-body presence, not signatures, cfg availability, or native behavior. Qualification and lane details are in
test/primitive_runtime_body/README.md.