Commit Graph
93 Commits
Author SHA1 Message Date
Chris Tate 37f9438084 Add static fixed-tuple call spreads (#351) 2026-09-19 00:00:26 -05:00
Chris Tate a11fd6c881 Add static callable specialization (#350) 2026-09-18 22:50:45 -05:00
Chris Tate 3d1286cdea chore(release): prepare v0.1.3 (#347) 2026-09-18 08:37:22 -05:00
Chris Tate 1600935411 Add static-native BigInt support (#346)
* feat: add static BigInt support

* fix: prevent BigInt width overflow on WASI

* fix: harden BigInt formatting sizes

* test: record BigInt WASI parity baseline
2026-09-18 00:21:12 -05:00
Chris Tate ffa248efcf feat: add static crypto utility support (#335)
* feat: add static crypto utility support

* fix: match Node crypto digest errors
2026-09-16 11:15:12 -05:00
Chris Tate 875c20b143 chore(release): prepare v0.1.2 (#333)
- Sync the CLI, compiler, runtime, and platform package version spine.
- Regenerate the compiler surface manifest for v0.1.2.
- Add the v0.1.2 changelog entry and release markers.
2026-09-15 23:18:23 -05:00
Chris Tate 280fe1a8da feat: preserve class and child handles through unknown (#331)
* feat: preserve class and child handles through unknown

* fix: hide private fields from unknown views
2026-09-15 19:30:22 -05:00
Chris Tate 5a782a6150 feat: add static async iteration parity (#328) 2026-09-15 00:03:07 -05:00
Chris Tate a8a5204574 Implement typed async generators (#310) 2026-09-14 00:38:06 -05:00
Chris Tate 9fb0620f06 Implement explicit resource management (#309) 2026-09-13 23:34:17 -05:00
Chris Tate ce8419781e chore(release): prepare v0.1.1 (#307) 2026-09-13 20:09:18 -05:00
Chris Tate e640b4b2ff chore(release): prepare v0.0.37 (#298) 2026-09-13 00:21:54 -05:00
Chris Tateandyowainwright 1071b87d77 Lower Math.PI and Math.E statically (#279)
Co-authored-by: yowainwright <1074042+yowainwright@users.noreply.github.com>
2026-09-01 00:47:23 -05:00
Chris Tate 19898f1d7b chore(release): v0.0.36 (#277) 2026-08-31 17:12:16 -05:00
Chris Tate 2fb3a65a99 Prepare v0.0.35 release (#194)
- Bump the CLI, compiler, runtime, and surface manifest to v0.0.35.
- Publish release notes for faster development builds and compiler correctness fixes.
2026-08-21 22:33:49 -05:00
Chris Tate d7b4480e47 chore: prepare v0.0.34 release (#179)
- Bump all published packages to v0.0.34
- Document library caching, lowering, and record-spread performance improvements
- Refresh the compiler surface manifest for the release
2026-08-20 14:55:44 -05:00
Chris Tate f29459f17e chore: prepare v0.0.33 release (#167)
- Ship native callback lifecycle support and JavaScript-truthy filter semantics.
- Document build performance improvements and synchronize release metadata.
2026-08-17 21:02:49 -05:00
Chris Tate 5f4e576685 chore: prepare v0.0.32 release (#161)
- Bump workspace packages and the generated compiler manifest to v0.0.32.
- Document ARM64 musl, Windows TLS trust, and comparison-proof updates.
2026-08-15 21:14:38 -05:00
Chris Tate 7dfd25484e chore(ovation): checkpoint agent step (#155) 2026-08-14 12:06:20 -05:00
Chris Tate 7586e0ed1b chore: prepare v0.0.30 release (#149)
- Bump all published packages and the surface manifest to v0.0.30.
- Promote host-callback channels into the marked release notes.
- Include callback registration in cross-target ABI symbol checks.
2026-08-13 22:35:00 -05:00
Chris Tate be7435cfd6 chore: prepare v0.0.29 release (#147)
- Bump all published packages to v0.0.29.
- Promote the mobile library target notes into the release changelog.
- Refresh the compiler surface manifest for the new version.
2026-08-13 13:17:36 -05:00
Chris Tate 2ea62825cb feat: add mobile library targets for iOS and Android (#145)
* feat: add mobile library targets for iOS and Android

- three library-mode-only triples join SCRIPTC_TARGET:
  aarch64-apple-ios, aarch64-apple-ios-simulator (darwin hosts with
  Xcode's iPhoneOS/iPhoneSimulator SDKs), and aarch64-linux-android
  (any host with an NDK). The consuming pattern is an embedding app
  linking profile-configured static archives — Xcode on the Apple side,
  Gradle/NDK on the Android side — so the executable lane refuses the
  triples with SC3002 and the pointer to --lib
- zig bundles no Apple or bionic libc: resolveCc discovers the sysroot
  (xcrun for the selected Apple SDK; ANDROID_NDK_ROOT or the newest
  ndk/<version> under the SDK root) and spells it into targetArgs,
  where every cache tier already keys it. The canonical LLVM spellings
  map to zig's own with the minimum-version floors pinned:
  aarch64-ios.15.0[-simulator] stamps LC_BUILD_VERSION minos 15.0 into
  every object, aarch64-linux-android.26 pins the bionic stub level an
  embedder's minSdkVersion must meet. API 26 bionic carries everything
  the library-lane units call (arc4random_buf included), so no shim TU
  joins the archive
- localization follows the existing object-format rule: both iOS
  platforms ride the Mach-O host-ld64 arm (ld64 reads iOS objects and
  preserves platform/minos through the -r merge), Android rides the
  cross-ELF arm (zig relocatable merge + in-process demotion) via the
  driver's zig spelling. abi.instance_per_thread needed no per-target
  work — thread-local statics compile identically on all three
- admission is a pure env/host check ahead of toolchain discovery: an
  iOS triple off a darwin host and near-miss mobile spellings refuse
  SC3002 with the pairing or the supported set named, in compile() and
  compileLibrary() both, decorated by the profile teaching machinery
- library-multi grows the mobile lanes: M12 admission shape always
  runs; SCRIPTC_IOS=1 builds localized a/b archives per target and
  emission (M1 symbol exactness, ambient audit, version floor), links
  probes with the Xcode clang, and EXECUTES the two-instance and
  four-thread probes on a booted simulator byte-for-byte against the
  desktop expectations (device-arch archives are build+link verified);
  SCRIPTC_ANDROID=1 does the same through the NDK clang and an
  emulator, reusing a running device or writing and booting a headless
  arm64 AVD directly
- the surface manifest's coverage notes record the mobile posture (the
  library-admissible surface only; no mobile claim outside it), the
  profile spec and the platforms page carry the mobile matrix with the
  version floors, and non-mobile builds are unchanged byte-for-byte

* fix: harden mobile target tooling

* Harden mobile target test isolation
2026-08-13 09:48:09 -05:00
Chris Tate c6e9f62f34 chore: prepare v0.0.28 release (#143)
- Bump all workspace packages and the surface manifest to 0.0.28.
- Promote the changelog entry for cross-platform runtime localization.
- Advance release markers for publishing automation.
2026-08-12 19:02:08 -05:00
Chris Tate 6aaf0ece79 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.
2026-08-12 10:59:53 -05:00
Chris Tate e98b2d461d release: v0.0.26 (#135)
Bump all published packages to 0.0.26, publish the release notes for the new target and runtime surfaces, and regenerate the compiler surface manifest.
2026-08-11 14:39:19 -05:00
Chris TateandAlbert 31f268be2b feat: support wasm32-wasi as a production target (#133)
* feat: support wasm32-wasi as a production target

- Add production LLVM WASI codegen with a 32-bit ABI, coroutines, and dynamic modules
- Integrate WASI builds and execution into the CLI with capability diagnostics
- Add differential coverage and document the fourth production target

Co-authored-by: Albert <57402359+bulatovv@users.noreply.github.com>

* fix: address wasm target review findings

* fix WASI guest paths and fetch alias detection

* fix WASI async bridge and fetch detection

---------

Co-authored-by: Albert <57402359+bulatovv@users.noreply.github.com>
2026-08-11 14:12:59 -05:00
Chris Tate ea5b6183f2 release: v0.0.25 (#126)
- Bump all published packages to 0.0.25.
- Document fair socket-read scheduling in the release notes.
- Regenerate the compiler surface manifest for the new version.
2026-08-10 23:08:09 -05:00
Chris Tate 0daa46cb4f release: prepare v0.0.24 (#122)
- Bump workspace package versions to v0.0.24.
- Document the release’s filesystem, encoding, process, array, and performance updates.
- Refresh the compiler surface manifest for the release.
2026-08-10 14:42:39 -05:00
Chris Tate 8188470e3a feat: support fs/promises FileHandle (#110)
* feat: support fs/promises FileHandle

- Add static lowering and typing for fs/promises.open and the supported FileHandle surface.

- Implement FileHandle ownership and I/O across the C runtime and C/LLVM backends.

- Add differential corpus coverage and refresh the supported-surface manifest.

* fix fs file handle argument handling

* fix fs file handle validation

* fix(fs): preserve FileHandle read error codes

* fix(runtime): match empty FileHandle buffer behavior
2026-08-09 21:22:19 -05:00
Chris Tate a9b6dba424 feat(string): support static split limits (#109)
* feat(string): support static split limits

- Lower split limits for string and literal RegExp separators across C and LLVM.
- Match JavaScript ToUint32 limit semantics in the runtime.
- Add differential coverage and refresh diagnostics and surface metadata.

* fix(string): default undefined split limits
2026-08-09 18:09:00 -05:00
Chris Tate 82b065c014 feat(fs): support static writeSync (#106)
* feat(fs): support static writeSync

- Lower Buffer-window and UTF-8 string overloads through the C and LLVM backends.
- Match Node's positioned and current-offset write behavior, validation, and errors.
- Add differential corpus coverage and publish the static surface manifest entry.

* fix(fs): preserve writeSync runtime semantics

* fix fs.writeSync error parity

* fix fs write descriptor errors
2026-08-09 16:54:33 -05:00
Chris Tate b3d3101550 Add static array unshift and reverse (#107)
- Lower unshift and reverse through the C and LLVM backends.
- Preserve spread, mutation, evaluation-order, and reference-counting semantics.
- Add runtime, differential, and surface-manifest coverage.
2026-08-09 14:25:53 -05:00
Chris Tateandryoppippi 23a2d3309e feat(fs): support static rename APIs (#104)
* feat(fs): support static rename APIs

- Lower fs.rename, fs.renameSync, and fs/promises.rename through the C and LLVM backends.
- Add runtime callback, error, and promise handling for rename operations.
- Cover typed and check-JS usage with differential corpus tests.

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>

* fix Windows rename semantics

* fix: move callback rename work off main thread

* fix(runtime): preserve rename callback checkpoints

---------

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-08-09 13:29:15 -05:00
Chris Tate a4e9970119 Support static util.parseArgs (#103)
* Support static util.parseArgs

- Lower typed util.parseArgs calls through the C and LLVM backends.
- Add a link-gated native parser with Node-compatible options, tokens, defaults, and errors.
- Cover ESM, CommonJS, default argv, sanitizer, and TS7 behavior.

* fix(runtime): align parseArgs behavior with Node

* fix(runtime): close parseArgs parity gaps

* fix(runtime): match parseArgs edge cases

* fix(runtime): preserve parseArgs short and default semantics
2026-08-09 08:57:03 -05:00
Chris Tate 28e723b599 Prepare v0.0.23 release (#105)
- Stamp all published packages and the compiler surface manifest at 0.0.23.
- Publish release notes for the new runtime, compiler, and web-platform surface.
- Preserve a clean Unreleased section and mark only the latest release body.
2026-08-09 08:09:54 -05:00
Chris Tateandsensei-woo e5c875bd97 Support Date instance lowering (#101)
* Support Date instance lowering

- Lower read-only Date values and constructors through the C and LLVM backends.

- Add portable calendar helpers, differential coverage, and documented surface contracts.

- Fence unsupported mutation, identity, locale, and component-constructor forms.

Co-authored-by: sensei-woo <sensei-woo@users.noreply.github.com>

* Fix Date exception and timezone semantics

* fix: harden Date lowering edge cases

* fix Date lowering edge cases

* Fix Date union fences and offset clipping

---------

Co-authored-by: sensei-woo <sensei-woo@users.noreply.github.com>
2026-08-08 23:17:58 -05:00
Chris Tateandsensei-woo 89c361a967 Lower AbortController for fetch cancellation (#100)
* Lower AbortController for fetch cancellation

- Add static and dynamic lowering for construction, signal access, and abort calls
- Back controllers with native signal state shared by fetch
- Cover cancellation semantics across C, LLVM, diagnostics, and surface tests

Co-authored-by: sensei-woo <sensei-woo@users.noreply.github.com>

* Fix AbortController abort edge cases

* Fence AbortController method extraction

---------

Co-authored-by: sensei-woo <sensei-woo@users.noreply.github.com>
2026-08-08 20:24:27 -05:00
Chris Tateandkongxiangyiren 303ed952e1 fix(fetch): support Response construction (#98)
* fix(fetch): support Response construction

- Lower global Response calls through the native C and LLVM runtimes.
- Match Node 24 coercion, validation, and stream error precedence.
- Cover supported BodyInit and ResponseInit behavior with differential tests.

Co-authored-by: kongxiangyiren <72970235+kongxiangyiren@users.noreply.github.com>

* fix(fetch): align constructed response headers

* Fix Response construction and header iteration

* fix(fetch): align Response constructor conversion

* fix(fetch): preserve Response constructor semantics

---------

Co-authored-by: kongxiangyiren <72970235+kongxiangyiren@users.noreply.github.com>
2026-08-08 16:43:44 -05:00
Chris Tate adae252881 Prepare v0.0.22 release (#87)
- Stamp all publishable packages at v0.0.22.

- Publish release notes for persistent builds and external coverage types.

- Refresh the compiler surface manifest for the release.
2026-08-03 01:31:43 -05:00
Chris Tate efb7e77281 fix: address fetch compatibility review findings 2026-08-02 15:31:00 -05:00
Chris Tate 8c20c9ac73 fix: validate computed fetch dispatch 2026-08-02 11:29:23 -05:00
Chris Tate b90c0466b2 fix: enforce fetch surface compatibility 2026-08-02 01:09:40 -05:00
Chris Tate 5ac9dcda3e Fix fetch surface fence coverage 2026-08-01 18:53:02 -05:00
Chris Tate ea3bbddc62 fix: align fetch inventory with lowering 2026-08-01 17:30:06 -05:00
Chris Tate 89b5ab3355 feat(compat): inventory Node 24 fetch surface
- Classify Node 24 fetch APIs and options by static, dynamic-only, unsupported, and out-of-scope support.

- Project the inventory into the surface manifest and add runtime drift and conformance checks.

- Fence unprofiled Headers members with actionable SC2020 diagnostics.
2026-08-01 17:01:32 -05:00
Chris Tate 2d0bc2df0b Add generated Node 24 fetch conformance
- Pin the supported fetch surface to an explicit Node and Undici profile.
- Generate deterministic WebIDL, AbortSignal, and stream differential campaigns.
- Match Node stream pull scheduling while preserving typed source identity.
2026-08-01 15:33:37 -05:00
Chris Tate fdb01b360c Prepare v0.0.21 release
- Stamp all publishable packages at v0.0.21.

- Publish release notes for the contract-sidecar fixes.

- Refresh the compiler surface manifest for the release.
2026-07-30 23:08:27 -05:00
Chris Tate fdf5010b28 Prepare v0.0.20 release
- Stamp all publishable packages at v0.0.20.

- Publish release notes for the contract-sidecar improvements.

- Refresh the compiler surface manifest for the release.
2026-07-30 16:26:39 -05:00
Chris Tate 1bd7e4af2e Prepare v0.0.19 release
- Stamp all published packages and the compiler surface manifest at 0.0.19.
- Promote the completed integer-slot fixes into the marked release notes.
2026-07-30 13:36:35 -05:00
Chris Tate 7f68aa1676 Prepare v0.0.18 release
- Stamp all publishable packages and the surface manifest at 0.0.18.
- Promote the curated Unreleased notes and release markers to v0.0.18.
2026-07-30 09:29:36 -05:00