Repository navigation
CP-1b/T-8 close bucket A — normalize scaffolds + binding-harvest cascade - #3361
Conversation
b249e23 to
8f06f39
Compare
8f06f39 to
3ca8704
Compare
|
Verified the dashboard-only review artifact against the current head. The perf observation is valid in the narrow sense that |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
e35f28a5· Trigger:schedule - Thinking:
364s wall
BLOCKING (1)
Root Cause
docs/audit/dissolution-inventory.mdP5 closure was applied to the main row/detail but not the roll-ups that still drive burn-down state → update Section 1.2 and the Section 2 summary/primitive rows to closed status, or keep the cascade consistently open.
| | **P3** | Compiler pipeline-stage substrate (lex-walk + parse-walk) | compiler / T-6, T-7 | **2 + ~7 in-file** | Section 2: `compiler/01_tokenize.dag tokenize`, `compiler/02_parse.dag parse`. In-file: the parser-side VAGUE prose blocks in `json.dag` / `yaml.dag` / `toml.dag` that concretize to T-6/T-7 (the operations-side family separate from P1). | | ||
| | **P4** | T-4 fact-bundle Phase-3 rework (post-D2-reversal model) | extdeps/languages / T-4 manager `vivid-carp-207` (5-feeder gate; keystone #3226 merged @`77b9e7d72`; 4 feeders open: T-3, T-29, T-30, T-25-core) | **4 + 1 row + 1 fn** | In-file: `typescript.dag` × 4 INVALID-GATE blocks (re-gate against this arrival, not pre-reversal D2). DECISIONS.md: `SL-3229-VERILOG-D3200` (if re-gated as `feature: T-4 fact-bundle Phase-3 rework` rather than `consumer:` form — see Section 3). Section 2: `extdeps/languages/dag.dag dag_language_model_wave1_void_canonical_symbols` (added in CP-1b #3225 — canonical_symbols set is a fact on DagLanguageModel/language-identity, not a hand-rolled function). | | ||
| | **P5** | `std/node.dag` `fold_node` — Node catamorphism (substrate-extension under T-1) | std / T-1 | **1 + 3 (03_resolve cascade only)** | **Substrate LANDED PR #3297:** `NodeFold<R>` + `fold_node` in `src/v4/std/node.dag`; `node_well_formed` consumes the shared `NodeFold<Bool>` algebra (burn-down closeout + #3297). **Cascade (open):** `compiler/03_resolve.dag merge_binding_self` (94, codex #3225) plus `add_module_named_exports` (99), `add_arrow_domain_named_params` (113), `add_bind_atom_binder` (140). These dissolve to `fold_node(root, ⟨binding-harvest algebra⟩)` only when a scoped harvest algebra lands without changing resolver scope semantics. | | ||
| | **P5** | `std/node.dag` `fold_node` — Node catamorphism (substrate-extension under T-1) | std / T-1 | **LANDED for 03_resolve cascade (2026-05-19)** | **Substrate LANDED PR #3297:** `NodeFold<R>` + `fold_node` in `src/v4/std/node.dag`; `node_well_formed` consumes the shared `NodeFold<Bool>` algebra (burn-down closeout + #3297). **Cascade dissolved:** `compiler/03_resolve.dag` deleted `merge_binding_self`; `add_module_named_exports`, `add_arrow_domain_named_params`, and `add_bind_atom_binder` now consume scoped `NodeFold<Map<Symbol, Symbol>>` binding-harvest algebras without changing resolver scope semantics. | |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
31a46c4f· Trigger:schedule - Thinking:
194s wall
Non-blocking — Strengths
src/v4/compiler/03_normalize.dagThe local normalize result coproduct is cleanly replaced by the canonical Outcome carrier, preserving fail-closed diagnostics.src/v4/compiler/03_resolve.dagThe binding-harvest rewrite routes the prior direct-child walkers through scoped NodeFold algebras while preserving the resolver's direct-scope semantics.
✅ No blocking concerns found.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
0c65aeb2· Trigger:schedule - Thinking:
246s wall
Non-blocking — Strengths
src/v4/compiler/03_normalize.dagThe normalize pass replaces local carriers with canonical Option and Outcome shapes while preserving fail-closed diagnostic propagation.src/v4/compiler/03_resolve.dagThe binding harvest now routes through scoped NodeFold algebras and preserves direct-scope semantics by ignoring child fold results where required.
✅ No blocking concerns in this mixed docs/.dag review.
Summary
Closes dashboard node
adhoc-6e4ee11f-283.Bucket A closes the CP-1b/T-8 scaffold surfaces that already had canonical substrate carriers available:
03_normalize.dag: dissolvesSugarClassificationintoSurfaceSugarKind?andNormalizeChildrenResultintoOutcome<List<Edge>>, keepingSurfaceSugarKindas the remaining T-8 sugar axis.03_resolve.dag: deletes themerge_binding_selfleaf and routes module export, arrow-domain parameter, and bind-binder harvest through scopedNodeFold<Map<Symbol, Symbol>>algebras over the existingfold_nodesubstrate primitive.DECISIONS.md/dissolution-inventory.md: record the normalize carrier dissolutions and the P5 binding-harvest cascade closure.Model / scope
This is
.dag-only substrate-consumer cleanup. It does not add Rust, does not add out-of-substrate enforcement, and does not touchstd/node.dag; it consumes the already-landedNodeFold/fold_nodesurface from T-1. The resolver fold algebras intentionally ignore child fold results where direct-child harvest is the resolver contract, preserving module, arrow-domain, and arity-3Bindscope semantics.Verification
cargo run -p v2-compiler -- compile --source-root src/v4 --output-dir /tmp/gunbc-v4-compile-nimble->compiled: 77 files emitted, 0 diagnostics