This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryFixed unimplemented ForEach(state, render) causing the todo app to show a window.
Full changelog
Followup to #103. v0.5.109 fixed the type stubs + docs; this release fixes the actual codegen so the todo app visibly shows a window.
Bug Fixes
-
ForEach(state, render)fromperry/uiwas unimplemented in codegen. The generic dispatch path emittedperry/ui warning: method 'ForEach' not in dispatch table (args: 2)and returned 0/undefined. The outerVStack'swidget_add_childthen got an invalid handle, AppKit silently refused to attach the window body, and the process ran withlsappinfo type="BackgroundOnly"— CPU burning, no window. Added a special case incrates/perry-codegen/src/lower_call.rs(next toVStack/HStack) that synthesizes aperry_ui_vstack_create(8.0)container, callsperry_ui_for_each_init(container, state_handle, render_closure), and returns the NaN-boxed container pointer.Why it's a special case and not a
UiSigtable entry: same reason asVStack/HStack— variadic-in-shape (needs side-effectful container synthesis + separate for_each_init call + handle return), which doesn't fit the uniform args→runtime_fn table.
Verified
test_min4.ts(VStack containing ForEach overState<string[]>) launches withtype="Foreground".- The corrected todo app from the
docs/src/ui/state.md"Complete Example" compiles and launches withtype="Foreground".
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Beta — feedback welcome: [email protected]