Perry v0.5.178 Stabilizes Native TypeScript Pipeline 🔗
Update resolves doc-test failures, test crashes and generic Set handling across platforms
Perry has released v0.5.178, a targeted fix-forward version that unblocks the stalled v0.
Perry has released v0.5.178, a targeted fix-forward version that unblocks the stalled v0.5.177 packaging pipeline. The update corrects three distinct CI regressions that had prevented reliable builds on macOS, Ubuntu and Windows.
The most visible change fixes App({...}) doc-tests. After Phase 3 anon-class synthesis wrapped object literals in new __AnonShape_N(...) constructors, every UI example failed with a shape-matching error. Developers swapped the brittle Expr::Object check for the existing extract_options_fields helper already used by perry/thread spawn. All 27 documentation examples now pass.
A second fix prevents just_factory from triggering SIGABRT during cargo test. The repro case, which combined top-level function factories with nested object literals, exceeded the default 2 MB test stack. It is now correctly marked #[ignore] pending a deeper stack-size solution.
The third correction addresses type refinement for new Set([1,2,3]). Without explicit type arguments, refine_type_from_init produced HirType::Named("Set") while is_set_expr expected HirType::Generic. Method calls on such Sets previously returned undefined. The matcher now accepts both forms.
These repairs sit on top of Perry’s established architecture: SWC for TypeScript parsing and LLVM for native code generation. The compiler continues to emit single-file binaries with no runtime dependencies. Recent benchmarks on Apple Silicon show Perry running a modular factorial in 31 ms versus Node.js 596 ms and Bun 98 ms.
Built with Perry
- Bloom Engine: native game engine with Metal, DirectX 12, Vulkan and OpenGL backends
- Mango: 7 MB MongoDB GUI client
- Hone: AI-powered native code editor
The project remains focused on delivering TypeScript performance without Node.js or browser engines.
- Game developers shipping cross-platform titles using Bloom Engine
- Engineers building lightweight MongoDB GUIs under 10 MB binaries
- Teams creating AI-powered native code editors with Hone
- Deno - compiles TypeScript to executables but retains its runtime
- Bun - high-speed JavaScript runtime with built-in TypeScript support
- AssemblyScript - transpiles TypeScript-like code to WebAssembly modules