Skip to content

state_exec test: tighter stack for the native-nesting stack check (macOS) - #687

Merged
transfix merged 1 commit into
masterfrom
fix/nesting-test-tight-stack
Oct 18, 2026
Merged

transfix merged 1 commit into
masterfrom
fix/nesting-test-tight-stack

Conversation

@transfix

Copy link
Copy Markdown
Owner

Test-only fix for a failure #683 left on master: recipe / macos-latest / Release fails StateExecNativeNesting.ApplyOnASelfContainingList with expect_nesting_limit(loop) < kMaxNativeNesting, actual 256 vs 256.

The test checks that on a small stack the stack check (kNativeStackReserve), not the 256-level count, stops (apply apply L) with L containing itself. The small stack had 64 KiB of room above the reserve. An apply level is about 0.5 KiB with MSVC, but under 0.25 KiB with Apple clang, so on macOS all 256 levels fit and the count stopped it first. The library behaved correctly; the test's stack was too generous.

The check now runs on a stack only 16 KiB above the reserve; the 4 MiB check that the level count stops it is unchanged. Locally (MSVC Release) state_exec_deep_data_test passes, 30/30, three runs. macOS is checked by this PR's CI.

… on macOS

ApplyOnASelfContainingList expected the stack, not the 256-level count, to stop (apply apply L) on a stack 64 KiB above the reserve. An apply level is about 0.5 KiB with MSVC but under 0.25 KiB with Apple clang, so on macOS all 256 levels fit and recipe / macos-latest / Release failed after #683. The check now runs 16 KiB above the reserve.
@transfix
transfix enabled auto-merge (squash) October 18, 2026 07:36
@transfix
transfix merged commit 0b2388b into master Oct 18, 2026
15 checks passed
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