Features
- macOS cross-compilation from Linux — codegen triple, framework search paths (
-lobjc, CoreGraphics, Metal, IOKit, DiskArbitration),find_ui_libraryfor macOS target - iOS Info.plist completeness — all Apple-required keys,
CFBundleIconswith standard naming (AppIcon60x60@2xetc.), version/build_number read fromperry.toml,UILaunchScreendict instead of storyboard reference - Native extensions & App Store review docs — new documentation pages for plugin development and Apple review guidance
Bug Fixes
- Bitwise NOT (
~x) — wrapping semantics fixed:f64→i64→i32via ireduce for proper JS ToInt32, instead offcvt_to_sint_satwhich saturated ati32::MAX - IndexGet string detection — property access returning array elements (e.g.,
log.topics[0]) now treated as potential string for correct comparison codegen Array.filter/find/some/every/flatMap— callback dispatch and module init ordering fixed- Null arithmetic coercion —
Math.max(null, 5)etc. now coerces null to 0 viajs_number_coerce new X(args)— resolves cross-module imported constructor functions and exported const functions via__export_data slotnew Date(stringVariable)— properly NaN-boxes with STRING_TAG for string detectionis_macho— uses target triple instead of hostcfg!check; always generatesmainfor entry module on iOS/macOS cross-compile- ld64.lld —
sdk_versionset to 26.0 (Apple requires iOS 18+) - Windows cross-compile —
/FORCE:MULTIPLEfor duplicate perry_runtime symbols in native libs