batch: no func_start rule -- zero units extracted from scripts built on call :label subroutines #3338
Copy link
Copy link
Closed
Labels
bugUnintended behavior or logic failure in the engineUnintended behavior or logic failure in the enginecore-engineModifications to the central physics and parsing engineModifications to the central physics and parsing engine
Milestone
Description
Problem
batch has no func_start rule (languages/batch.py never defines the key), so the engine extracts zero units from batch scripts, even ones built around call :label subroutines. Measured on language-crucible v1.4.0:
| file | :label blocks |
call :label sites |
units extracted |
|---|---|---|---|
batch/cpython/Tools/msi/buildrelease.bat |
5 (:CheckOpts, :builddoc, :skipdoc, :build, :Help) |
3 (call :build x86 / x64 / ARM64) |
0 |
batch/cpython/Tools/msi/build.bat |
2 | 0 | 0 |
batch is also missing from docs/func_start_rule_contract.md's audit table, so this is an unaudited gap, not a stated absence.
Consequences
- Every per-unit signal is empty for batch: function counts, complexity,
unreferenced_by_name, andcalls_out_to. - unreferenced_by_name: audit the other case-insensitive languages for the #3198 identifier lexicon #3225 had to leave batch out of
identifier_casebecause there is no unit to measure. Batch labels are case-insensitive, so it belongs in the cobol usage_status: entry paragraph flagged, case-sensitive matching, and NAME-EXIT counts as a reference to NAME #3198 lexicon once units exist. - The Epic: detect project-local idiom wrappers as a fact channel (follow-up to #3003) #3313 wrapper channel sees no batch helpers.
Scope question to settle first
A batch :label is both a goto target and a call :label subroutine, and the language doesn't distinguish them syntactically. Decide against the corpus whether func_start means:
- every
:label, or - only labels that are the target of a
call :somewhere in the file, which is the only invoke-by-name form.
Then run the harden-language-extraction / rule-contract-audit process and add a batch row to the func_start contract.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugUnintended behavior or logic failure in the engineUnintended behavior or logic failure in the enginecore-engineModifications to the central physics and parsing engineModifications to the central physics and parsing engine
Activity
batch: func_start for `call :label` subroutines (#3338)
batch: func_start for `call :label` subroutines (#3338)
batch: func_start for `call :label` subroutines (#3338) (#3380)