Chris Tate
9ff5ed1680
feat(child_process): support static fork IPC ( #386 )
...
* feat(child_process): support static fork IPC
* fix(child_process): fix fork discovery and send callbacks
2026-09-22 23:24:07 -05:00
Chris Tate
b9d55037ac
Support static URL credentials and descriptor operations ( #385 )
2026-09-22 23:11:41 -05:00
Chris Tate and Hagege Ruben
e12856c1b4
fix: support static URL port and hash getters ( #383 )
...
- Lower URL.port and URL.hash through both native backends with Node-compatible values.
- Add differential and typed-project coverage, and update compatibility evidence and docs.
Fixes #372
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com >
2026-09-22 21:18:37 -05:00
Chris Tate
72ebac8659
fix(fs): support async readdir Dirent overload ( #382 )
...
* fix(fs): support async readdir Dirent overload
* test(ts7): record recent corpus fixtures
2026-09-22 20:47:12 -05:00
Chris Tate
15fb993111
feat(compiler): expand static Date, process, and URL support ( #379 )
...
* feat(compiler): lower Date.parse through native parser
* feat(compiler): support exit status writes and URL getters
* chore(compat): regenerate static support after upstream changes
* test: update URL fence hint snapshot
* test: record new corpus entries for TS7 parity
* test: record upstream lstat parity entry
2026-09-22 20:13:14 -05:00
Chris Tate
1841228277
fix(fs): support async lstat identity metadata ( #381 )
2026-09-22 19:20:43 -05:00
Chris Tate and Hagege Ruben
2df164ab99
fix(fs): support static async realpath ( #378 )
...
- add fs/promises.realpath with Node-shaped rejections
- resolve Windows links to canonical paths
- cover behavior and refresh compatibility evidence
Fixes #371
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com >
2026-09-22 18:35:53 -05:00
Chris Tate and Hagege Ruben
c9cad7a0ba
fix(child_process): support shell text capture ( #377 )
...
- add cross-platform shell spawning and close lifecycle support
- decode encoded child output across native read boundaries
- cover the supported surface with differential compatibility evidence
Fixes #370
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com >
2026-09-22 18:03:52 -05:00
Chris Tate and Mateus Mamede Lage
c5308c7f10
fix(windows): provide native timing shims ( #367 )
...
- Resolve MinGW clock and sleep calls with standalone Win32 implementations.
- Cover realtime, monotonic, sleep, and invalid-input contracts on Windows.
Fixes #255
Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com >
2026-09-21 17:19:25 -05:00
Chris Tate
f2c81630ef
Add static loose equality ( #364 )
2026-09-20 20:46:52 -05:00
Chris Tate
e42ee19e41
Add static CommonJS factory exports ( #360 )
...
* Add static CommonJS factory exports
* Fence inherited methods on dynamic objects
2026-09-20 13:07:51 -05:00
Chris Tate
d6657921f5
Add static zlib callback codecs ( #356 )
2026-09-20 09:10:07 -05:00
Chris Tate
e82dc998c4
Add static one-shot zlib codecs ( #355 )
2026-09-20 01:21:41 -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 and euxaristia
5e4b4df1b9
feat(child_process): support writable child stdin ( #341 )
...
* feat(child_process): support writable child stdin
- Add nonblocking child stdin writers with lifecycle events and platform-aware backpressure.
- Lower writable streams through the C and LLVM backends while fencing unsupported overloads.
- Add differential, type, diagnostics, and compatibility coverage.
Fixes #311
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com >
* Reject non-literal spawn options
- Emit a named lowering diagnostic instead of silently dropping variable options.
- Cover two- and three-argument spawn overloads with diagnostic regressions.
Fixes #311
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com >
---------
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com >
2026-09-17 07:48:29 -05:00
Chris Tate and euxaristia
472748956b
Render UTF-8 output in Windows consoles ( #340 )
...
- Configure attached Windows consoles for UTF-8 while preserving redirected bytes and restoring host state.
- Add cross-platform output coverage and a native pseudo-console regression.
Fixes #321
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com >
2026-09-16 14:48:27 -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
fcacc4d4b0
feat: add static CommonJS module graph ( #332 )
2026-09-15 21:17:31 -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
2ac8743dbb
feat(compiler): add Node module resolution introspection ( #322 )
2026-09-14 18:15:44 -05:00
Chris Tate
74dce238ab
perf(runtime): scale URLSearchParams sorting ( #318 )
2026-09-14 11:53:42 -05:00
Chris Tate and HTET LIN ZAW
6b22826ffc
fix(runtime): preserve executable-path argv arguments ( #317 )
...
Co-authored-by: HTET LIN ZAW <226281319+RyanDev-21@users.noreply.github.com >
2026-09-14 11:07:26 -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 Tate
94fd361b54
Implement sparse native arrays and missing-value parity ( #297 )
...
Represent ordinary JavaScript arrays with hole, value, and explicit-undefined states; add sparse side storage and carry missing values through the frontend, native backends, runtime, and Node-facing consumers.
2026-09-12 22:39:07 -05:00
Chris Tate
8faad2f639
feat: add Node.js compatibility matrix ( #284 )
...
* feat: add Node.js compatibility matrix
- Add generated Node.js v24 compatibility inventory with static and dynamic support classifications.
- Publish the interactive /compatibility matrix and wire manifest generation into runtime and docs checks.
* fix: correct compatibility matrix generation
* fix: address PR 284 review findings
* fix: address PR 284 review findings
* test: exercise stream web loader through npm graph
* fix: correct dynamic global availability
* fix: keep compatibility module mappings precise
2026-09-02 16:03:36 -05:00
Chris Tate
c41f1a8be9
Expand LLVM native output targets ( #280 )
...
* Expand LLVM native output targets
- Add owned helper and runtime-pack contracts for macOS x64, Linux glibc/musl, Windows x64, and WASI.
- Generalize LLVM target selection, package validation, linker plans, and release/CI matrices.
- Document linker boundaries and add focused native-output and runtime-pack coverage.
* Pin Windows LLVM helper CI to VS 2022
The official LLVM archive needs the Visual Studio 2022 CMake generator, which is not guaranteed by windows-latest.
* Align bootstrap cache with LLVM runtime-pack builds
Use the same target-specific helper and linker identity before and after compiler loading so routed executable cache hits remain lightweight.
* Install Windows LLVM CI tools with Chocolatey
windows-2022 includes Visual Studio but not winget; use its available Chocolatey bootstrap for CMake and Ninja.
* Prevent Zig version probes from leaving runtime-pack objects
Run runtime-pack compiler version probes in a private temporary directory and remove the accidental tracked WASI a.o file.
* Use 7-Zip for Windows LLVM setup
Extract the official LLVM development archive with two-stage 7-Zip instead of Windows tar.exe, which timed out while materializing the toolchain tree.
* Define ssize_t for the MSVC runtime pack
Clang's MSVC target does not expose POSIX ssize_t through sys/types.h; define the pointer-sized runtime type without affecting MinGW.
* Build the Windows runtime pack with Zig
Use the MinGW-compatible Windows sysroot required by the runtime while retaining COFF helper output and installing Zig in the Windows native CI lane.
* Give macOS LLVM differential shard time to finish
Shard 1 passed its setup and focused contracts but was cancelled during its cold LLVM differential slice at the 20-minute job limit.
2026-09-01 13:41:34 -05:00
Chris Tate and mmamedel
9080986166
Add sparse UTF-16 indexing for large strings ( #275 )
...
* fix: index large unicode strings sparsely
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: retain sparse anchors for long ascii prefixes
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: skip sparse index for proven ASCII strings
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: complete sparse UTF-16 string indexing
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* test: rebase static size contracts for sparse index
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* test: retain sparse checkpoints through ASCII prefix end
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: retain sparse anchors across threshold append
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: retain sparse indexes beyond cursor cache
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: bound sparse string index residency
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix: isolate sparse string index residency
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* test: restore parseInt oracle outputs
* test: verify committed string oracle
- Regenerate the string case oracle with the active Node executable.\n- Compare the checked-in fixture byte-for-byte before native runtime checks.\n- Keep the Linux parseInt ULP allowance scoped to native output.
---------
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
2026-08-31 17:12:52 -05:00
Chris Tate
19898f1d7b
chore(release): v0.0.36 ( #277 )
2026-08-31 17:12:16 -05:00
Chris Tate and Flora90001
55ee396738
Support reusePort for TCP and HTTP server listeners ( #274 )
...
* feat(net): support reusePort server listen options
Co-authored-by: Flora90001 <163703040+Flora90001@users.noreply.github.com >
* fix(net): match reusePort boolean semantics
Co-authored-by: Flora90001 <163703040+Flora90001@users.noreply.github.com >
* feat(net): support reusePort server listen options
Co-authored-by: Flora90001 <163703040+Flora90001@users.noreply.github.com >
* test(net): close listeners on successful conflict probe
Co-authored-by: Flora90001 <163703040+Flora90001@users.noreply.github.com >
---------
Co-authored-by: Flora90001 <163703040+Flora90001@users.noreply.github.com >
2026-08-31 15:26:20 -05:00
Chris Tate and mmamedel
837f6bc62b
Tree-shake unreachable executable runtime sections ( #271 )
...
* feat: tree-shake executable runtime sections
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* test: run runtime tree-shaking checks in sandbox
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* fix(runtime): release lazy process caches
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
* test: stabilize runtime tree-shaking size guard
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
---------
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
2026-08-31 09:01:19 -05:00
Chris Tate and mmamedel
2b6e6524a3
fix(library): reject callback re-entry ( #270 )
...
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
2026-08-30 19:30:31 -05:00
Chris Tate and mmamedel
0b1738d51e
optimize string self-concatenation ownership ( #267 )
...
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
2026-08-30 17:53:30 -05:00
Chris Tate
64b2a285d5
feat(runtime): ship precompiled macOS artifacts ( #248 )
...
* feat(runtime): ship precompiled macOS artifacts
- Add a versioned macOS arm64 runtime pack with deterministic feature selection and artifact verification.
- Link LLVM helper objects against release-built runtime and vendor inputs without compiling user-machine C.
- Wire package publishing, cache validation, documentation, and full-gate coverage for the new path.
* fix(runtime): harden precompiled artifact handling
* fix(runtime): make precompiled artifacts reproducible
* fix(runtime): reject opaque linkers from executable cache
* fix(runtime): normalize precompiled archive metadata
* fix(runtime): harden precompiled artifact caching
* fix(runtime): close executable cache link race
* fix(runtime): stage verified pack artifacts
* fix(runtime): bracket helper cache inputs
* fix(runtime): preserve executable link identity
* fix(runtime): trace selected linker dependencies
2026-08-28 09:29:21 -05:00
Chris Tate
401338f437
feat(compiler): add native LLVM object emission ( #242 )
...
* feat(compiler): add native LLVM object emission
- ship the pinned macOS arm64 LLVM helper and platform package
- add assembly/object CLI outputs, caching, diagnostics, and runtime ABI checks
- validate helper artifacts through CI, packaging, docs, and differential coverage
* fix(compiler): harden native LLVM emission
* fix(compiler): harden LLVM helper packaging
* fix(compiler): stabilize LLVM helper package size
* fix(compiler): harden native helper validation
* fix(compiler): harden LLVM helper verification
* fix(compiler): harden native object emission
2026-08-27 10:30:40 -05:00
Chris Tate
469efdd7f0
refactor: clarify compiler module boundaries ( #232 )
...
* refactor: clarify compiler module boundaries
- Rename backend, frontend, IR, and cache modules for explicit ownership.
- Split native cache/vendor and frontend shared concerns into focused modules.
- Expand compiler context names and refresh imports, tests, and documentation.
* fix: preserve renamed compiler interfaces
2026-08-23 20:16:13 -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
af333016d4
perf: preseed native build caches ( #192 )
...
* perf: preseed native build caches
- Warm runtime, TLS, and dynamic-engine artifacts during npm installation
- Add an explicit toolchain-aware cache warm command for images and CI
- Move vendor artifacts into the user cache and build QuickJS directly
* fix: harden native cache warming
* fix: promote staged vendor cache entries
* fix: isolate shared native cache entries
* fix: validate shared vendor cache artifacts
2026-08-21 19:52:25 -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 and DemonGPT
a737fde346
feat(ffi): marshal foreign-thread callbacks ( #164 )
...
* feat(ffi): marshal foreign-thread callbacks
- Add format 5 foreign callback descriptors with strict retained, context, and void-return validation.
- Marshal copied callback arguments through an optional MPSC event-loop queue in both C and LLVM backends.
- Cover concurrent delivery, liveness, fairness, teardown, cross-platform builds, and document the boundary contract.
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
* fix(ffi): preserve callback checkpoints
---------
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
2026-08-16 22:59:02 -05:00
Chris Tate and DemonGPT
b53285d650
feat(ffi): add retained callbacks ( #163 )
...
* feat(ffi): add retained callbacks
- Add format 4 retained registration and explicit release descriptors with pointer-identity validation.
- Pin callbacks in runtime registration tables and emit matching C/LLVM adapters with deferred exception checks.
- Cover lifecycle and sanitizer cases, and document the same-thread callback boundary.
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
* fix(ffi): harden retained callback lifecycle
* fix(ffi): reject same-call retained releases
* fix(ffi): reject inline retained releases
* fix(ffi): preserve plain exit listener timing
---------
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
2026-08-16 20:43:18 -05:00
Chris Tate and DemonGPT
da9a8f5524
feat(ffi): copy callback strings and spans ( #162 )
...
* feat(ffi): copy callback strings and spans
- Add format 3 callback classes for cstrings, UTF-8 spans, and byte spans.
- Materialize owned callback arguments in both backends with strict null handling.
- Cover validation, ownership, sanitizers, and document the boundary contract.
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
* fix(ir): bump schema for callback spans
---------
Co-authored-by: DemonGPT <127974011+DemonGPT@users.noreply.github.com >
2026-08-16 08:52:45 -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