Bug Fixes
- i18n: Propagate translation string table to rayon worker threads — parallel module codegen was missing i18n data, causing untranslated output. Also walks parent directories to find
perry.toml - iOS crashes: Gate
ios_game_loopbehind feature flag, catch panics in UI callback trampolines (button, scrollview, tabbar), install panic hook that writes crash log to Documents - iOS Spacer: Remove NSLayoutConstraint from spacer creation that caused layout engine conflicts
- iOS/macOS duplicate symbols:
strip_duplicate_objects_from_libnow works cross-platform (not just Windows), deduplicating perry_runtime from UI staticlib on all targets - ld64.lld flags: Use
-dead_stripdirectly instead of-Wl,-dead_stripfor cross-iOS linking - perry run: Read app metadata from perry.toml/package.json, apply
[publish].excludeto tarballs, usecreate_project_tarball_with_excludes - Threading resilience:
catch_unwindinspawn, poisoned mutex recovery inPENDING_THREAD_RESULTS, tokio fallback to current-thread runtime on iOS
Features
- iOS cross-compilation from Linux: Support building iOS apps from Linux using
ld64.lld+ Apple SDK sysroot (PERRY_IOS_SYSROOTenv var)