Skip to content

iOS: simulator builds run on the interpreter, no AOT - #299

Merged
chriskinal merged 1 commit into
developfrom
ci/ios-simulator-interpreter
Oct 9, 2026
Merged

chriskinal merged 1 commit into
developfrom
ci/ios-simulator-interpreter

Conversation

@chriskinal

Copy link
Copy Markdown
Collaborator

The iOS CI job has been taking 7 to 9 minutes, almost all of it in one unlogged stretch after "Optimizing assemblies for size". A local build with a per-target timing summary shows what that stretch is:

Target Default (local) With the interpreter (local)
_AOTCompile 62.7 s (23 s AOT + 40 s compiling its output) 0.2 s
_RunILLink 3.0 s 2.8 s
_LinkNativeExecutable 1.3 s 0.3 s

The SDK AOT-compiles simulator builds by default; on a 3-core runner those 63 s become the 350 s. The CI check is a Debug simulator compile, where AOT buys nothing, and LLVM (the knob that speeds up device Release builds) is never involved there.

MtouchInterpreter=all is set in the csproj for simulator runtime identifiers only. Device builds (ios-arm64, Debug and Release) are untouched and keep AOT, which Apple requires. This PR's own iOS job is the measurement.

🤖 Generated with Claude Code

The CI compile check (Debug, iossimulator-arm64) spent 350 of its 420 s
in the unlogged stretch after "Optimizing assemblies for size": a local
per-target timing shows it is _AOTCompile (23 s AOT + 40 s compiling
the native output locally; six minutes on a 3-core runner), which the
SDK runs for simulator builds by default. With MtouchInterpreter=all for
simulator RIDs the target drops to 0.2 s and the build is otherwise the
same. Device builds (ios-arm64) are untouched and keep AOT.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@chriskinal
chriskinal merged commit d50ecba into develop Oct 9, 2026
4 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