This release adds 2 notable features for engineering teams evaluating rollout.
Published 1mo
Build & Package
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
android
compile
harmonyos
ios
llvm
macos
+5 more
native
smc
typescript
watchos
windows
Summary
AI summaryNew perry/media streaming playback module and HarmonyOS NEXT Phase 2 features land across platforms.
Full changelog
Highlights
perry/mediastreaming playback on every supported platform (#351). Issued shortly after the Subsonic-client ask in #349; lands fully implemented on macOS / iOS / tvOS / visionOS / watchOS / Android / GTK4 / Linux / Windows / HarmonyOS / Web. Lock-screen surfaces wired everywhere except HarmonyOS (AVSession follow-up tracked).- HarmonyOS NEXT — Phase 2 reaches usable shape. TypeScript → ArkUI emission via the new
perry-codegen-arktscrate (#308). v3 callbacks, v3.3 toast/setText, v4 widget set, v5 inline style + ForEach, v6state<T>reactive container, v8/9/10/11/12/13 docs, NavStack, animation/shadow/decoration, LazyForEach, Tabs/Modal/Menu/Grid. - Effect compatibility sweep. Closes #309 (34 GB OOM), #310 (
export * asre-export), #311 (Map/Set as object property), #313 (scalar replacement +this), #314 (closure-call arity 5→16), #315/#316/#317/#319 (String method gaps), #318 (closure-collector walker), #320 (ReadableStream link), #321/#323/#324 (Array.isArray + holes), #336 (same-named classes), #338 (static-field-init closure collector), #350 round 2 (Set/Map class-id collision). - Windows: production-ready surface. Win7/8.1 opt-in compat (#303), shadow paint pass (#210 closes the styling matrix at 43/43), WinGet runtime/stdlib lib auto-discovery (#352), Windows SDK registry-based auto-discovery (#300).
- CI cost cuts. cargo-test/parity/compile-smoke moved to ubuntu-latest (10× → 1×), NJOBS=6 + flock for compile-smoke parallelism, paths-ignore docs-only PRs, doc-tests-macos cross-compile trim. Roughly 60+ multiplier-min/run saved.
Fixes
- #304 / #305 — array.length=N truncate, class-field local alias type
- #307 — JSON.stringify on parsed objects with ≥9 fields
- #228 / #229 — updater HTTPS enforcement + version-binding in signed payload
- #245 Phase 2 — workspace clippy --fix sweep
- #243 — Android geisterhand apply_style dispatcher (Phase D fully cross-platform)
- #242 — visionOS geisterhand fn-pointer block
- #302 — Map/Set on class field for-of, plus #154 using/dispose SIGBUS
- #303 — Win7/8/8.1 compatibility via --min-windows-version
- #322 / v0.5.417 — HarmonyOS Phase 2 v2 + v3 + v2.5 (callbacks, toast, reactive Text)
- #334 — section root URLs no longer 404 on docs.perryts.com
- #337 — fallback __perry_wrap_perry_unknown_func wrapper
- #339 — better-sqlite3 stmt args packed into real ArrayHeader
- #342 —
cond ? await a() : b()no longer evaluates both branches - #343 — closure walker fix
- #344 / #345 / #346 — stdio routing + process.argv prototype
- #348 Phase A — native CommonJS in compilePackages
- #360 item #2 —
processimport resolution +cwddispatch - #365 — Android MediaSessionCompat lock-screen integration
- #366 — GTK4 / Linux MPRIS lock-screen
- #367 — Windows SystemMediaTransportControls
- #368 — watchOS AVPlayer + Now Playing complication
- #369 — HarmonyOS @ohos.multimedia.media.AVPlayer via napi bridge
- #370 — Web
<audio>+ Media Session API (--target web)
Features
- New
perry/mediamodule (createPlayer / play / pause / stop / seek / setVolume / setRate / state callbacks / setNowPlaying), ten backends. - New
perry-codegen-arktscrate emittingIndex.ets+ ArkTS glue for HarmonyOS NEXT. - Standalone HAP signing CLI flags (Phase 2 v7).
- State-driven NavStack for multi-page HarmonyOS apps (Phase 2 v11).
state<T>generic reactive container desugaring to existing setText infra.- Cross-platform showToast + setText (macOS / iOS / tvOS / visionOS / Android / GTK4 / Windows).
- Image/ScrollView/LazyVStack/Picker/ProgressView/Section widgets in ArkTS codegen.
- Tabs / Menu / Grid / Modal placeholder in ArkTS codegen.
- Inline
style: { ... }for ArkUI emission, ForEach via array.map detection. - Real LazyForEach + IDataSource for LazyVStack on HarmonyOS.
- HarmonyOS NEXT documentation + CI smoke job.
perry updater {keygen,sign,verify}sign-side CLI.
Infrastructure
- example-code/ moved to PerryTS/perry-examples (auto-Dependabot-PR cleanup).
- Closes #25 — compile-smoke parallelism restored to NJOBS=6 with flock-based serialization.
- macOS doc-tests cross-compile trimmed (no more redundant web/wasm targets).
- Workflow_dispatch fallback for publish jobs.
- Swatinem/rust-cache@v2 across all jobs.
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]