Skip to content

fix(syntax): keep the parse in parse_strict so the instruction guard counts it - #189

Merged
kvlonge merged 1 commit into
mainfrom
fix/parse-strict-instruction-guard
Nov 12, 2026
Merged

kvlonge merged 1 commit into
mainfrom
fix/parse-strict-instruction-guard

Conversation

@kvlonge

@kvlonge kvlonge commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

Why

The release pull request's CI fails the instruction-count guard ("callgrind counted nothing in parse_strict"), which blocks the release. parse_strict only called strict_statements, so it compiled to a single jump, and on the release build callgrind never collected from it.

Changes

  • strict_statements is inlined into parse_strict, its one caller, and parse_strict is never inlined into a caller, so the parse runs inside the function the guard counts from. The count is unchanged.

Verification

  • Before: both CI runs on the release pull request's head fail the guard; the same code without the version bump passed it in the merge queue.
  • After: the gate binary's parse_strict holds the parse body (it opens with a full prologue, and no strict_statements symbol is left); make instruction-counts gives 253,172,343 parse instructions against the 253,081,114 baseline.
  • The failure does not reproduce locally, with valgrind 3.19 or 3.22, so the release pull request's next CI run is the check that the guard passes there.
  • make check-ci passes.

…counts it

parse_strict only called strict_statements, so it compiled to a single
jump, and the release pull request's CI build counted nothing in it:
callgrind's collection starts at parse_strict's entry. strict_statements
is now inlined into it, its one caller, and parse_strict is never
inlined into a caller.
@kvlonge
kvlonge added this pull request to the merge queue Nov 12, 2026
Merged via the queue into main with commit 4f5cdfa Nov 12, 2026
13 checks passed
@kvlonge
kvlonge deleted the fix/parse-strict-instruction-guard branch November 12, 2026 03:07
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