Repository navigation
#91 stage 4, PR 5: the core runtime's support items as source — RuntimeSyntax, RuntimeSupport, RuntimeSemantics (RB-17, SP-25) - #254
Conversation
…nd the meaning of equal and compare: register rows, SPEC.md 31 rows, scenarios, and the failing named tests
…y point, so a second data module reads through the same closed tables
…pport items of the core runtime as its data, shipped byte for byte
… validator with its named rules, and the core runtime's base replaced by the printed support crate; RB-17's case
…two sets, SPEC 17.16 and the register restated
…first scalar, so each elaborates within the host's memory
…ith the natural and the integer, a CI part for the support leg
… decodes once, the refines_<path> clause in SPEC, VERIFICATION's SP-22 command and the 142 s label
…entrypoints sorted
…er nested keys of depth two and three, measured
…sets, and why nested keys are validated and not proved
|
Maintainer review of
Decisions on the two questions the review raised: the #248 review fixes folded into Generated by Claude Code |
… is read from the validator, the i128 refusal has its plant, SPEC lists trait-method and the whole predicate and words RuntimeValidate as H2's condition, the records carry one measured SP-25 figure with its command and host, the CHANGELOG entry for the stage-4 stack
|
Round at Accepted. Lands directly after #248 with its own regeneration (the runtime digests and the compiler-semantics identity move with Generated by Claude Code |
…91-stage4-runtime-syntax # Conflicts: # README.md
|
Maintainer: merged release/v0.4 (9796067, with #248) into this branch at 6cb71ba, resolving README's three table rows to the merged wording with Generated by Claude Code |
…der the runtime-syntax compiler semantics The support items of the core runtime are source (RuntimeSyntax, RuntimeSupport, RuntimeSemantics), so the printed core runtime, the std runtime built on it and the framed renderer sources all changed: their records in language/semantics-1.2.toml are set to the digests the record tests compute, and with them the compiler-semantics ID moves. Locks, goldens, the generated calculus files, the production export, the fixtures, the packages and the generated claim documents are regenerated at the fixed point under that identity; the verification records follow in the sweep. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…y project but the Atlas The sweep verified the compiler, stdlib, std-models, std-reasoning, bootstrap and every example under the runtime-syntax compiler semantics; the Atlas records are joined from the gate's shard artifacts. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
|
Maintainer: the landing regeneration is pushed (7fdec04 and 0f372c7) and the PR is ready; the full gate is running on 0f372c7. The records Generated by Claude Code |
…thirteen 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
|
A second read of the hand-written part at What checked out:
Follow-ups
Minor
|
…t-thread-y7idcx-migrate-1-2 Bring the migration branch up to release/v0.4 (20 commits, through #254). Conflicts in CHANGELOG.md, README.md, SPEC.md, crates/conformance/src/cases/repository.rs and xtask/src/spec_links.rs are resolved by keeping both sides: the release's runtime entry and the migrate entry both stay in CHANGELOG.md, and the register count becomes 446 everywhere it is stated (model/ids.toml and the SPEC.md section 31 table were at 444 and 445 on the two sides). CONFORMANCE.md and ERRORS.md are regenerated with `cargo xtask validate-model --write`; the SPEC.md section 17.12 and 23.4 prose already states that a non-canonical data form is refused, which the following commit implements. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wRsmyNivwbjJp2QZuGVdY
Stacked on #248 (
claude/issue-91-stage4-widths-2at ea10267, merged in); draft.What
The last handwritten text of the core runtime,
CORE_BASE, is source.RuntimeSyntax(compiler/src/RuntimeSyntax.lex.tex): a second closed module besideRustSyntax, not a widening of it. Items:use, unit struct with derives, alias with parameters, static, trait of signatures, impl (trait or inherent) with bounded generics, generic function. Types, expressions and patterns are listed in SPEC §17.16. A name outside the crate is one entry of a closed table (Result,AtomicU64,AtomicU64::new,fetch_add,load,cmp).RuntimeSupport(compiler/src/RuntimeSupport.lex.tex, shipped byte for byte atlanguage/rust-runtime-1.2/):supportCrate, 32 items — the uses,Overflow,R<T>,WORK,tick,work, the traitsSame/Keywith their impls (the scalar macro is nine written-out impls),equal,compare.rust::rt(AST + printer),rt_decode(shares thesourcereader viawith_reader),rt_validate(24 named rules, each planted; the case reads the rule names from the validator's source and requires the planted set to equal it).runtime::core()prints the support whereCORE_BASEstood;CORE_BASEis gone.RuntimeSemantics(compiler/src/RuntimeSemantics.lex.tex): the declared meaning of aRuntimeSyntaxcrate over the calculus values; a method is found among the impls by the receiver's shape. No change toRustSyntaxorRustSemantics.identity_bytesno longer panics,theorems()decodes once, therefines_<path>clause in SPEC, SP-22's wording and measured memory) and the CHANGELOG entry for the whole stage-4 stack are in this PR, as the maintainer decided.Rows
build): shipped copy = compiler module; decode/validate/print; differential against the handwritten core runtime (equal,compare,tick,work; scalars, orderings, pairs, and 500 seeded rounds of nested keys of depth two and three, 1,000 depth-three comparisons deciding 491 less, 26 equal, 483 greater); planted modules refused by rule name. Command and host:cargo test -p repo-conformance --test conformance -- conformance_rb_17, 4-core 15 GB Linux x86-64 container, rustc 1.97.1: 9.6 s.build; was SP-24 until renumbered, [0.5.0] Content-addressed artifacts as compile-time constants of production roots #115 owns SP-24 on v0.5): 143 equation theorems thatrtRun 24 supportCrate "equal"|"compare" args = fromPrimitive (primitive equal|compare args)for the values the calculus types as the arguments ofequal(bool, nat, the eight widths, ordering) and ofcompare(bool, nat, int, the eight widths, and pairs of two of those); the theorem set is computed from the predicate by the case, not read from the module. 16 modules (RuntimeSupport+ 11RuntimeKeys<scalar>, split because 100 theorems in one module were OOM-killed at >13 GB). Command and host:cargo test -p repo-conformance --test conformance -- conformance_sp_25, same host, pinned Lean 4.32.1: 1,440 s on the head59b93d3cc(24 min wall, 39 min user CPU, 16 min system CPU), peaklean5.90 GB; the same case took 815 s on a quieter tree before the merge (VERIFICATION.md has all three figures and the spread).lexlean verifyof the 16 modules alone: 12 min 28 s; each key module 127–140 s, 5.8–5.9 GB.tick/workare held by the counted-work gate andequal/compareby SP-25. A newbddpartpreservation-supportholds SP-25.What is not proved (stated in the row)
The calculus admits pairs of pairs for
compare(calculus/check.rs,orderable). SP-25's theorems stop at a pair of two scalars: each pair level spendsrtRunfuel, so the induction needs fuel arithmetic under a symbolic depth that the closed proof language lacks. For nested keys the evidence is RB-17's differential (validation, never a proof). Proof-language step filed for v0.5: #249. There is no Lean twin of the runtime validator yet; SPEC §17.16 states it as the condition of the heap half's second step (H2), and until then the evidence for the closed set is the Rust rule set and its plants.i128RustType.i128(the node ofconvert's parameter) is accepted by the validator and printed, and is runtime-only: no lowering emits it, andcorrespondrefusestype:i128in a lowered crate as a construct with no target-semantics correspondence. RB-17 plants it (a crate with ani128parameter is refused; a row added to the table fails the case).Identity
RuntimeSyntax/RuntimeSupport/RuntimeSemanticsare not imported byMain; the embedded tree gainslanguage/rust-runtime-1.2/RuntimeSupport.lex.texand the printed core runtime text changes (rust_runtime_core), so the compiler-semantics ID and the runtime digests move; records, locks and goldens bound to it are left to the regeneration. The Runtime modules are in the canonical form of the merged compiler (lexlean fmt);RustRuntime.lex.texandbootstrap/src/RustValidate.lex.texare not canonical either and are #248's landing commit's.Gates (this head,
085564b2b)validate-model/validate-spec-links445, fmt, clippy-D warnings,rb_06 rb_09 rb_16 rb_17 rp_*(butrp_10, identity-bound) pass;sp_22(913 s) andsp_25pass on the merged tree. Plants and measurements: VERIFICATION.md (RB-17, SP-25).🤖 Generated with Claude Code
https://claude.ai/code/session_018vK7Tm6xHF5etAwKM6r9HG