0.4.4
Highlights
- Fixes for 0.4.3:
- Unchanged rebuilds hit the frontend cache again. An unchanged rebuild of a 23-module program takes 93 ms instead of 1.26 s, and of tsc-ts (dev) 1.6 s instead of 58.2 s.
- The native compiler builds programs with several typed-array accesses at one masked index in a loop again, including tsc-ts's release build, which failed with SC3004.
x!returned from a function, used as an arrow function's result, or passed as an argument keeps null or undefined when the destination type holds it, as JavaScript does.x!operands of+,+=and other conversions that hold undefined or null convert as Node does.- Effect 4 programs whose generators yield clients built by other generators run again.
- The cache for untyped property access in programs that declare classes is reverted, fixing a crash in Effect 4 observability programs.
- Faster:
- Number compares and typed-array indexes use the exact integer of sums like
i + 1: a heap sift-down over anInt32Arrayruns 17.5% faster. - glibc's per-thread heaps use huge pages: the VS Code type-check runs 3.4% faster.
- Mid-size executables (over 1 MiB of LLVM text) build in at least eight partitions: the LLVM backend phase takes 34 to 74% less time for three.js programs of 1.4 to 7.8 MB.
- JavaScript class instances are boxed at their exact class, and stores into nested string-keyed dictionaries keep class method calls direct.
--target-cpuselects an x86-64 microarchitecture level.
- Number compares and typed-array indexes use the exact integer of sums like
- Node.js parity:
- X25519 keys and
crypto.diffieHellman;existsSyncandfs.promisesacceptfile:URLs;Buffer.fromranges over ArrayBuffers, the deprecatedBuffer()constructor andBufferas a value. - Dates are objects with identity;
Promise.allover different entry types settles on Node's turns; completion callbacks run in their call's AsyncLocalStorage context. - TypedArray methods run on typed arrays held as untyped values, and unions of typed-array classes compile. Borrowed
TypedArray.prototype.setcalls compile and throw Node's TypeError for other targets. - Split CommonJS
requirebindings,__-prefixed exports, string-key destructuring ofanyvalues, and record key order for values JavaScript built.
- X25519 keys and
- npm packages: zod 4 and
@hono/zod-validatorvalues are projected at the declaration boundary.