-
Notifications
You must be signed in to change notification settings - Fork 10
Extraction hardening: jcl args multi-line over-counting #2483
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 enginelegacy-modernizationCOBOL refractor, dead-code extraction, and JCL forgingCOBOL refractor, dead-code extraction, and JCL forgingpriority: highCore feature broken, but workarounds existCore feature broken, but workarounds existthreat: false-positiveAccuracy tuning: Engine incorrectly flagged safe codeAccuracy tuning: Engine incorrectly flagged safe code
Milestone
Description
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 enginelegacy-modernizationCOBOL refractor, dead-code extraction, and JCL forgingCOBOL refractor, dead-code extraction, and JCL forgingpriority: highCore feature broken, but workarounds existCore feature broken, but workarounds existthreat: false-positiveAccuracy tuning: Engine incorrectly flagged safe codeAccuracy tuning: Engine incorrectly flagged safe code
Parent: #2516
Mode A's unbounded args search sweeps multi-line strings, creating false positives and over-counting
PARM=arguments in JCL.This needs to be addressed for JCL specifically to bound the args search appropriately, related to the broader issue in #1973.
Implementation Guide
Target File:
gitgalaxy/standards/language_standards.py(JCLargskey) / Core extraction logicProblem: Because JCL is a
noneargs-granularity language with no brace bodies, the engine uses Mode A extraction. The unbounded search can sweep a large multilinePARM=block continuously until the next structural boundary, inflatingOccurrence.argscounts.Action: Either strictly anchor the
argsregex to theEXECstatement lines, or ensure the JCL extraction rules drop redundant hits from within a single EXEC step's parsed body.