First tagged distribution release since v0.5.1028 — folds in 1198 commits (852 fixes, 42 features, plus tests/docs/refactors). This tag is a clean version-bump checkpoint over a fully CI-green main.
Highlights
- Broad Node.js builtin parity push:
crypto/webcrypto,http/http2/Agent socket pooling,zlib(sync + streaming + Brotli),child_process(streaming spawn, fork + V8-IPC,promisify),util,process,punycode,url,worker_threads,stream(web codec constructors, iterator helpers),dgram,cluster,path,vm. - Reflective builtin-prototype brand checks (#3662 family):
Function.prototype.apply/call/bind/toString, primitive prototypes (Number/Boolean/Symbol/BigInt), collection prototype methods, namespace member reflection. - Typed-array prototype + constructor coverage (join/slice/reverse/fill/subarray,
RangeErrorvalidation, proto accessors). - Generational-GC evacuation + async-resume fixes.
Features (selected)
compile: module-graph tree-shaking / DCE forcompilePackages.- Self-hosted build-time
precompile()— Perry runs its own codegen with no node/V8. node:zlibcomplete sync codec parity + Transform-stream objects + Brotli.node:child_processasync spawn reactor, fork + IPC, exec error/encoding parity.node:httpAgent socket pooling +createConnection/createSocketon the request path.- Generator function expressions,
yield*operand iteration, class[Symbol.iterator]/[Symbol.asyncIterator]via member access. perry/ui: continuous pointer/key events,onFrame/cancelFramedisplay-link callbacks;perry/audiocross-platform sound; GTK4 live CameraView.Object.getOwnPropertyDescriptors, dynamic-import directory-glob template specifiers.
Fixes
- 852 fixes across codegen, HIR lowering, runtime, and stdlib — Node export hygiene, dispatch correctness, stream construction paths, handle-deref segfaults, and large swaths of the TypeScript/Node compatibility roadmap (#793).
See CHANGELOG.md for the full per-version detail.