Skip to content

v2 grammar: the keyword data names a value in expression position, as module does - #12801

Merged
gunbai-bot[bot] merged 5 commits into
mainfrom
session/keen-fox-715-data-as-value
Oct 1, 2026
Merged

gunbai-bot[bot] merged 5 commits into
mainfrom
session/keen-fox-715-data-as-value

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

XL-2, per quiet-seal-543's ruling: v2 parse refusals, one class per PR, with v1 as the reference. This one is class C1.

The defect

v2.extdeps.languages.dag dag_grammar_primary_name_expr admitted identifiers and exactly one keyword, module, as a name in expression position. extdeps.google.sheets writes data: data in a transport body, naming its io field data. The label parses, because dag_grammar_binding_name_terminal already admits keywords. The value data did not, so the module refused whole as parse_g0_tokens_remain.

The change

data joins module as an admitted value-position keyword, for module's stated reason: it heads a declaration that is module-level only, so nothing else can begin an expression with it.

v1 is wider. 02_parse parse_primary reads every keyword as a name except the literal keywords and the six that head their own expressions (dag_non_name_keywords). v2 deliberately does not copy that, because a clause keyword admitted as a value (else, then, in, as) could begin a new statement where the grammar expects the clause. The note on the rule records v1's wider reading and why v2 admits only the declaration-heading keywords a source has needed.

Controls (v2.test.claim.parse.data_keyword_as_value)

Each outcome is a nullary value enrolled warm in v2.workflow.floor_pure_producer_share, and each claim reads it: a claim that parsed its own source was over the new-witness eval-step budget on #12796.

  • the_data_keyword_as_a_value_parses_holds (fn pick(data: Int) -> Int { data }). Red on main, executed.
  • the_data_keyword_as_a_value_normalizes_holds: the route past parse. Red on main, executed.
  • a_clause_keyword_is_still_not_a_value_holds: else in the same position still refuses. It passes on main and on the branch, so the admission is exactly data.

Parse count before and after (extdeps.google.sheets, the one file in this class)

sheets.dag also carries a 5xx status class, which #12778 fixes and which refuses first on main. Both arms were therefore measured with #12778's grammar change applied:

main + #12778 this branch + #12778
dag/extdeps/google/sheets.dag refuses, parse_g0_tokens_remain at byte 30061 (line 771, data: data) parses

Without #12778, both arms refuse at the earlier 5xx (byte 29212), so this PR's effect on that file is visible only once #12778 lands. The controls above don't depend on it.

No emitted Rust changes: the v2 grammar has no stage0 mirror.

Land only via the merge queue.

🤖 Generated with Claude Code

gunbc-ci-auto-heal and others added 2 commits September 30, 2026 15:43
… module does and as v1 reads it

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… values

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE-MERGE at exact head 2d86190.

No findings. The admission is narrowly limited to the declaration-heading keyword data beside the existing module case; clause and expression-heading keywords remain excluded. The controls cover parse, the route through normalize, and a negative clause-keyword twin, so this does not copy v1's broader keyword-as-name policy.

Merge queue only. The actual merge_group candidate must pass against then-current main; no direct merge and no check bypass.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 30, 2026
gunbc-ci-auto-heal and others added 2 commits September 30, 2026 19:33
…r union)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…r union)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE-MERGE / REBIND at exact head 9e2419b. Supersedes my approval at 2d86190. Since that approved head, the branch gained only two successive main merges: dbf1877 (parents 2d86190 + main cbfdc1e) and this head (parents dbf1877 + main a00d1fe). No feature commit was added. The current diff remains the approved three-file, 85-addition/4-deletion change; the warm-roster patch adds only the three data_keyword_as_value producers beside main's rows. Exact-head floor, generated, emit-build, and witnesses pass. Merge-queue landing only: the actual merge_group candidate must pass against then-current main; no direct merge or check bypass.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 30, 2026
…r union)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE-MERGE / exact-head rebind from approved 9e2419b409bc18b10ee3ebed54f88dc8de90c24b to 6ca31d556d9573e251e175389cba1027127dcac6.

The new commit is a main merge only: first parent is the approved head and second parent is current main c95f906f0ff6f21b00db7edb84ae09c41eff5863. The PR remains the same three-file 85+/4- change. The resolved floor_pure_producer_share diff adds only this witness family's three warm producers while retaining main's intervening rows. Exact-head floor, generated, emit-build, and witnesses pass.

Merge-queue landing only. Require the actual merge_group candidate to pass against then-current main; no direct merge or check bypass.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 1, 2026
Merged via the queue into main with commit 9f98b53 Oct 1, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/keen-fox-715-data-as-value branch October 1, 2026 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant