Skip to content

perry

v0.5.450 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 1mo Build & Package
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

android compile harmonyos ios llvm macos
+5 more
native smc typescript watchos windows

Summary

AI summary

New perry/media streaming playback module and HarmonyOS NEXT Phase 2 features land across platforms.

Full changelog

Highlights

  • perry/media streaming 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-arkts crate (#308). v3 callbacks, v3.3 toast/setText, v4 widget set, v5 inline style + ForEach, v6 state<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 * as re-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 — process import resolution + cwd dispatch
  • #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/media module (createPlayer / play / pause / stop / seek / setVolume / setRate / state callbacks / setNowPlaying), ten backends.
  • New perry-codegen-arkts crate emitting Index.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

Track perry

Get notified when new releases ship.

Sign up free

About perry

A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.

All releases →

Beta — feedback welcome: [email protected]