This commit is contained in:
Chris Tate
2026-10-16 01:29:54 -05:00
parent 97afb3f281
commit bf050d1077
33 changed files with 63 additions and 32 deletions
+31
View File
@@ -6,6 +6,37 @@ All notable changes to scriptc will be documented in this file.
<!-- release:start -->
## 0.3.4
### Features
- **`InternTable` in `@scriptc/experimental`** is a shared, append-only table of published values that every thread can read and add to, with string, number and array keys.
- **`node:zlib` adds the stream classes,** and `node:crypto` supports `createCipheriv` and `createDecipheriv`.
- **`node:stream` adds the Readable operators, `stream.compose`, `Readable.from` over generators** and the `Readable.from` options, plus async generator stages, source functions, promise destinations and `{ signal }` in `pipeline`.
- **`node:test` adds `TestContext` hooks, `plan`, `fullName`, Node's `todo` and `only` rules, `mock.fn` and `t.mock.fn`.**
- **`node:assert` adds `AssertionError`, `deepEqual`, `partialDeepStrictEqual` and the `Assert` class.**
- **`node:http` matches Node's keep-alive, header and framing behavior,** and `node:net` adds socket address fields, `write` and `end` callbacks and server connection limits.
- **`dns.lookup` supports Node's forms,** along with `lookupService`, `getServers` and the result order.
- **`fs.opendirSync`, `fs.promises.opendir` and `fs.Dir`** are supported, and the fs option checks follow Node's.
- **`util.format` supports `%f`,** and `timers/promises` resolve values and `setInterval` work under `@types/node`.
### Performance
- **`Atomics` run without a lock** on shared storage and compile to inline atomic instructions.
- **Lifetime regions are cheaper.** Programs that never create a region no longer pay for region counting, a kept region is retried only when its counted references change, and owned objects with a single reference are released without a table entry.
- **Publishing large object graphs is faster,** and dropped cyclic graphs are collected while they are still in cache.
- **fs callbacks and worker-pool completions wake the event loop directly** instead of waiting for a timer turn.
- **Number-keyed `Map` and `Set` operations are faster:** lookups are probed inline, and `set` and `add` after a read store into the entry they found.
- **Named property reads of unknown values take one receiver retain,** dyn array elements and lengths are read by number, and cyclic dyn values convert to recursive shapes.
- **Small exact arrays have room for one append.**
- **Large wasm32 programs are partitioned** like native ones.
### Fixes
- **`process.nextTick` callbacks drain before promise jobs** after every callback, as in Node.
- **wasm32 array lengths past 2^31** and the exit codes of pending top-level `await` are correct, and typed-array indices stay integral through the shared-buffer check.
- **The npm case fixtures run natively,** and the issues they found are fixed.
## 0.3.3
### Features
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-darwin-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for darwin-arm64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-darwin-x64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for darwin-x64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-linux-arm64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for linux-arm64-gnu",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-linux-arm64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for linux-arm64-musl",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-linux-x64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for linux-x64-gnu",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-linux-x64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for linux-x64-musl",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/cli-win32-x64-msvc",
"version": "0.3.3",
"version": "0.3.4",
"description": "Native scriptc compiler for win32-x64-msvc",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "scriptc",
"version": "0.3.3",
"version": "0.3.4",
"description": "Compile ordinary TypeScript and JavaScript to small, fast native executables and WebAssembly modules that run without Node.js",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/compiler",
"version": "0.3.3",
"version": "0.3.4",
"description": "The scriptc compiler — TypeScript/JavaScript frontend, typed IR, LLVM backend",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"schemaVersion": 2,
"compilerVersion": "0.3.3",
"compilerVersion": "0.3.4",
"coverage": [
"Entries are projected mechanically from the compiler's own decision tables: the diagnostics registry, the unsupported-syntax dispatch tables, the stdlib and node-builtin lowering tables, and the supported-builtin-module list. Nothing is hand-maintained; the manifest regenerates byte-identically from the source tree at this version.",
"Absence from this manifest means 'not projected', never 'unsupported'. Surfaces lowered through dedicated code paths rather than tables are not yet projected: console, JSON, Promise/async and the timer surface, the net/http/tls/https/dgram/dns/assert/test/stream/readline module member surfaces, template literals, the regex slice, global functions (parseInt, parseFloat, isNaN, isFinite), and the process surface outside its ambient slice.",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/experimental",
"version": "0.3.3",
"version": "0.3.4",
"description": "Experimental scriptc APIs, with Node.js implementations: lifetime regions for ProgramLifetime objects and intern tables shared between threads",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-darwin-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Pinned LLVM code-generation helper for scriptc on macOS arm64",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-darwin-x64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Pinned LLVM code-generation helper for scriptc on macOS x64",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-linux-arm64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Pinned LLVM code-generation helper for scriptc on Linux arm64",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-linux-arm64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Statically linked LLVM code-generation helper for scriptc on Linux arm64 musl",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-linux-x64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Pinned LLVM code-generation helper for scriptc on Linux x64",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-linux-x64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Statically linked LLVM code-generation helper for scriptc on Linux x64 musl",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/llvm-win32-x64-msvc",
"version": "0.3.3",
"version": "0.3.4",
"description": "Pinned LLVM code-generation helper for scriptc on Windows x64",
"license": "Apache-2.0 WITH LLVM-exception",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-android-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc library runtime pack for Android arm64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-darwin-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for macOS arm64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-darwin-x64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for macOS x64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-ios-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc library runtime pack for iOS arm64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-ios-simulator-arm64",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc library runtime pack for iOS simulator arm64",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-linux-arm64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for Linux arm64 glibc",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-linux-arm64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for Linux arm64 musl",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-linux-x64-gnu",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for Linux x64 glibc",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-linux-x64-musl",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for Linux x64 musl",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-wasm32-wasi",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for WASI Preview 1",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime-win32-x64-msvc",
"version": "0.3.3",
"version": "0.3.4",
"description": "Precompiled scriptc runtime pack for Windows x64 MSVC",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/runtime",
"version": "0.3.3",
"version": "0.3.4",
"description": "scriptc native runtime sources and vendored dependencies",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/threads",
"version": "0.3.3",
"version": "0.3.4",
"description": "Zero-copy publication of immutable object graphs to worker threads (scriptc), with a deep-freezing Node.js implementation",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/types",
"version": "0.3.3",
"version": "0.3.4",
"description": "Contract types for scriptc: type-only annotations (Int32, NoThrow, Immutable) that scriptc checks and optimizes, with no runtime semantics",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",