Skip to content

perry

v0.5.88 Feature

This release adds 3 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

Minor fixes and improvements.

Full changelog

Test, CI, and benchmark-infrastructure release. No runtime or codegen changes — crates/ is untouched, 108 runtime tests and the gap-suite/parity baselines all reproduce identically.

Features

  • CI workflow (.github/workflows/test.yml) — five parallel jobs on macos-14 sharing a cached release build:
    • cargo-test runs the workspace test suite (excluding perry-ui-ios).
    • parity runs run_parity_tests.sh, gates on test-parity/threshold.json (currently 83% min parity), and diffs new failures against test-parity/known_failures.json.
    • compile-smoke requires every test-files/*.ts to compile cleanly.
    • binary-size tracks perry / libperry_runtime.a / libperry_stdlib.a sizes on main only.
  • Benchmark toolingbenchmarks/compare.sh is a regression detector with 15% speed / 25% memory thresholds vs benchmarks/baseline.json (writes JSON with git short-SHA + UTC timestamp; supports --update-baseline and --quick). benchmarks/quick.sh is a ~15s smoke over 5 benchmarks with Perry-vs-Node ratio and peak-RSS comparison.
  • Seven new .ts microbenchmarks in benchmarks/suite/: bench_array_grow, bench_buffer_readwrite, bench_gc_pressure, bench_int_arithmetic, bench_json_roundtrip, bench_object_property, bench_string_heavy — covering paths tuned in v0.5.67–v0.5.81.
  • Parity infrastructuretest-parity/known_failures.json (18 triaged entries) and test-parity/threshold.json (83% minimum) enable the new CI parity gate.
  • Coverage infrastructuretest-coverage/audit.sh scans #[no_mangle] pub extern "C" fn in perry-runtime + perry-stdlib and cross-references against test-files/. Current snapshot in test-coverage/COVERAGE.md: 1437 FFI functions, 615 covered (42.8%).

Tests

  • Five gap tests called out in the gap-suite header but not checked in: test_gap_buffer_ops, test_gap_closures, test_gap_map_set_extended, test_gap_typed_arrays, test_gap_typeof_instanceof.
  • Four issue-#63 regression tests guarding the array-literal scalar-replacement and inline-alloc paths from v0.5.69 / v0.5.73 / v0.5.74: test_issue63_arr, test_issue63_asm, test_issue63_correctness, test_issue63_escape.
  • Five stress tests: test_stress_buffer, test_stress_gc, test_stress_int_ops, test_stress_nanbox, test_stress_promises.
  • Cross-module stress under test-files/multi/test_stress_cross_module/ (two-file module resolution).

Docs

  • issue60_writeup.md — post-mortem for the 84×→4.5× dynamic-property-write speedup shipped in v0.5.51 / v0.5.55.

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]