Repository navigation
docs: census of ungated v2.test.parse.* modules (35 modules; 7 FALSE claims on main) - #13372
Closed
gunbai-bot[bot] wants to merge 1 commit into
Closed
gunbai-bot[bot] wants to merge 1 commit into
gunbai-bot[bot] wants to merge 1 commit into
Conversation
Measured by claim_batch, BuildBuddy invocation ea96a65d at main@5e9c7ea18c. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
This census stays the source for the plan. Phase 1 landed in #13374: 10 cheap, green modules (65 claims) are now gated. Phase 2, the 7 FALSE claims, is #13375. Phase 3 gates the over-budget modules, one PR per module, each linked here as it opens. keyword_path_segment_parse is gated after #13126. Phase 4, deleting the foreign grammars, is on hold for the operator. Closing as the plan's source. — sent from calm-crab-469 |
This was referenced Oct 5, 2026
Gate block_headed_operand_class: fragments at expr plus one real-route claim (census phase 3)
#13410
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Census: ungated
v2.test.parse.*modulesCensus only. Nothing is moved, gated or deleted here. Requested by sharp-raven-357 through stern-bear-500 (grammar program).
Finding being censused
v2.workflow.required_floorrequired_gate_prefixesadmits onlytest.claim.*families. Every module whose header ismodule v2.test.parse.<x>sits outside the required floor's prepared universe, so its claims execute only when a PR's changed-witness selection reaches them. The census below shows the cost of that: 7 claims are FALSE on main@5e9c7ea18c and no required lane reports them.Population
git grep -l -E '^module v2\.test\.parse\.' origin/mainat5e9c7ea18c5edc1e4989272f0cd119565ac2f098lists 43 files, all undersrc/v2/test/claim/parse/. The grammar program owns 8 of them (bare_node_statement_route, brace_and_lambda_head_route, else_less_if_value_category, newline_dual_role_operator_parse, choice_lookahead_guard_test, choice_plan_test, grammar_validation_test, newline_dual_role_operator_mutation_test). That leaves 35 in scope:test fnclaims (or, foralias_decl_parse, three zero-arity-> Bool_holdsfns). All 26 were measured.parse_binding_fidelity_support,supplied_token_stream_support).go,kotlin,lean,python,rust,swift,typescript). Their claims aredata claim_*: TestClaim = EqualsClaim {…}rows, 14 in total.claim_batchrefuses these asdoes not declare requested function(s)(invocation 5d346ed3), so they are not executable on the floor's function-row route and were not measured.The measuring run
claim_batch(src/v1/stage0/src/bin/claim_batch.rs). One process ran all 26 entry groups and 237 claims, explicit--entry/--functionsrows,--source-root dag --source-root src/v2.ea96a65d-925d-4594-843c-960075bf8af1, dispatched byctrl-build --remoteunderEstimatedMemory=28GB. Inside the script:git checkout --force -- .,git clean -fdq, fetch and force-checkout of the pinned full sha, and a refusal unlessHEADequals the pin. A 240 s heartbeat ran throughout, and the full stdout was gzip+base64 framed out of the log.memory.max= 24 GiB, the process joins it after the build). It does not useGUNBC_MEMORY_BUDGET_BYTESas the brief asked. That variable is a planning request that constrains no allocation, and on a runner where no observed limit backs it, it turns the typedHostBudgetUnreadablerefusal into a silent SIGKILL. That is the escape hatch DESIGN §5 forbids. Peak RSS was 8.6 GiB after the first resolve.claim_batchrow list at the pin. The list is the 26 files below × theirtest fnnames, plusalias_decl_parse's three_holdsfns.[witness] eval_stepsmeans here: it is the claim's marginal steps. One shared fill of 6,207,706 eval steps / 19,104 cpu ms was paid inside this batch (6.13M of it bymatch_heading_a_binary_chain_parses_holds, which is the dag grammar preparation; the rest is small grammar fills). Following the floor's shared-fill accounting, that fill is shown separately and not charged to any one claim.claim_batch --roster-from-discoveryrefuses on this tree withno declaration named 'discover_floor_corpus_rows_from_host_facts' in this execution's loaded index(invocation 79ba7512). This is a separate defect, reported here and not repaired.The 72,300 eval-step budget applies per claim. The "> budget" column counts claims whose marginal
eval_stepsexceed it.Table
Class key:
"Live" for (a) was established by import: all (a) modules reach
v2.compiler.parse,tokenize,normalizeorprogram_assemblyoverv2.extdeps.languages.dag, anddag_grammar_rootis consumed in production byv2.compiler.program_assembly,namespace_graftandoccurrence_role.src/v2/test/claim/parse/)aliasdecl parse plus itsAliasBindingRow/ lexical lookup insymbol_index_fillalias_decl_fill_lexical_lookup_holdsexpr: match/if/loop heading abinary_expr(#11911 revival)v2.compiler.parse_acceptance_censusmoduleas value, anonymous record type, admit-callers, early-return guard; parse→normalize fidelityother_keywords_are_not_values_holds|, positional payload variants and patterns, through normalizewhererefinement (D1 cause A), parse plus normalizeascast, match-as-infix, unary minus, brace map,returnfn_decl= exprbody, plus empty=refusalsservicedecl family (exact-word terminals), the normalized-tree doortype_field_default_still_refuses_holds,type_field_from_key_still_refuses_holds,config_only_service_is_refused_for_its_set_aside_realization_holdsExpectlabel on ordered choiceRepeatAfterLineBreak/RefuseOnMatchmatch_arm_stmt_bodygrammar row stamping and stopa_match_arm_statement_body_is_stamped_and_stops_at_the_next_arm_holdsv2.compiler.parse_acceptance_censusaccepted / refusal-by-reason reportingresolveparse_token_firstagrees withlist_at_optionalTokenStreamCursoroperationsNormalizedTree(#13033)nominal_opaque,sole_constructor), lexeme stampingvf_shadowing_binder_is_carried_on_the_armwhererefinement clause (brand/range), parse plus normalize grafttest.claim.longparse_binding_fidelity witness andbody_loweringhelpersaddreturn;, tight layoutNote on the 7 language modules (b). The subject is ingesting a foreign language through
X_grammar()/X_lex(). A grep for callers outsidesrc/v2/extdeps/languages/and the test trees (git grep -nE "(python|go|kotlin|swift|lean|typescript|rust)_(grammar|lex)\b" -- '*.dag' ':!src/v2/extdeps/languages/*' ':!src/v2/test/*' ':!dag/test/*') returns nothing. Neither does a grep ofsrc/v2/compiler,src/v2/clianddag/gunbcforX_grammar_root(. So no part of the compile closure ingests these languages. Two further facts:src/v2/test/claim/manual/*_grammar_claim_test.dagover the same grammars.The proposed disposition is DELETE: the manual claims remain for the three languages that have them. This contradicts the brief, which named
python_grammar_rootas a live root. Grep shows no production consumer ofpython_grammar_root; its only references areextdeps/languages/python.dagand two manual test modules. Rust is an emission target, butrust_grammar()itself has no caller, and the brief's "one grammar both directions" route does not reach it today. The owner ofextdeps/languagesshould confirm before anything is deleted.(c) other lane: none assigned. Every in-scope module was added by
gunbai-bot[bot]commits (PR titles ingit log --follow), and the subjects are all dag-grammar / 02_parse, which is the grammar program's own territory. The G0 probes (g0_service_decl,type_decl_modifier_g0,weather_g0_prefix) came from the native-parse frontier work (#11575, #116xx). If that lane is still open, it is their natural owner. I could not establish an open owner from the dashboard.Summary
Added floor cost if every (a) were gated (measured by ea96a65d, before any split or supply rework):
69 of 237 claims exceed the 72.3k budget. The largest are
vf_distinct_payloads_normalize_distinct(328,315),vf_content_hash_declarations_and_positional_match_normalize(316,893) andcause_a_where_clause_survives_normalize_holds(306,417). Nearly all of the over-budget claims run parse→normalize on a source string. Under DESIGN §3 "a witness discriminates at one interface" that is the reach-too-far shape: supply the token stream or tree, and keep one inhabitance claim per boundary. They cannot be enrolled as they stand.What this means for gating
alias_decl_parse,closure_parse_batch_two,g0_service_decl_parse_probe,match_arm_statement_body_parse,variant_field_lowering). Those reds are standing defects on main today, invisible because of exactly the gap this census is about. They need triage first. Each one is either a real regression or a stale claim.grammar_expect,grammar_not_predicate,keyword_path_segment,parse_binding_fidelity,parse_table_claims,parse_table_content_key,parse_token_first_empty_semantics,token_stream_cursor,type_decl_modifier_carrier,type_decl_modifier_g0_parse_probe,weather_g0_prefix_parse_probe. That is 11 modules, 68 claims, 1,187,699 eval steps and 3,193 cpu ms.Docs-only census; no moves, gates or deletions. Report to stern-bear-500; not for self-merge.
🤖 Generated with Claude Code