Repository navigation
fix(#154): the runtime gates read what they claim to - #156
Conversation
RT-04 found a Lean runtime text only in a literal that held a namespace line and a declaration, cut each source at its first test module, and read one literal at a time. It now reads every literal outside unit-test items (an item under #[cfg(test)] is blanked, the production code after it is read), finds a declaration under a runtime name with or without a namespace line, and reads literals written together (concat!, arrays, +, format!) joined with and without a line break. Its statement also asserts what it said of generated modules: every committed language-1.2 module imports the runtime modules whose constants it names and declares nothing under a runtime namespace. The statement is rewritten to what the case now checks (register, SPEC §31, scenario, CONFORMANCE.md). RT-02 recomputes the compiler-semantics IDs from disk with each frozen file changed: 1.0 and 1.1 unchanged, 1.2 changed (RP-10's recomputation is shared in support). RT-03 plants the second direction of the axiom comparison. The repository walkers skip any directory that holds a CACHEDIR.TAG, so a Cargo target directory with another name no longer reads as source (RT-01, SP-12). VERIFICATION.md records each plant, the output that names it, the one defect no RT case sees (a type-correct body change, caught by the identity pins), and what RT-04 cannot see. The blank line lost in the #145 conflict is restored. Closes #154. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
# Conflicts: # CHANGELOG.md
|
A process note, @humuhumu33. We now treat Generated by Claude Code |
The register has 388 rows; SL-01 stays the last row, and RT-04 keeps the wording of #156. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…to issue-30-language-model Conflicts resolved with main's text where both sides edited one statement (RT-04), both CHANGELOG entries kept, and the register count recomputed from model/ids.toml in its four places: 387 on main plus LM-01..LM-03 and LM-13 is 391. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
After-the-fact review of #156 (head 3e87c24, merged as 80331cb), as asked on 2026-10-16. Verdict: sound with follow-ups. Every #154 item is met for the shapes it names, all 22 checks were green, nothing is hidden on the current tree, and nothing needs reverting. Four findings; three need follow-up issues, drafted below for you to file or edit. How I checked: I compiled the head's RT-04 scanner (crates/conformance/src/cases/runtime.rs:384-752) standalone and planted 19 shapes after the real backend/semantic.rs, the case's own method. The base finds nothing and a plain runtime const is found once.
--- Draft A --- Body: Definition of done:
--- Draft B --- Body: Definition of done:
--- Draft C --- Body: Definition of done:
This is a COMMENT on a merged PR. The formal approval rule (afflom, 2026-10-16) applies from the next PR on; no approval is due here. |
Closes #154.
Follow-up to #144 (closes #90), which merged before its review. Each item of #154 and where it is met:
RT-04reads every literal outside unit-test items: an item under#[cfg(test)]is blanked and the production code after it is read, a declaration under a runtime name is runtime text with or without anamespaceline, and literals written together (concat!, an array,+,format!) are read joined with and without a line break.VERIFICATION.mdwith the output that names them (verify/mod.rs:2731afterHEAVY_FRACTION,semantic.rs:2965/2966). A fixture inside a test item is not found.RT-03plants the other direction of the axiom check; the changed-declaration plant is run and recorded.LLV7005 … observed [propext]. A type-correct body change passesRT-01..RT-04and is caught by the identity pins (LLC0102, the audit prefix of the committed record); recorded as such, with no runtime-specific oracle claimed.rt_04also asserts that every committed language-1.2 generated module imports the runtime modules whose constants it names and declares nothing under a runtime namespace, and refuses a module that drops its imports or splices a declaration.CONFORMANCE.mdcarry the new statement (RP-07bijective, 387 IDs).RT-02recomputes the three compiler-semantics IDs from disk with each frozen file changed: 1.0 and 1.1 unchanged, 1.2 changed.RP-10's recomputation is shared insupport.conformance_rt_02,conformance_rp_10.CACHEDIR.TAG.RT-01andSP-12pass with a Cargo target directory namedtarget-checkin the checkout.VERIFICATION.md.What
RT-04cannot see is written inVERIFICATION.md: a text built at run time from parts declared apart. The output-side half of the statement is what bounds it.No new register row and no new diagnostic code; no compiled behavior changes, so no identity, golden, fixture or record moves.
Local verification
cargo fmt --check,cargo clippy --workspace --all-targets --all-features -D warnings,cargo xtask validate-model,validate-spec-links, andconformance_rt_01..rt_04,rp_07,rp_10,rp_11,rp_14,vr_23, theau_*cases,vr_19,sp_12,ar_06pass on the tree merged with main2a3c6f7d(#152).🤖 Generated with Claude Code
https://claude.ai/code/session_013QppGKetUURseXowZun9KY
Generated by Claude Code