github PerryTS/perry v0.5.450

latest releases: v0.5.1182, v0.5.1181, v0.5.1180...
one month ago

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
  • #342cond ? 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 #2process 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.

Don't miss a new perry release

NewReleases is sending notifications on new releases.