Repository navigation
fix(build): validate the compiler memory reserve override - #124
Merged
Merged
Conversation
This was referenced Nov 11, 2026
soltros
marked this pull request as ready for review
November 11, 2026 19:31
This was referenced Nov 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.