Repository navigation
Pascal-case type-param references in RECORD and VARIANT field types (emit-fold follow-up to #5844) - #5865
Conversation
…arate cutover PR Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… of this PR Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Independent execution-grounded confirmation: this restores type-param casing to cargo-greenI ran a clean oracle on a tree =
Note on the current This PR is the correct minimal — sent from jolly-cat-29 |
…ed point Applies #5865's casing fix (05_emit_rust.dag) and runs the 2-pass cutover regen: pass-1 advances the self-host blob + emitter (gen-1 drops v1_rt starts_with/ ends_with/trim, the one-generation-ahead seed-cement), rebuild, pass-2 re-emits them fresh (PascalCase). regen_stage0 --verify now exits 0 (a 3rd pass is byte-identical = THE fixed point). Registers extdeps_uri_path.rs in GENERATED_STAGE0_FILES (the legit unregistered-emit gap). Regenerates ROADMAP.md. Drift checks: cargo-header reproduced via emit_cargo_toml, wire_value_serialize.rs unchanged (hand-maintained, copy-preserved), v1_rt.rs emitted-fresh. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…5819) Operator ruled Path B for the #5864 parser seed-cement: v1_compiler_parse.rs moves to HAND_MAINTAINED_STAGE0_FILES (copy-preserved, so #5864's O(N) cursor optimization survives the regen instead of being reverted to the O(N^2) baseline that 02_parse.dag still models). Named dissolution trigger marked on the carrier. Re-regenerated the two-generation cutover against fresh main (incl #5865 casing, #5818 Uri grounding, #5819 ci.yml thin-shim). regen_stage0 --verify exit 0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… into executable RegenVerifyGate (cargo-green self-host fixed point, ONE PR) (#5873) * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * Part B: dissolve parked regen_verify_gate plan into executable RegenVerifyGate Adds RegenVerifyGate to the CI floor (ci_spec type Gate + gunbc_ci_floor_gates), wires all exhaustive Gate matches (ci_floor_plan gate_node/gate_runnable/ gate_is_heavy_resolve/gate_spawns_host_compiler, ci_gates.run_spec_gate, floor_effect_gate_witness). New dsl/tools/regen_verify_{gate,transport}.dag run regen_stage0 --verify (the §7 self-host fixed-point wall) via a new ensure_regen_stage0_built host-prelude helper. Deletes the parked plan, its empty plan_registry_batch_a, the generated required-facts md, and repoints the roadmap carrier. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * Part A: two-generation cutover regen to the cargo-green self-host fixed point Applies #5865's casing fix (05_emit_rust.dag) and runs the 2-pass cutover regen: pass-1 advances the self-host blob + emitter (gen-1 drops v1_rt starts_with/ ends_with/trim, the one-generation-ahead seed-cement), rebuild, pass-2 re-emits them fresh (PascalCase). regen_stage0 --verify now exits 0 (a 3rd pass is byte-identical = THE fixed point). Registers extdeps_uri_path.rs in GENERATED_STAGE0_FILES (the legit unregistered-emit gap). Regenerates ROADMAP.md. Drift checks: cargo-header reproduced via emit_cargo_toml, wire_value_serialize.rs unchanged (hand-maintained, copy-preserved), v1_rt.rs emitted-fresh. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * Path B: parse.rs hand-maintained + re-regen against fresh main (#5818/#5819) Operator ruled Path B for the #5864 parser seed-cement: v1_compiler_parse.rs moves to HAND_MAINTAINED_STAGE0_FILES (copy-preserved, so #5864's O(N) cursor optimization survives the regen instead of being reverted to the O(N^2) baseline that 02_parse.dag still models). Named dissolution trigger marked on the carrier. Re-regenerated the two-generation cutover against fresh main (incl #5865 casing, #5818 Uri grounding, #5819 ci.yml thin-shim). regen_stage0 --verify exit 0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * Fix stage0_core crate membership + hand-test for the faithful fixed point The full-workspace build (the broadened oracle CI rust_tests uses) exposed two more pre-existing main non-fixed-points that the cutover surfaces: 1. stage0_core E0432/E0433: the faithful regen emits use crate::extdeps_uri / extdeps_external_authority in the extdeps_languages_* modules and use crate::std_realization_schedule/std_decl_ref in std_effects/std_emit_model, but stage0_crates.dag's CoreCrate modules list omitted them. Added the full transitive closure (9 modules: extdeps_external_authority, extdeps_uri, std_decl_ref, std_lens_verdict, std_magnitude, std_measure, std_nat, std_pareto, std_realization_schedule) so stage0_core is closed under crate:: deps. 2. effects.rs (hand-test) imported parse_path_template/PathTemplateParseResult from std_http_path, but #5818 moved them to extdeps_uri_path in the authority (main never regenerated, so its stale seed + test still pointed at std_http_path). Repointed the imports to the fixed-point location. regen_stage0 --verify exit 0; cargo build --workspace --all-targets -D warnings 0/0; parse.rs still byte-identical to origin/main (#5864 preserved). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * Merge origin/main (#5874/#5878/#5880) into cutover branch; seed reset to main (re-regen reconciles), Path-B HAND_MAINTAINED re-applied for main.rs/parse.rs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Restore compilable pre-regen interim: all source authoring (reg-2 A1+S5, reg-3, both grounded witnesses, extdeps_uri_path reg) on main seed; regen HELD pending #5878 empty_node_list ruling The faithful regen is blocked: #5878's empty_node_list thread_local singleton is an ungrounded seed-cement (hand-edited into v1_std_core.rs seed, not in any .dag); a regen drops the definition while 2 HAND_MAINTAINED files (parse.rs/dag_collect_support.rs) still call it. Escalated to manager (empty_node_list grounding option + #5878-documented emitter non-determinism vs RegenVerifyGate bit-identity premise). Seed kept = origin/main (compilable) until the ruling. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in * WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Summary
05_emit_rust.daghas three record/variant field-type rendering functions that bypassedto_pascalon type-parameter references, producing lowercase Rust type params (e.g.value: okinstead ofvalue: Ok).#5844fixed the declaration list (<Ok, Err>) and the alias RHS, but not the field-type references inside record structs and enum variants.Changes (
.dagauthority only, no seed):emit_struct_field_from_child: always userender_rust_decl_typewhengeneric_param_names |> count > 0(was branching throughrender_node_typewhentype_node_has_value_variant_argreturned false)render_rust_field_type_with_applied_binding: addgeneric_param_names / variant_to_enum / envparams; userender_rust_decl_typewhen params non-emptyemit_variant_from_child+emit_enum_shared_accessors: threadgeneric_param_namesthrough to call sitesGen-2 oracle (out-of-band, not committed)
Two-pass regen ran locally:
std_types.rs/std_machine_constraints.rs(lowercase type aliasesList<element>,MachineWidth<bits>— pre-existing dag drift, not caused by this fix), 0 errors.std_error_primitives.rs:pub enum Result<Ok, Err> { Ok { value: Ok }, Err { value: Err } }✓std_measure.rs:pub struct Measure<Q, S, M>— no regression ✓Test plan
type_param_casing_test.rshas 4#[ignore]tests that prove this fix once the seed is regenerated (separate cutover PR). The#[ignore]intentionally stays — these are the discriminating witnesses for the cutover..dagchange (dsl_compile_clean_gate, layering-imports scan).