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 summaryUpdates 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_overhead32→12 ms,math_intensive48→14 ms,accumulate97→24 ms — all matching the v0.5.22 baseline exactly. Perry now beats Rust/C++ 7–8× onloop_overhead, 3× onmath_intensive, 4× onaccumulateagain. - V2.2 on-disk per-module object cache (
.perry-cache/objects/<target>/<key>.o). Warm-cache builds are ~29% faster; the real win isperry 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 sideeffectbarrier 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)andcloseClient(handle)named imports from'ws'were silently no-ops — the receiver-less native dispatch table was missing entries (v0.5.162, d81acb5d) - #135
--target webhangs whenbreak/continueis nested insideif/else/switch/try...catchinside a loop — WASM emitter was hardcodingBr(1)instead of consultingbreak_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_PATuser'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; newperry cache info/perry cache cleansubcommands;PERRY_DEV_VERBOSE=1prints 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 outputaligned with the #131 spec (de514d53)
Docs
- Response to #139 benchmark scrutiny + cleanup of 32 stale
bench_*.ts/test_inline*.ts/ oldbenchmarks/results/*.txtscratchpads; README.md +benchmarks/polyglot/RESULTS.mdupdated 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
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]