Repository navigation
Build BlueWake's iPhone module without Xcode through PadMint (Linux) - #42
Closed
chrissotraidis wants to merge 5 commits into
Closed
chrissotraidis wants to merge 5 commits into
chrissotraidis wants to merge 5 commits into
Conversation
chrissotraidis
force-pushed
the
codex/padmint-off-mac
branch
from
October 3, 2026 14:08
638011d to
c877fb7
Compare
Two LLVM passes are superlinear on the composite chunks (one function each): the SLP vectorizer and the register coalescer. scripts/windows/build.py already passes -fno-slp-vectorize and -mllvm -large-interval-freq-threshold=10 for this reason. With PadMint clang 22.1.8 on an M3 Max, d_a_mgameboard chunk 0 took 155 s with them, against more than 3 h 49 min (still running) without.
This was referenced Oct 3, 2026
Owner
Author
|
Folded into #100, which contains every commit here plus the Windows host. Closing this one so the work is tracked in one place. |
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.
Draft: BlueWake's iPhone game module, built without Xcode, through PadMint's shared iPhone module pipeline. This lets Linux players build BlueWake for iPhone. Nothing here is released, and BlueWake's published recipe is unchanged until a release under the private audit.
What it does
padmint.json: theiostarget declaresios_module(Frameworks/gGZLE01_recomp.dylib). PadMint prepares its open-source iPhone SDK and toolchain. The steps runbuild.sh --source-only(extract, translate, generate the verified composite source), then configure and buildcmake/compositewith{ios_toolchain}. PadMint then checks the module's imports against the published app and inserts it. Hosts are Apple Silicon Mac and Linux x86-64/ARM64. Xcode is required only on a Mac and a C compiler only on Linux, using PadMint's host-scoped requirements (padmint#91). The output check is PadMint's generalipacheck, since this path writes noBuilderProvenance.json.build.sh: with--source-onlyoff a Mac it checks only the tools that path uses (CMake, Ninja, Python, Git, shasum and a C compiler). It counts CPUs portably, and skips the Dawn download, which only the app needs.disc_import.c: a built-in SHA-1 for hosts with neither CommonCrypto nor bcrypt. Apple and Windows builds compile exactly as before.Evidence
padmint buildat51a8e4bwith PadMint's LLVM 22.1.8:@rpath/gGZLE01_recomp.dylib, linking only libSystem, with BlueWake's full export set (staticrecomp_get_module,_get_rel_data,_get_rel_lifecycle, and the mod and alias entry points).51a8e4b): the configure step now passes-fno-slp-vectorize -mllvm -large-interval-freq-threshold=10, asscripts/windows/build.pydoes. Without them, clang 22's SLP vectorizer and register coalescer are superlinear on the composite chunks. The first Mac run spent more than 3 h 49 min on one chunk (d_a_mgameboardchunk 0) and reached 233/757 in 4.7 hours. With them, that chunk took 155 s and the whole module 57 minutes. The Linux evidence below predates this commit.padmint buildand the published v0.1.0 app:54f54434…, matching the Mac.libm/load-time names (padmint#97).staticrecomp_get_module,_get_rel_dataand_get_rel_lifecycle.shasumfor inputs from 0 bytes to 5 MB.Before this can leave draft