v0.4.29
Bug Fixes
-
Android crash — thread-local arena freed after
main()returned: On Android, the perry-native thread ranmain()which allocated module-level arrays (thresholds, levels) on the thread's arena. Aftermain()returned, the thread exited, triggering arenaDropwhich freed all memory blocks. The UI thread's 8ms pump ticks then calledgetLevelInfo()on dangling pointers → SIGSEGV. Fixed by parking the perry-native thread after init. -
Android
-Bsymboliclinker flag: Prevents ELF symbol interposition where PLT calls tomain()could resolve to the Android process'smain()instead of perry's. -
Android
strip_duplicate_objects_from_lib(v0.4.26): Skipped on Android sojs_nanbox_*runtime symbols survive in the UI lib. -
Android
JNI_GetCreatedJavaVMs(v0.4.27): C stub compiled at link time since Android has nolibjvm.so. -
Module-level array type mismatch (v0.4.28): Arrays with
Unknown/AnyHIR type were loaded as F64 instead of I64 in functions. Now arrays/closures/maps/sets/buffers always use I64.
See docs/android-crash-fix-v0.4.29.md for detailed writeup.