From 1426be8f63745dc2db6f2e552d62a3b785a2ca76 Mon Sep 17 00:00:00 2001 From: Jaap-Jan de Wit | DodoTech Date: Fri, 23 Oct 2026 16:09:14 +0200 Subject: [PATCH] Precompile the macOS and Linux publishes too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ReadyToRun went onto the win-x64 publish in the previous change and took the main window from 2.6 s to about 1.4 s on its own. The cause it answers — every launch JIT-compiling Avalonia, the XAML and EF Core's model building — is the same on every desktop, so the condition is now any RID rather than win-*. Verified in the Alpine SDK container that reproduces CI: osx-arm64 and linux-x64 both cross-compile, `vpk '[osx]' bundle` builds the .app with its Info.plist, and scripts/ci-linux-rpm.sh builds the RPM with its provides and requires checks passing. Each publish lists exactly the same files with ReadyToRun as without, because the precompiled code lives inside the managed assemblies — so the per-dylib signing loop in release-macos.sh and the RPM's library scan have nothing new to see. macOS runs it under the allow-jit entitlement the JIT already needed. The cost is size, as on Windows: osx-arm64 from 141 MB to 192 MB, linux-x64 from 130 MB to 172 MB. Not measured: the startup gain on either platform, which the csproj comment says rather than implies, and anything about the signed and notarized macOS build, which only release-macos.sh on a Mac produces. Co-Authored-By: Claude Opus 5.5 --- .../DodoSSH.Client.App.csproj | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/DodoSSH.Client.App/DodoSSH.Client.App.csproj b/src/DodoSSH.Client.App/DodoSSH.Client.App.csproj index 0717b9b..0b473d2 100644 --- a/src/DodoSSH.Client.App/DodoSSH.Client.App.csproj +++ b/src/DodoSSH.Client.App/DodoSSH.Client.App.csproj @@ -91,10 +91,10 @@ false - true + true