Skip to content

fix(build): validate the compiler memory reserve override - #124

Merged
soltros merged 1 commit into
mainfrom
fix/memory-reserve-validation
Nov 11, 2026
Merged

soltros merged 1 commit into
mainfrom
fix/memory-reserve-validation

Conversation

@soltros

@soltros soltros commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

HOOKSHOT_MEM_RESERVE_GB is parsed with an unchecked float conversion. Malformed text raises ValueError, NaN/infinity can break the progress estimate, and negative values increase the apparent memory available to compilers. Validate the converted MB reserve and use the existing 1.5 GB default with a diagnostic for unusable values.

Zero and finite non-negative values remain supported, including fractional GB. Unset/empty values keep the default without a diagnostic. Validation occurs after GB-to-MB conversion so finite inputs such as 1e308 cannot overflow into an accepted infinite reserve. Explicit compiler budgets still work when the reserve override is invalid. The free-memory policy and minimum concurrency floor are unchanged for valid configurations.

This repairs compiler scheduling configuration, not the renderer's runtime RAM growth. The queue and development guide now record current merged fixes, the budget/reserve semantics and the remaining hardware-validation gaps.

The new fixture executes the actual MemoryGate and budget parser with authored memory readings. On unchanged main, four test groups produce seven failed subcases and two errors for malformed/negative/non-finite/overflow settings. With the fix all four groups pass, covering defaults, diagnostics, zero/fractional reserves, usable ETA calculations and an explicit budget. Existing memory-budget, automatic-gate and lease-accounting tests also pass locally. No compiler children, memory pressure, game build or GPU run were used for the new regression.

The published tree exactly matches the staged local tree 973fab9ec149984e92d59db8f8d6a05d6b5d0906. Full local suite: 282 passed, 12 unchanged host/tool-dependent failures, 55 skipped. Compared failure paths with the prior integrated branch: the same 12 paths fail and no new paths fail. Hosted source checks passed: Windows 328 passed, 0 failed, 21 skipped; Linux 338 passed, 0 failed, 11 skipped. Windows Builder, Vulkan/DLSS compilation, actionlint and focused native/SPIR-V jobs passed. Linux AppImage failed in System packages before checkout/build: Launchpad schema discovery raised IncompleteRead and connection timeouts in run 43019393639. This is not counted as a passed build. #126 proposes the bootstrap repair; keep draft until Linux packaging can be validated.

Final integrated validation

The original Linux packaging status was blocked before checkout by the Launchpad failure. #126 is now merged after full live packaging passed. Validation-only #127 tested this exact component head together with #124/#125/#96 and the repaired workflow at cd33b08, tree d2336ac28805e8097b20547b13f7360cfdd2da70. Windows: 329 passed/0 failed/22 skipped; Linux: 340 passed/0 failed/11 skipped. Windows Builder, Linux AppImage/backend/player checks, Vulkan/DLSS, actionlint and focused native/SPIR-V jobs all passed. Merge the original components individually and compare final main with that tested tree. Hardware-dependent tracker symptoms remain unverified.

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