release: v0.0.27 (#138)

- Bump all three published packages to 0.0.27.
- Publish release notes for multi-instance library archives.
- Regenerate the compiler surface manifest.
This commit is contained in:
Chris Tate
2026-08-12 10:59:53 -05:00
committed by GitHub
parent 6f7a1a08fe
commit 6aaf0ece79
5 changed files with 13 additions and 6 deletions
+9 -2
View File
@@ -6,6 +6,15 @@ All notable changes to scriptc will be documented in this file.
<!-- release:start -->
## 0.0.27
### Features
- **Library archives support independent instances in one process.** `abi.localize_runtime` combines an archive's reached program, runtime, and vendor objects and hides every definition except its profile-declared ABI, so archives with distinct symbol prefixes link together without collisions or shared mutable runtime state. Each instance owns its allocator, collector, result arena, and panic sink, and a trap poisons only the instance that raised it. Localization is available for host-native Darwin and Linux builds and refuses cross-target builds before emission.
- **One library archive can serve an independent instance per embedder thread.** `abi.instance_per_thread` moves mutable program and runtime state into thread-local storage while keeping immutable interned data shared, preserving the existing entry family with the calling thread as the instance selector. Each thread initializes and owns its instance for its lifetime, including its collector, result arena, panic sink, and poison state. Thread instancing composes with runtime localization, remains opt-in, and leaves classic archives byte-for-byte unchanged.
<!-- release:end -->
## 0.0.26
### Features
@@ -15,8 +24,6 @@ All notable changes to scriptc will be documented in this file.
- **Native FFI accepts C function-pointer callbacks.** Format 2 describes callback pointers and opaque contexts as independently positioned ABI entries, adapts ordinary capturing TypeScript closures through both backends, and preserves scalar C conversion and catchable callback throws. Raw callbacks without userdata use a binding-specific same-thread trampoline. The initial lifetime policy is explicit and bounded: callbacks are valid only during the native call; retained and foreign-thread callbacks remain rejected by contract.
- **HTTP and HTTPS servers expose Node's timeout configuration statically.** `timeout`, `keepAliveTimeout`, `keepAliveTimeoutBuffer`, `headersTimeout`, and `requestTimeout` retain Node's defaults and independent per-server storage through typed and dynamic reads and writes. The HTTP and HTTPS constructors also accept and validate `keepAliveTimeoutBuffer`; this surface configures the values, while deadline enforcement remains a separate server behavior.
<!-- release:end -->
## 0.0.25
### Fixes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "scriptc",
"version": "0.0.26",
"version": "0.0.27",
"description": "Compile ordinary TypeScript and JavaScript to small, fast native executables — no Node, no V8, no JavaScript engine in the binary",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@scriptc/compiler",
"version": "0.0.26",
"version": "0.0.27",
"description": "The scriptc compiler — TypeScript/JavaScript frontend, typed IR, LLVM and C backends",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"compilerVersion": "0.0.26",
"compilerVersion": "0.0.27",
"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/runtime",
"version": "0.0.26",
"version": "0.0.27",
"description": "scriptc native runtime — C sources, compiled into every scriptc binary",
"license": "Apache-2.0",
"homepage": "https://scriptc.dev",