Repository navigation
Disposition carrier slice-3 (core): ground std DeclarationRef String→record + mint std.decl_ref + emit-core rewrite - #5632
Conversation
0d531b2 to
19ad64b
Compare
|
Merge-order note (for the sequencing owner): this core DELETES |
…ope) The generated_artifact_drift_gate flags docs/plans/dsl-v2-defork-audit.md: its .dag authority lacks the hand-added §2A block that main's committed .md carries (grep: .dag=0, .md=1 on origin/main) — a pre-existing main-side hand-edit-of-generated-artifact drift, red on main, unrelated to decl_ref. A harness auto-commit ran main_wet which would destructively drop that §2A content in this PR. Restore the file to main exactly so slice-3 stays scoped to decl_ref; the drift is the plan-owner's to fix (add §2A to the .dag). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ef record upgrade #5654 relocated CoproductWireContract rows from inline extdeps files into *_contracts.dag sidecars (kept in old String form). Re-home the slice-3 DeclarationRef String->record upgrade + decl_ref import into all 5 sidecars (anthropic/openai/pulls/docker/systemd) so the authority type change (serialization.CoproductWireContract.coproduct: String->DeclarationRef) typechecks corpus-wide. anthropic.dag keeps the bind: DeclarationRef Disposition rows + import (those did not relocate). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # src/v2/lens/disposition_redundancy_test.dag
Load-bearing 05_emit_rust composition re-confirm evidence (for @bright-stag)DESIGN sign-off was granted on the standalone emit-core at
|
Disposition carrier slice-3 (carrier-evolution): ground DeclarationRef String → record
Upgrades
std.serialization.DeclarationReffrom an anemicStringto a grounded record, dissolves the tempDeclLocatorscaffold from #5610 into it, and rewrites the DESIGN-named load-bearingsrc/v1/05_emit_rust.dagconsumer that reads it. Atomic core per bright-stag's SCOPE=SPLIT ruling (FU1 wire-lens-live + FU2 restore-citations are separate follow-ups).Single authority (§3, bright-stag HOME=B ruling)
dsl/std/decl_ref.dag— a neutral 3rd home owning the locator:type DeclField = WholeDeclaration | NamedField { field_name: NonEmptyStr }type DeclarationRef { module_path: NonEmptyStr, decl_name: NonEmptyStr, field: DeclField }std.serializationandstd.dispositionboth import it downward (neither imports the other — no cycle).DeclFieldlives ONLY instd.decl_ref; disposition'sScaffoldTargetis deleted andDeclLocatoris deleted —Scaffold.bindnow targets the unifiedDeclarationRef. Tree-wide grep confirms zeroScaffoldTarget/ zeroDeclLocatorremaining.decl_locator_dissolves_into_declaration_refScaffold row is dropped (its successor now exists; the redundancy lens stayslens_unitper the FU1 split).Author-sites grounded (12 coproduct + 6 disposition bind)
coproduct: "Name"literals acrossextdeps/{github/pulls, llm/openai, llm/anthropic}→coproduct: DeclarationRef { module_path, decl_name, field: WholeDeclaration }.structural_coverage_gapScaffoldbind: DeclLocator {...}→bind: DeclarationRef {...}(decl-shaped today; fierce-seal's Phase-2 wraps them intoDeclBoundunder theScaffoldAuthoritywiden).disposition_redundancy.daglens + its test swept (DeclLocator→DeclarationRef,ScaffoldTarget→DeclField); lens stayslens_unit.Load-bearing emit-core (
src/v1/05_emit_rust.dag)coproduct_decl_ref_decl_namedescends the coproduct record-init node to read itsdecl_namesub-field (same typed-record-init descentnaming_policy_nodealready performs on an encoding value).coproduct_wire_contract_targets,emit_coproduct_wire_contract_target_validation) rewired to it.§7 seed receipt — narrow byte-splice (fixpoint DEFERRED, per bright-stag's re-scoped signed bar)
This is NOT a regen fixpoint. The v1 self-emit fixpoint is systemically broken on main (a full regen write produces a non-building seed — 764 errors / 84-file drift; documented in #5639's
docs/plans/v1-seed-self-host-drift-findings.md). Per bright-stag's signed re-scope, the receipt here is the established hand-maintained-seed practice: a minimal byte-splice of ONLY the seed files this .dag change touches, verified by execution.src/v1/stage0/src/std_decl_ref.rs(emitted form of the mint) + registered inGENERATED_STAGE0_FILES+lib.rspub mod.std_serialization.rs/std_emit_model.rsdeforked from their two divergent localDeclarationRefaliases (Rc<FreeMonoid<Nat>>andString) topub use crate::std_decl_ref::DeclarationRef.v1_compiler_emit_rust.rsemit-core mirrors the .dag (helper + 2 consumers).The .dag is the authority; the seed splice is hand-maintained realization catching up. Full regen-verify /
ci_fixed_pointre-enter at the #5514 cutover (bright-stag plate), NOT here.Verification (by execution)
cargo build -p v1-compiler, clean) and is fmt-clean.cargo test -p v1-compiler-testsgreen — 770 passed, 0 failed, 92 ignored (the 92 are the deferred bootstrap/fixpoint tests), includingpipeline::anthropic_request_coproduct_wire_contracts_emit_targeted_serdeand the 6CoproductWireContractemit witnesses migrated to the record form.coproductas a bare string) turns those 6 record-form witnesses RED while the 4 orthogonal local-shadow lookalike tests stay green — the new emit-core is load-bearing, not inert.🤖 Generated with Claude Code