Skip to content

Commit c67b6ff

Browse files
committed
feat: first release with npm distribution live (v0.5.107)
- @perryts/perry and 7 per-platform optional-dep packages publish via OIDC Trusted Publisher from .github/workflows/release-packages.yml on every GitHub Release - Covers darwin-{arm64,x64}, linux-{x64,arm64} glibc + musl, win32-x64 - `npx @perryts/perry compile file.ts` works end-to-end - No runtime/codegen change
1 parent b47b8fb commit c67b6ff

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
88

99
Perry is a native TypeScript compiler written in Rust that compiles TypeScript source code directly to native executables. It uses SWC for TypeScript parsing and LLVM for code generation.
1010

11-
**Current Version:** 0.5.106
11+
**Current Version:** 0.5.107
1212

1313
## TypeScript Parity Status
1414

@@ -150,6 +150,7 @@ First-resolved directory cached in `compile_package_dirs`; subsequent imports re
150150

151151
Keep entries to 1-2 lines max. Full details in CHANGELOG.md.
152152

153+
- **v0.5.107** — First end-to-end release with npm distribution live. `@perryts/perry` + seven per-platform optional-dep packages (`@perryts/perry-{darwin-arm64,darwin-x64,linux-x64,linux-arm64,linux-x64-musl,linux-arm64-musl,win32-x64}`) publish via OIDC Trusted Publisher from `release-packages.yml` on each GitHub Release. `npx @perryts/perry compile file.ts` works on all seven platforms. No runtime/codegen change.
153154
- **v0.5.106** — Swap `lettre`'s `tokio1-native-tls` feature for `tokio1-rustls-tls` in `crates/perry-stdlib/Cargo.toml`. Eliminates `openssl-sys` / `native-tls` from the transitive dep tree (they were the only holdouts; the policy comment at Cargo.toml:35 already states "rustls only to avoid OpenSSL"). Unblocks the musl CI build — `openssl-sys` was failing with "Could not find openssl via pkg-config: cross-compilation unsupported" on `x86_64-unknown-linux-musl`. No functional change for SMTP clients; rustls provides the same TLS surface.
154155
- **v0.5.105**`Int32Array.length` (and other typed-array `.length`) returned 0 because `js_value_length_f64` only handled NaN-boxed pointers (top16 == 0x7FFD); typed arrays sometimes flow as raw `bitcast i64 → double` with top16 == 0. Added a raw-pointer arm guarded on the Darwin mimalloc heap window (≥ 2 TB, < 128 TB) that consults `is_registered_buffer` / `lookup_typed_array_kind`.
155156
- **v0.5.104** — Extend the v0.5.103 inliner fix: `substitute_locals` now also walks `WeakRefNew`/`WeakRefDeref`/`FinalizationRegistryNew`/`Object{Keys,Values,Entries,FromEntries,IsFrozen,IsSealed,IsExtensible,Create}`/`ArrayFrom`/`Uint8ArrayFrom`/`IteratorToArray`/`StructuredClone`/`QueueMicrotask`/`ProcessNextTick`/`Json{Parse,Stringify}`/`ArrayIsArray`/`Math{Sqrt,Floor,Ceil,Round,Abs,Log,Log2,Log10,Log1p,Clz32,MinSpread,MaxSpread}`. Same root cause as v0.5.103 (catch-all `_ => {}` skipped these single-operand wrappers); same user-visible class of bug — inlined function bodies referenced unmapped pre-inline LocalIds and read the wrong slot. Verified `test_gap_weakref_finalization`'s `function createAndDeref() { const inner = {...}; const innerRef = new WeakRef(inner); ... }` now correctly carries `inner` through to the WeakRef after inlining.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ opt-level = "s" # Optimize for size in stdlib
102102
opt-level = 3
103103

104104
[workspace.package]
105-
version = "0.5.106"
105+
version = "0.5.107"
106106
edition = "2021"
107107
license = "MIT"
108108
repository = "https://github.com/PerryTS/perry"

0 commit comments

Comments
 (0)