Skip to content

batch: no func_start rule -- zero units extracted from scripts built on call :label subroutines #3338

Closed

Description

@squid-protocol

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

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.

Found during epic #3313 / #3225.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugUnintended behavior or logic failure in the enginecore-engineModifications to the central physics and parsing engine

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions