Repository navigation
#91 stage 4, H1: RuntimeSyntax grows by the heap constructs — the probe module (RB-19) - #255
Conversation
…31 row, scenario, and the failing named test
…oder, validator with named rules, the probe crate and its case
…e-91-stage4-heap-syntax
…probe module, its case, the ten new rules planted, the rule coverage shared with RB-17, the Lean-checked module
…6 and compared with the validator's by RB-19
…riant, the figure of SP-25 re-verified
|
Maintainer review of
Carry with the push (nits): the SP-25 re-verification record (VERIFICATION.md:2195) needs its own "Command and host:" line; Noted, no change asked: RB-17's set equality extends Generated by Claude Code |
…ur planted drops, the eleven new rules (35) stated, the CHANGELOG entry, the record's command and host, the wide flag and the stuck sentence made exact
|
Generated by Claude Code |
… the SP-25 record names the head it replaces, the probe has an i128 result (RtType.wide false)
|
Maintainer: the round at 021879e is accepted. The §17.17 sentence now states what Landing order stands: #248 (in its full gate), then #254 with its regeneration, then this PR with its own, each as one regeneration by the maintainer; do not merge release/v0.4 into this branch until told. Generated by Claude Code |
|
A read of What checked out:
1. A field accessed by name is never checked ( 2. #254's derive gap now has four sites. The derives of
This PR does close two sites: struct-literal field names now must equal the declared set, and method type arguments come from the closed list. One rule closes 1, 2 and #254's finding 1 together: every string the printer emits as a name or derive must be an identifier, or come from a closed table (derives). Add one plant per site kind. 3. A character literal is silently truncated. 4. The validator accepts what rustc rejects. These are loud failures, not wrong code:
5. Plants cover each rule name, but not every site of a rule. Disabling any one of these sites fails no case:
6. SPEC says every new pattern construct is |
…91-stage4-heap-syntax
The register is 448 after the merge; the README, the §31 total, the two counting gates and the CHANGELOG entry say so. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
|
Maintainer, on the read of
The #91 session prepares it now; I review it after this landing merges. Generated by Claude Code |
…dentity; locks, goldens, calculus, packages and fixtures regenerated The compiler-semantics ID of language 1.2 moves from 30c5829b to e7705486 (1.1 to 9166adc9, 1.0 to 430ba0a3) because RuntimeSyntax grows by the heap constructs and the probe module. No renderer or runtime record moves. The register is 448 IDs after the merge of release/v0.4. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…but the Atlas, on the moved identity Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…een shard artifacts of the first gate run Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
Stacked on #254 (
claude/issue-91-stage4-runtime-syntaxat 085564b, merged in); draft. First of the heap half (H1 of H1–H5).What
RuntimeSyntaxgrows by exactly the constructs therust-stdruntime's 35 functions need, and no more: 53 constructors beside the 36 of RB-17.u128/i128(RtType.wide, true foru128),usize,char,str, slice[T],&mut T. Literals: character, string. Patterns:mutbinding, tuple, tuple struct, struct, literal; guards on arms. Expressions (21):letwith optional type, assignment,if/else,while,while let,loop,for,break,return, tuple, struct literal, binary operation (12 operators),!, cast, index, range slice, deref,&mut, method call with type arguments, field by name, block.RtParam.mutable,RtSig.exclusive(&mut self).dyn, or lifetimes: the functions that used them are rewritten without in H4, held to the original by the differential (result + counted work), per the accepted deviation notice.Some/Ok/Err, 27 methods,parse, the traitsClone/Drop), listed in SPEC §17.16, stated as a count in the register, and compared with the validator's own by the case; the 17 names that allocate are refused in the core profile ashidden-allocation.rt(AST, a precedence-aware printer:rustcunderwarnings = denyrefuses unneeded parentheses),rt_decode,rt_validate(eleven new named rules, 35 in all: the ten planted on the decoded crate andhidden-allocation).RuntimeSemanticsevaluates each new expression and pattern construct asstuck(a block evaluates its block); this row declares no meaning for them.RuntimeSupportis regenerated for the two new record fields (one line); the 11RuntimeKeysmodules are unchanged.RB-19 (
build)Command and host:
cargo test -p repo-conformance --test conformance -- conformance_rb_19, 4-core 15 GB Linux x86-64 container, rustc 1.97.1, pinned Lean 4.32.1: 64.0 s forconformance_rb_19withconformance_rb_17on the headc54a86c7e(21 s when the toolchain caches were warm).The probe module
RuntimeProbe(probeCrate, 40 items,stdprofile, shipped byte for byte) holds one use of every construct. The case: requires every one of the 53 grown constructors to occur in the probe module by its qualified name (RtPat.lit,RtExpr.tuple, ...), with four planted drops (RtPat.lit,RtExpr.tuple,RtVariant.tupleV,RtLit.str) each caught by name; compiles the printed crate under the pinned rustc with warnings denied and runs a 31-assertion harness against independent computations; has the pinned Lean accept the module; plants each of the 10 AST rules on the decoded crate (and 6 older ones on the new constructs); refuses the core profile (hidden-allocation); refuses a constructor the module lacks and a wrong arity.RB-17requires its planted rules plus these ten to equal the rules named in the validator's source.Gate plants (restored): printer writing
-forOp::Add→ harness fails insum_to; thebreak-positioncheck disabled → the case fails at the plant.SP-25 re-verified (measured)
conformance_sp_25after the module grew and its records were regenerated: 1,450.8 s (24 min 13 s wall, 38 min 32 s user CPU, 19 min 16 s system CPU), peaklean5.98 GB, same host. 143 theorems, same axioms, no proof changed.Deviation from the estimate
H1 is about twice the size estimated (accepted on #91): the closed set had to grow to what STD's functions need. Lean time of H1 itself is the module check; the SP-25 re-verification above is the cost of growing
RuntimeSyntax.Identity
RuntimeSyntax(a module of the compiler project, shipped viaRuntimeSupport/RuntimeProbe) changes, the embedded tree gainslanguage/rust-runtime-1.2/RuntimeProbe.lex.texandRuntimeSupport.lex.texchanges: the compiler-semantics ID moves again on top of #254's. No records regenerated here.validate-model/validate-spec-links(446),rb_17 rb_19pass on the head.🤖 Generated with Claude Code
https://claude.ai/code/session_018vK7Tm6xHF5etAwKM6r9HG