Skip to content

perry

v0.5.164 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

Updates Highlights, Infrastructure, and https://github.com/PerryTS/perry/issues/140 across a mixed release.

Full changelog

Highlights

  • #140 SIMD autovectorization restored on pure-accumulator loops. loop_overhead 32→12 ms, math_intensive 48→14 ms, accumulate 97→24 ms — all matching the v0.5.22 baseline exactly. Perry now beats Rust/C++ 7–8× on loop_overhead, 3× on math_intensive, 4× on accumulate again.
  • V2.2 on-disk per-module object cache (.perry-cache/objects/<target>/<key>.o). Warm-cache builds are ~29% faster; the real win is perry dev's watch-loop hot path where only the edited module recompiles.

Fixes

  • #140 Scope the i32 shadow slot to locals actually used as array indices and refine the #74 asm sideeffect barrier to skip bodies with outer-scope writes — the two changes that had knocked the LLVM vectorizer off pure-accumulator reductions between v0.5.91 and v0.5.162 (v0.5.164, 83f05fff)
  • #136 sendToClient(handle, msg) and closeClient(handle) named imports from 'ws' were silently no-ops — the receiver-less native dispatch table was missing entries (v0.5.162, d81acb5d)
  • #135 --target web hangs when break / continue is nested inside if / else / switch / try...catch inside a loop — WASM emitter was hardcoding Br(1) instead of consulting break_depth/loop_depth (v0.5.161, bf0a1710)
  • PR #138 Windows vswhere discovery now requires VC tools (thanks @NicoAvanzDev) (9033dd4f, 76f30c8b)
  • winget submission now syncs the WINGET_PAT user's fork at runtime instead of hardcoding PerryTS's (v0.5.159, 58534dfa)

Features

  • V2.2 per-module on-disk object cache closing #131, building on PR #132 — opt-outs via --no-cache / PERRY_NO_CACHE=1; new perry cache info / perry cache clean subcommands; PERRY_DEV_VERBOSE=1 prints hit/miss ratios (v0.5.160, 1a12afea, 50d09ed1)

Infrastructure

  • Cache-key audit hardening: hashed codegen env vars by value (not presence), .perry-cache/ added to .gitignore, BSD-grep-portable smoke test regex (v0.5.160, 1a12afea)
  • codegen-cache verbose output aligned with the #131 spec (de514d53)

Docs

  • Response to #139 benchmark scrutiny + cleanup of 32 stale bench_*.ts / test_inline*.ts / old benchmarks/results/*.txt scratchpads; README.md + benchmarks/polyglot/RESULTS.md updated with v0.5.164 numbers (v0.5.163, 5eb18ffc + v0.5.164 doc updates in 83f05fff)

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]