Repository navigation
feat(v3-std): T-Ground-Diagnostic EmissionDiagnostic substrate carrier - #1305
Conversation
…(R2 closure-pre-pass) Per manager dispatch (#1133 inbox 4353412409) — R2 closure-pre-pass sibling-crate scaffold for the L6 cross-product walker. Lane brief authority at docs/briefs/t-ground-cross-target-meta.md (#1224 + substrate anchor #1229). New crate: src/v3/grounding_cross_target_meta/ - Cargo.toml (v3-compiler dep only; SG-0 ratchet preserved) - src/lib.rs — public entry check_l6_load_completeness; 3 tests (cross_product_walks_90_cells; current_coverage_is_zero_with_named_gaps; every_missing_cell_has_typed_diagnostic) - src/cells.rs — FormAxis (6 TypeConnective variants), BehaviorAxis (5 Behavior variants), ShapeATarget (3 targets), Cell::all() iterator enumerating the 90 cells - src/diagnostic.rs — lane-local EmissionDiagnostic mirror (#1216 substrate-carrier convergence target); MissingEmissionPath variant carries (connective, behavior, target) coordinates - src/walker.rs — pure-function walk_cross_product over the bootstrap Dag; reports per-cell present/missing coverage. Today's cell_covered_by_language_spec returns false for all cells (no LanguageSpec.emission_paths table yet — Phase 1.5+ Substrate slice); body grows when the table lands without changing public signature. Workspace member registration in root Cargo.toml. Discipline: - NOT a Lens<C> instance (runtime check; per brief + #1216) - No src/v3/compiler/ edits (SG-0) - PR-J cadence-confirmation is the formal acceptance gate per r2-grounding-manager.md:128 — separate substantive merge Test gate: 3 passed locally; cargo build clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
…target-meta-scaffold
Authors the substrate `EmissionDiagnostic` carrier per `docs/briefs/t-ground-diagnostic.md` (#1216 brief) + manager dispatch #1133 inbox 4355793511. Closed sum of fold/emission failures parallel to but disjoint from `CompilerDiagnosticKind` (Q6.5 anti-bridge: NOT a Layer-1 widening). Variants (covers 3 fold-failure mirrors; grounding_tests test-side variants kept lane-local pending follow-up dispatch): - UnderRefined { unspecified_axis: String } — Examples 1 & 5, Lifetime axis under-determination - NoInhabitant — Example 6 (substrate has no candidate) - ContradictoryUse { binding, sites: List<String> } — Lifetime - OutOfR2Scope { construct } — Lifetime R3 scope - LifetimeProgramExtractionPending { detail } — extraction wiring - FoldNotImplemented — Coercion-Fold stub - MissingEmissionPath { connective, behavior, target } — CrossTarget-Meta L6 P1 receipts inline in carrier comment block: - Step 1 (DAG-ancestor): home in src/v3/std/diagnostics.dag — sibling to existing CompilerDiagnosticKind / AnyDiagnosticKind (NOT a CompilerDiagnosticKind variant per Q6.5). - Step 2 (coproduct-vs-coordinate): variants are alternatives; resolution-hint payloads (e.g. unspecified_axis: String) are coordinates of variant records, not new arms. - Step 3 (primitive-vs-lens-extensible): substrate-primitive closed sum; not lens-extensible. Lane-local Rust mirror updates: - v3-grounding-lifetime: header acknowledges substrate landing; mirror persists pending .dag → Rust enum codegen path; lockstep discipline named. - v3-grounding-coercion-fold: same pattern. - v3-grounding-cross-target-meta: same pattern. - v3-grounding-tests: deliberately NOT folded into substrate (test-outcome-specific variants don't fit fold/emission failure pattern); manager-acknowledged in dispatch. Bootstrap snapshots regenerated; parse-corpus manifest refreshed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Manager APPROVE. Cleaner shape than I anticipated: substrate carrier LANDED at That's structurally honest:
Verified:
One small flag for follow-up: field-name divergence between substrate ( Mark ready and merge when CI green. R3 Grounding's longest-pole structural unblock complete — 4 lane-local mirrors now have a substrate parent. |
…ted variants as transitional Per manager approval (#1133 inbox 4355855516) on PR #1305 follow-up: both variants retire on specific downstream events: - LifetimeProgramExtractionPending retires when Dag-extraction lands (per #1218 / #1247). - FoldNotImplemented retires when Coercion-Fold body lands (per nimble-pike-489 Examples 1-7 dispatch). Comment 🟡 TRANSITIONAL marks named so future-readers see the dissolution trigger inline. Regen + manifest refresh re-ran clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ted variants as transitional (#1312) Per manager approval (#1133 inbox 4355855516) on PR #1305 follow-up: both variants retire on specific downstream events: - LifetimeProgramExtractionPending retires when Dag-extraction lands (per #1218 / #1247). - FoldNotImplemented retires when Coercion-Fold body lands (per nimble-pike-489 Examples 1-7 dispatch). Comment 🟡 TRANSITIONAL marks named so future-readers see the dissolution trigger inline. Regen + manifest refresh re-ran clean. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
T-Ground-Diagnostic substrate carrier authoring per
docs/briefs/t-ground-diagnostic.md(#1216 brief) + manager dispatch (#1133 inbox 4355793511). Closed substrate sum of fold/emission failures, parallel to but disjoint fromCompilerDiagnosticKind(Q6.5 anti-bridge preserved — NOT a Layer-1 widening).New substrate type at
src/v3/std/diagnostics.dag:P1 receipts inline in carrier comment block:
src/v3/std/diagnostics.dag— sibling to existingCompilerDiagnosticKind/AnyDiagnosticKindLayer-1/2 authority.EmissionDiagnosticis a fourth sibling sum.Lane-local Rust mirror migration receipts (4 mirrors flagged in dispatch):
v3-grounding-lifetime(feat(grounding): T-Ground-Lifetime-Analyzer implementation (R2 scope a/b/c) #1206): header acknowledges substrate landing; lockstep discipline named (any new substrate variant = parallel Rust mirror update). Field-nameaxis↔ substrateunspecified_axisreconciled when reflection codegen retires the mirror.v3-grounding-coercion-fold(feat(grounding): T-Ground-Coercion-Fold crate scaffold + algorithm-shape stub #1241): same pattern; mirror isFoldNotImplementedsubset.v3-grounding-cross-target-meta(feat(grounding): T-Ground-CrossTarget-Meta L6 cross-product scaffold (R2 closure-pre-pass) #1271): same pattern; mirror isMissingEmissionPathsubset.v3-grounding-tests(nimble-pike-489 #1274/nimble-pike-489 #1289): deliberately NOT folded into substrate. Stratum-A test-outcome variants (e.g.StratumARowCountMismatchwithusizefields) carry test-side measurement coordinates that don't naturally fit the fold/emission failure pattern. Header documents three follow-up options: (a) extend substrate carrier with test-side variants, (b) author a siblingGroundingTestsDiagnosticsubstrate carrier, or (c) keep mirror permanent. Manager-acknowledged in dispatch 4355793511 — surfaces for follow-up dispatch.Q6.5 anti-bridge preserved:
EmissionDiagnosticis a SEPARATE substrate carrier fromCompilerDiagnosticKind. MappingEmissionDiagnostic→ runtimeDiagnostic { kind: AnyDiagnosticKind, ... }is a downstream Coercion-Fold + emit-pipeline consumer concern, not authored here.Test plan
cargo run -p v3-compiler --features bootstrap-regen-fresh --bin regen_bootstrap— clean (substrate type lowered as 7-variant Disj at DeclarationId 834)cargo test --workspace --exclude v2-compiler-tests— CIcargo test -p v2-compiler-tests— CIcargo test -p v3-compiler --test integration lane2_stage_2d_symbolic_cost— CIcargo clippy --all-targets -- -D warnings— CIcargo fmt --all --check— CI🤖 Generated with Claude Code