build: make offline bake dependencies and compiler discovery portable #1931

Closed
opened 2026-11-10 20:55:46 +00:00 by Arkex-ai · 0 comments
Arkex-ai commented 2026-11-10 20:55:46 +00:00 (Migrated from github.com)

Problem

The game-free bake checks added by #1707 fail before completing their synthetic translation checks. Windows uses a Linux libzstd soname and demands an external zstd executable even though the project already pins the Python zstandard dependency. Clang18 rejects the unconditional-static constexpr probe, while the actual assertion-shaped failure path compiles.

Reproduced baseline: main source CI, plus local clean Windows and actual Clang18 probes.

Scope and coordination

Use the existing pinned compression dependency for dictionary fixtures/decoding, keep standalone fallbacks, and probe the actual constexpr requirement. Unknown-size frames must avoid reserving the maximum output buffer: a 2MB synthetic frame reproduced MemoryError under a512MB address-space limit before the bounded correction, then passed afterward; restoring the original reader reproduces the failure.

Compiler discovery/cache changes overlap #1872 and have been removed from this candidate. The author acknowledged coordination. The proposed Windows DS skip is unnecessary with the portable reader/fixture. No shader translation algorithm, pipeline predictor, renderer allocator, log-batch or recorder changes.

Validation

Claimed by Arkex-ai (issai) in Discord #dev-work on2026-11-10 at17:54UTC-3. CI-first priority:S3(1) x reach1.0 x confidence1.0=1.0.

Five behavioral cases, real dictionary/truncated frames, native fallback, and bounded-memory decoding; healthy control plus three rejected Windows mutations, original constexpr probe rejection on Clang18, and a memory-regression reversion. Current candidate4e9ac9e uses only authored/vendored source and synthetic inputs. Exact-head Linux integration and full Windows comparison are running, with a fresh compiler-mode cache after removing the earlier unpublished cache experiment. Every original failed attempt is retained locally. Fork CIs are dispatched once on the exact source; PR publication follows the comparison. No game or GPU runtime coverage is claimed.

## Problem The game-free bake checks added by #1707 fail before completing their synthetic translation checks. Windows uses a Linux libzstd soname and demands an external zstd executable even though the project already pins the Python zstandard dependency. Clang18 rejects the unconditional-static constexpr probe, while the actual assertion-shaped failure path compiles. Reproduced baseline: [main source CI](https://github.com/NotRexed/Hookshot/actions/runs/42890932650), plus local clean Windows and actual Clang18 probes. ## Scope and coordination Use the existing pinned compression dependency for dictionary fixtures/decoding, keep standalone fallbacks, and probe the actual constexpr requirement. Unknown-size frames must avoid reserving the maximum output buffer: a 2MB synthetic frame reproduced MemoryError under a512MB address-space limit before the bounded correction, then passed afterward; restoring the original reader reproduces the failure. Compiler discovery/cache changes overlap #1872 and have been removed from this candidate. The author acknowledged [coordination](https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/1872). The proposed Windows DS skip is unnecessary with the portable reader/fixture. No shader translation algorithm, pipeline predictor, renderer allocator, log-batch or recorder changes. ## Validation Claimed by Arkex-ai (issai) in [Discord #dev-work](https://discord.com/channels/1568810484818378804/1569019786766188665) on2026-11-10 at17:54UTC-3. CI-first priority:S3(1) x reach1.0 x confidence1.0=1.0. Five behavioral cases, real dictionary/truncated frames, native fallback, and bounded-memory decoding; healthy control plus three rejected Windows mutations, original constexpr probe rejection on Clang18, and a memory-regression reversion. Current candidate4e9ac9e uses only authored/vendored source and synthetic inputs. Exact-head Linux integration and full Windows comparison are running, with a fresh compiler-mode cache after removing the earlier unpublished cache experiment. Every original failed attempt is retained locally. Fork CIs are dispatched once on the exact source; PR publication follows the comparison. No game or GPU runtime coverage is claimed.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#1931
No description provided.