Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dag/tools/self_host_curated_seed_linked_harness.dag
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ data cssl_std_bridge_scaffold_dissolution_trigger: DissolutionCondition = unboun

data cssl_is_not_a_seed_admission_path_note: String = "CSSL DOES NOT ADD MODULES TO THE v1 SEED, AND THE ABSENCE OF THIS SENTENCE HAS A MEASURED COST. cssl_assemble writes into out_dir ONLY -- the gunbc-emitted CANDIDATE crate. AS OF THIS REVISION IT DOES NOT READ src/v1/stage0/src AT ALL, AND THAT IS A STRENGTHENING OF THIS PARAGRAPH, NOT A CHANGE OF SUBJECT. It formerly had exactly one such read: seed_has_pub_mod, an oracle deciding whether a compiler-family module in the CANDIDATE should become a re-export of the seed rather than keep its emitted body. That oracle text-parsed the seed lib.rs for a pub mod line, which made it a SECOND authority over seed mod-tree membership beside the modeled one, v2.compiler.self_host.stage0_crate_layout -- and the two disagree exactly during drift. It is deleted with the arm it fed, which was already UNREACHABLE: the arm required a closure member to be absent from the emitted lib.rs manifest that the loop had just drawn it from, a negation false by construction. Verified by execution before deletion (a panic substituted for the arm body left all nine module tests identical in outcome), with the discriminating control closure_compiler_mod_emit_retained_when_seed_also_has_pub_mod kept enrolled. So the claim below no longer rests on reading which paths the arms write: no arm of assemble_seed_linked_closure reads OR writes any path under src/v1, so running it can never make the seed declare a module it did not already declare. THERE IS EXACTLY ONE WAY A MODULE ENTERS THE SEED: compile_stage0() emits it and the emitted bytes are committed, or v2.compiler.self_host.stage0_crate_layout registers it as seed-retained. claim_executor --required-regen refusing an unregistered committed file (committed_not_emitted) is that single path WORKING; it is not a second mechanism disagreeing with this harness. WHY THIS IS WRITTEN DOWN. cssl_closure_assembly_note beside it describes the assembly RULE correctly and never says what the rule is not, and the gap was read as a fork: an escalation concluded the repository had lost the ability to add a seed module, a lane was dispatched on it, the premise was retracted, and the re-scoped item still carried 'two paths -- cssl_assemble and --required-regen' forward until someone read what assemble_seed_linked_closure actually writes. A refusal doing its job was read as evidence of a fork. The distinction costs one paragraph here and cost a wrong work item without it."

data cssl_closure_assembly_note: String = "Generic closure assembly: dep manifest = gunbc-emitted src/lib.rs pub mod list (structural closure-membership authority). Entry module bytes hash-locked. Emit-retain rule: any module listed in the emitted closure manifest with a matching emitted src sibling .rs is emit-retained. The seed lib.rs is NOT consulted: the compiler-seed-re-export arm and its seed_has_pub_mod oracle are deleted (see cssl_is_not_a_seed_admission_path_note), so seed mod-tree membership has one authority, v2.compiler.self_host.stage0_crate_layout, and this harness is not a second reader of it. Hand shim_lib_rel/shim_writes = optional fast-path override (body_producer / behavioral receipts)."
data cssl_closure_assembly_note: String = "Generic closure assembly: the dep population is the EMITTED-POPULATION MANIFEST the compiler writes into the same out_dir (src/emitted_population.rs), read under the grammar both ends resolve from gunbc.stage0_emitted_population_manifest -- split on the separator, strip the line prefix. Entry module bytes hash-locked. Emit-retain rule: every path the emitter DECLARED it produced must be materialized in out_dir, byte-untouched; a declared path with no file is a typed refusal (RefusedDeclaredMember), and refusal for anything the bytes then say relocates to the cargo verdict. THIS REPLACED THE LAST RUST TEXT-PARSE ON THIS PATH (the prior revision scraped src/lib.rs pub mod lines to recover closure membership), and the swap is a strengthening rather than a rename: lib.rs mod list is rendered FROM the same module file list the writer then writes out, so that check could only agree with itself on the real path and its only reachable red came from a hand-authored lib.rs -- while the manifest declares Cargo.toml, lib.rs, main.rs, every module, every test file and itself, so the declared-versus-materialized question is answerable at the grain that matters. BOOTSTRAP_INLINE_MODS is deleted with it: the manifest never declares NonEmptyVec/NonEmptyBTreeSet because they are inlined structs and not files, so the state that skip tolerated is not representable in the population assembly reads. The seed lib.rs is still NOT consulted: the compiler-seed-re-export arm and its seed_has_pub_mod oracle are deleted (see cssl_is_not_a_seed_admission_path_note), so seed mod-tree membership has one authority, v2.compiler.self_host.stage0_crate_layout, and this harness is not a second reader of it. Hand shim_lib_rel/shim_writes = optional fast-path override (body_producer / behavioral receipts)."

data cssl_medium_as_string_scaffold_debt: String = "SCAFFOLD — tracked debt: Cargo.toml TOML markup authored via concat string literals in cssl_v1_compiled_cargo_* (same class as slb_cargo_toml / ssuv_cargo_toml / peh_cargo_toml). Probe-only throwaway measurement — not gate-side substrate. dissolve-on: extdeps cargo manifest grammar rows + bash-emit #5828 OR harness consolidation; until then one concat producer per variant ([[bin]] witness vs [lib] probe), consumed only via tools.self_host_curated_probe_cargo."

Expand Down
2 changes: 1 addition & 1 deletion src/v1/stage0/src/bin/cssl_assemble.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ fn main() {
Err(e) => {
eprintln!("CSSL_ASSEMBLE: REFUSED {e}");
std::process::exit(match e {
AssemblyError::RefusedDep { .. } => 2,
AssemblyError::RefusedDeclaredMember { .. } => 2,
_ => 1,
});
}
Expand Down
Loading
Loading