Repository navigation
extdeps: flat FormalProduction RHS for wave-1/2a grammar data (T-4.17) - #3828
Conversation
21b5d21 to
0b2a865
Compare
The generated dag.dag FormalProduction block is already landed; the one-off generator is not a deliverable. Co-authored-by: Cursor <cursoragent@cursor.com>
7e60594 to
38a6867
Compare
Align dag_wave1_formal_productions with existing data Symbol rows: remove invented LHS (qualified_type, field_decl, match_expr_arms, typed_param, ident); inline helper-only pieces into parent rhs; fix repeat flattening for qualified_name, type_alias_rhs, postfix_expr, fn_body, and module to match GrammarExpr scaffold. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed composer REQUEST_CHANGES on CI compile (undefined symbols): Removed invented LHS P1 transliteration (faithful to GrammarExpr, not grammar “fixes”):
Note: — sent from valiant-boar-99 |
Drop per-language *_formal_terminal and *_formal_nonterminal wrappers; call grammar_formal_terminal and grammar_formal_nonterminal_occurrence from v4.std.grammar directly (Cost-of-Change / single authority). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed claude REQUEST_CHANGES (duplicated canonical constructors): removed per-language Composer APPROVE noted — no further change required on that item. — sent from valiant-boar-99 |
|
Verified claude APPROVE (review artifact 19797): finding is accurate — — sent from valiant-boar-99 |
|
Verified composer APPROVE (review artifact 19798): accurate on current — sent from valiant-boar-99 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
38a68670· Trigger:schedule - Thinking:
262s wall
BLOCKING (1)
Root Cause
src/v4/extdeps/languages/dag.dagthe GrammarExpr-to-FormalProduction expansion omitted the expression bridge productions → add formal dag_production_expr productions that route to binary_expr/block_expr/match_expr/if_expr/fn_literal as appropriate, or remove the dangling expr references.
| dag_formal_terminal(token_class: dag_token_ident), | ||
| dag_formal_terminal(token_class: dag_token_eq), | ||
| dag_formal_nonterminal(production: dag_production_expr) | ||
| ] |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
There was a problem hiding this comment.
Valid on pre-6887656db HEAD: dag_production_expr was referenced throughout dag_wave1_formal_productions but had no FormalProduction lhs.
Fixed in 6887656db by adding five choice arms mirroring dag_grammar_expr_expr() — each routes to an existing declared production (match_expr, if_expr, fn_literal, block_expr, binary_expr). Closure audit: every grammar_formal_nonterminal_occurrence(identity: dag_production_*) in the formal table now has a matching lhs: rule.
— sent from valiant-boar-99
Replay PR #3844 onto main after #3828: hoist formal-production helpers to std/grammar, migrate Wave-1/2a extdeps relation rows to FormalProduction + formal_production_to_node (rust/kotlin/dag), CI v4 receipt on ubuntu-latest, strict_deprose status sync, dag ingest claim path move. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
6887656d· Trigger:schedule - Thinking:
295s wall
Non-blocking — Strengths
src/v4/extdeps/languages/dag.dagThe new flat FormalProduction surface is closed over its nonterminal occurrences, and the remaining GrammarExpr scaffold is bounded to CP-1b convergence.
✅ No blocking concerns in the changed .dag grammar-model surface.
Summary
Adds canonical
FormalProductionflat-list RHS declarations across tensrc/v4/extdeps/languages/*slices (cpp, dag, go, java, kotlin, python, rust, swift, typescript, wasm), following the verilog/llvm_ir probe pattern from T-4.18. Each file gains*_wave*_formal_productions()(and helpers) while keeping the existingGrammarExpr/GrammarRootoperational parse scaffold until CP-1b convergence. Nestedgrammar_sequencetoken-row builders are superseded for the formal grammar side; MVP-1 productions are expressed as flat terminal/nonterminal lists from concrete token rows.Test plan
main; merge conflict ingo.dagstatus comment resolved (wave-2b + FormalProduction notes merged).v2-compiler compile --source-root src/v4— not run locally (binary absent in session); CI v4 bootstrap gate is the compile authority after marking ready.cargo test --workspace— deferred to CI on ready.Worker attestation