Skip to content

BS-10: the literal values of the Rust lowering (RustTerms.lowerValueAt) - #307

Closed
afflom wants to merge 138 commits into
claude/issue-92-rust-lower-bodiesfrom
claude/issue-92-rust-lower-terms
Closed

afflom wants to merge 138 commits into
claude/issue-92-rust-lower-bodiesfrom
claude/issue-92-rust-lower-terms

Conversation

@afflom

@afflom afflom commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

BS-10: the literal values of the Rust lowering (#92 step 4, first pass of the lowering of terms)

lowerValueAt of the new module RustTerms lowers the literal that is the body of a function of a program as Lowering::value does. value is private to the renderer, whose files the compiler-semantics digest frames, so nothing in calculus/rust/ changes; the root is held, to the byte, to the tail of that function in the crate rust::lower returns (no later pass changes a one-expression block; the case asserts no binding).

Certificate parts

Root Part A Part B Part E Largest / max_file_bytes Budget 3,145,728
lowerValueAt 2,004,962 1,879,973 247,001 47.8% under
useTrees (second typing root, branch history) 3,143,245 3,038,999 121,053 75.0% under by 2,483

Exports: lowerValueAt 20m36s (first form 2,020,313 / 1,896,324 / 247,001, 21m48s, before the sign and upper-case digit branches the checker never lets through were removed); useTrees 20m35s.

Held by

  • 358 explicit runs (scalars at the ends of their ranges in five contexts, composites, ADTs that hold themselves or each other, the absent option of a function type), rustc on every host.
  • Normative host: evaluator on those and 150 seeded runs; rustc on 1,500 further seeded runs; ten planted defects each detected; the production export.
  • No run expects a refusal (the checker refuses every literal the lowering would); the case asserts it.

Stack bound and records

The debug harness needs 4,390,912 bytes (explicit 1,048,576); the PD-08 row, the lock, the goldens and the package lower_value_at are the maintainer's, regenerated at the landing. The case runs to the comparison with the committed packages.

Project limit

The bootstrap project configures max_total_source_bytes = 134217728: the export of all its roots passed the default at this root (67,815,299 bytes), and the term-lowering passes need about 100 MB.

Corpus counts of the stack (BS-05..BS-08), for the landing

Measured on this branch before the merge of release/v0.4 (with the local packages of the stack): 261 committed manifests, 178 programs, 237 crates; BS-05 457 validateCrate and 320 correspondCrate vectors; BS-06 617 vectors of printCrate, 474 distinct committed crates, 543 of the evaluator's; BS-07 312 vectors; BS-08 353 crates; each case run to its count assertions only (400 to 900 s). After the merge the line's own figures stand for BS-05 and BS-06, and the stack's recount is the landing's.

Register

BS-09 on the line is the runtime validator, so this row is BS-10; the register is 453 after the merge of release/v0.4 (450 and BS-07, BS-08, BS-10 of this stack). Draft, stacked on claude/issue-92-rust-lower-bodies (#282); release/v0.4 (896b7bd) is merged into the branch.

https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY


Generated by Claude Code

claude added 30 commits October 21, 2026 00:11
…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
…er nested keys of depth two and three, measured
…sets, and why nested keys are validated and not proved
…31 row, scenario, and the failing named test
…oder, validator with named rules, the probe crate and its case
… 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
…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
…w, SPEC.md 31 row, scenario, and the failing named test
…re, as the Lean twin does; the twin's source as generated (verification running)
…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
… the SP-25 record names the head it replaces, the probe has an i128 result (RtType.wide false)
claude and others added 11 commits October 23, 2026 22:30
The line gained RP-18 (#302) while this branch gained BS-09, both from 448,
so both sides read 449 and the merge did not conflict. model/ids.toml holds
450 rows; the README, the SPEC.md §31 total, the two counting gates and the
CHANGELOG's one register sentence say so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y model's root set; the compiler-semantics identity does not move

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…date' into landing-262

# Conflicts:
#	CHANGELOG.md
…ap-validate

#91 stage 4, H2: the runtime syntax validator is bootstrap source (BS-09)
…landing; register 452

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
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…werValueAt of RustTerms

First pass of the lowering of terms (step 4 of issue 92): the literal that is
the body of a function, held to the tail of that function in the crate
rust::lower returns, with no change to the renderer. Certificate part A
2,004,962 bytes. The bootstrap project's production export is beyond the
default max_total_source_bytes with this root; the measurement was made with a
local limit that is not part of this commit.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY
The export of all its production roots together passed the default
(67,815,299 bytes) at the values pass; the term-lowering passes need about
100 MB. The lock and the records are regenerated at the landing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY
The line's BS-09 is the runtime validator; the values pass is BS-10. The
register is 453 IDs: the line's 450 and BS-07, BS-08, and BS-10 of this stack.
BS-05 and BS-06 keep the line's corpus figures; the bootstrap lock, goldens,
and packages are regenerated at the landing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163mCfJeketviuEBiXJ1sQY
@afflom afflom changed the title BS-09: the literal values of the Rust lowering (RustTerms.lowerValueAt) BS-10: the literal values of the Rust lowering (RustTerms.lowerValueAt) Oct 24, 2026
@afflom
afflom changed the base branch from claude/issue-92-rust-lower-bodies to release/v0.4 October 24, 2026 02:42
@afflom
afflom changed the base branch from release/v0.4 to claude/issue-92-rust-lower-bodies October 24, 2026 02:42
afflom and others added 9 commits October 23, 2026 21:24
…ap-memory

#91 stage 4, H3a: the memory model of a runtime buffer, kernel-checked (SP-26)
…e, as clippy's type_complexity lint requires

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…t-thread-y7idcx-migrate-1-2

Conflicts were the register count only (README.md, SPEC.md section 31 total,
cases/repository.rs, xtask/src/spec_links.rs) and the CHANGELOG entries; both
sides kept. The register is 452: the line's 451 plus CL-24. The fixture lock of
migrate-module-without-notation pins the compiler-semantics ID of the other
language-1.1 fixtures.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ap-lists

#91 stage 4, H3b: the abstraction theorems of the list representation, kernel-checked (SP-27)
…gister 453

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QppGKetUURseXowZun9KY
…dcx-migrate-1-2

Add lexlean migrate --to 1.2 for language-1.1 data-form projects (#257)

afflom commented Oct 25, 2026

Copy link
Copy Markdown
Member Author

Maintainer: closed as a stacked draft whose commits are contained in #315 (e6a6d8eeec), which lands the whole bootstrap stack as one regeneration (owner direction, #15: one PR per landing). Nothing is lost; the review happens on #315.


Generated by Claude Code

@afflom afflom closed this Oct 25, 2026
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.

3 participants