github PerryTS/perry v0.5.825
v0.5.825 — release-sweep stability checkpoint (311 commits, 105 issues)

latest releases: v0.5.1206, v0.5.1205, v0.5.1182...
one month ago

Stability checkpoint release. 311 commits and 105 closed issues since v0.5.585. Most significant patch-version jump since v0.5.337. Headline themes: real npm packages now compile natively, a huge async/promise/GC performance overhaul, and the TUI + widget-target frontier.

Highlights

Real-world npm packages

  • drizzle-orm + better-sqlite3: byte-identical SQL CRUD round-trip under Perry (#488 path, #585/#588/#590 codegen blockers all cleared)
  • axios + node:http: in-process GET round-trip; #598 (NaN-box body), #589 (node:http runtime), #604 (event-loop drain) all landed
  • Effect Schema (#685, #687): nested-class static-field init + ClassRef.staticMethod dispatch through the BigIntFromSelf.pipe chain
  • hono, redis, ws: real binding work; full round-trip still tracked under followups #603 (hono :id routes) and #604-family (event-loop after close)

New platform targets (#676 ladder)

  • --target ios-widget / watchos-widget auto-invoke swiftc and emit a built .appex (v0.5.809) — refs #676 phase 1
  • --target android-widget path stays under #676 ladder for the next iteration

Terminal UI (#679 / #358)

  • Full ink-style ergonomics layer for perry/tui — hooks, Box/Text JSX intrinsics, focus management, all 5 phases shipped in v0.5.810
  • GC root scanners + state slot pools (v0.5.812)

Performance — promise_all_chains from 8.1× Bun → 1.82× (v0.5.816, v0.5.820)

  • (P1) Fuse __next body into async step closure
  • (P2) Reuse in-flight next Promise for done-case
  • (P3) Pack INLINE_TRAP_NEXT + CURRENT_STEP_CLOSURE into one TLS slot
  • (P5) Swap macOS setjmp(3)_setjmp(3) — 60% kernel reduction (the single biggest win)
  • (GC-1) Hashset-backed valid-pointer contains()try_mark_value 28% → 8% self-time
  • (GC-2/3/4) PtrHasher + lazy MallocState lookup-set + trace-phase mark specialization

Real widgets across platforms

  • Android: Chart (#474), TreeView (#480), RichTooltip (#479), RichText (#478), Combobox (#475), Calendar (#481)
  • iOS / visionOS: TreeView, RichTooltip, Combobox
  • ArkUI codegen (HarmonyOS path): Calendar, Select, RichEditor, bindPopup

Release-readiness harness (scripts/release_sweep.sh)

  • New tests/release/RELEASE_READINESS.md doc + .claude/skills/release-readiness-test/ Claude skill
  • 13 tiers covering cargo build/test, parity, real npm packages, GC stress, threading, doc-tests, UI matrix, Apple sims, Android emu, Windows, link-smoke

Notable fixes

  • #535 NavStack visibility, #536 try/finally codegen, #542/#543 Map<K,V>|undefined iteration, #561 sigv4/webcrypto, #585/#588/#589/#590 drizzle/axios codegen, #594 generator-transform, #596 TypeError throw helpers, #597 arr.entries() on Any-typed receivers, #599 state.text() macOS updates, #600 FetchGetWithAuth / DateToLocaleString LLVM arms, #601 perry-ext-fetch lib tests, #602 drizzle-better-sqlite3 link, #605 redis createClient, #606 ws tokio runtime panic, #607 watchos-simulator symbols, #608 cross-module tagged-template rest params, #613/#614/#615 baseline parity gaps, #665 cjs-wrap class identity, #667/#668/#672 AOT __dirname/require/rest-param, #680 type-only imports + namespace-member map, #685/#687 nested-class static init, JSON.stringify(date) ISO format, typeof new Date() returns "object", NaN equality (indexOf/includes/SameValueZero)

Release sweep at HEAD (macOS arm64)

  • Tier 0 build_matrix: PASS
  • Tier 1 cargo_workspace: PASS (133/133)
  • Tier 2 parity: PASS (277/325, 85.2% — +53 tests vs v0.5.714)
  • Tier 3 real_packages: 3/6 PASS (axios / drizzle / fastify green; hono / redis / ws tracked under #603/#604)
  • Tier 4 gc_stress: PASS (18/18)
  • Tier 5 threading: PASS (4/4)
  • Tier 6 doc_tests: 183/240 (small slip from 185)
  • Tier 7 ui_host_smoke: PASS
  • Tier 8/9/10 sim/emu: precondition gap (per-target runtime not pre-built on this host)
  • Tier 11 windows_smoke: SKIP (host gate)
  • Tier 12 link_smoke: PASS (6 targets linked, 7 SKIP for precondition, 0 regressions)

Composition

  • 171 fix • 36 feat • 21 docs • 20 perf • 12 test • 8 bench • 4 chore

This is a stability checkpoint. v0.6.0 comes next, gated on tier 3 fixtures going fully green + tier 8/9/10/12 cross-target preconditions met.

Don't miss a new perry release

NewReleases is sending notifications on new releases.