Chris Tate
dde66d0699
feat(compiler): add Node module resolution introspection
2026-09-14 16:28:03 -05:00
Chris Tate and Paolo Anzani
2bfc37b138
fix(compiler): support branded primitive types ( #320 )
...
Co-authored-by: Paolo Anzani <201222836+paoloanzn@users.noreply.github.com >
2026-09-14 13:46:36 -05:00
Chris Tate and Mateus Mamede Lage
16de852347
fix(compiler): lower dynamic any-local operators ( #319 )
...
Fixes #290
Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com >
2026-09-14 12:31:25 -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 and 2youg1
b74364ed01
fix(compiler): preserve leading BOM literals ( #316 )
...
Co-authored-by: 2youg1 <65069696+2youg1@users.noreply.github.com >
2026-09-14 10:29:16 -05:00
Chris Tate
073c840564
Enforce TypeScript 7 and Node type-link parity ( #315 )
...
* Enforce TypeScript 7 and Node type-link parity
* fix(compiler): normalize Windows resolver paths
* fix(compiler): canonicalize Windows realpaths
2026-09-14 09:19:08 -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
d7aed4b722
Unify TS 7 project module resolution ( #308 )
2026-09-13 21:53:45 -05:00
Chris Tate
ce8419781e
chore(release): prepare v0.1.1 ( #307 )
v0.1.1
2026-09-13 20:09:18 -05:00
Chris Tate
ee7d5ac81f
fix(release): reconcile async npm publishes ( #306 )
2026-09-13 19:22:23 -05:00
Chris Tate
f2f897a24e
fix(release): restore native helper executable bits ( #305 )
2026-09-13 18:49:48 -05:00
Chris Tate
6700381ff5
fix(release): build portable musl LLVM helpers ( #304 )
...
- Build musl helper packages as static host executables matching LLVM’s glibc and libstdc++ ABI.
- Preserve musl code-generation targets and Zig-built runtime packs.
- Add pre-merge Alpine execution and package verification coverage.
2026-09-13 18:23:41 -05:00
Chris Tate
c5362177d9
fix(release): use bfd for musl LLVM links ( #303 )
2026-09-13 15:33:03 -05:00
Chris Tate
0d96facc27
fix(release): use external lld for musl helpers ( #302 )
2026-09-13 11:36:14 -05:00
Chris Tate
ce04d825fa
fix(release): flatten musl LLVM link graph ( #301 )
...
* fix(release): flatten musl LLVM link graph
* fix(release): order musl LLVM archives safely
2026-09-13 10:47:55 -05:00
Chris Tate
6396598965
fix(release): satisfy musl LLVM dependency targets ( #300 )
2026-09-13 08:13:16 -05:00
Chris Tate
3339cf9521
fix(release): repair native package CI toolchains ( #299 )
2026-09-13 01:12:55 -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
4b241f77d7
Replace quadratic array sorting with stable merge sort ( #296 )
...
* Fix Sandbox command transport and pinned native setup
Build the Linux LLVM helper and runtime pack before running both test lanes, and align native cache contracts with the current target policy. Full managed Sandbox gate passed.
* Replace quadratic array sorting with stable merge sort
Cover sort snapshots, consistent-comparator results, stable ties, and comparator complexity with Node differential fixtures. Document differences from V8 TimSort.
2026-09-12 16:05:16 -05:00
Chris Tate
8227a5ad9c
Fix Sandbox command transport and pinned native setup ( #295 )
...
Build the Linux LLVM helper and runtime pack before running both test lanes, and align native cache contracts with the current target policy. Full managed Sandbox gate passed.
2026-09-12 15:59:01 -05:00
f98a8e475c
Clarify Zig setup for WebAssembly builds ( #294 )
...
Clarifies the root README's WebAssembly setup by explaining that users need the `zig` executable on `PATH`. It also explains that `SCRIPTC_CC=zigcc` selects Zig's `cc` subcommand, not a standalone `zigcc` executable, while leaving the existing build and run examples unchanged.
Factory-Run: e3db0c10-6b15-4b64-8c99-5bf54ef41ec7
Co-authored-by: Chris Tate <366502+ctate@users.noreply.github.com >
Co-authored-by: guest271314 <4174848+guest271314@users.noreply.github.com >
2026-09-11 00:13:17 -05:00
Chris Tate
bf32f155fc
test: record TS7 order parity baselines ( #285 )
v0.0.38
v0.0.37
2026-09-02 20:08:06 -05:00
Chris Tate
0bf47eb87e
feat: support static ESM import metadata
2026-09-02 18:18:09 -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 yowainwright
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
1cec922d95
Separate native linking from C compilation ( #278 )
...
* Separate native linking from C compilation
- Split the helper-object runtime-pack path into explicit link planning and platform linking.
- Reserve SCRIPTC_LINKER for object-only executable links while retaining a deprecated SCRIPTC_CC compatibility path.
- Add no-legacy-C coverage and document the linker/SDK boundary.
* Preserve runtime pack link errors
* Fix linker cache invalidation and warnings
* Fix C executable cache routing
- Keep explicit C builds on compiler-backed cache identities.
- Cover linker-only environment changes across exact C repeats.
2026-08-31 20:29:59 -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 >
v0.0.36
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 euxaristia
1730676951
fix(compiler): keep targetless Zig native builds coherent ( #273 )
...
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com >
2026-08-31 10:47:41 -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 monteslu
4d9e2a2397
fix ffi call initializers ( #268 )
...
Co-authored-by: monteslu <423800+monteslu@users.noreply.github.com >
2026-08-30 19:23:04 -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 and mmamedel
5b7a5bd82b
fix(compiler): reshape inline record assertions ( #266 )
...
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com >
2026-08-30 17:05:44 -05:00
Chris Tate
b536dd36a9
update dockerfile ( #264 )
2026-08-30 15:05:00 -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
73efea6ab3
feat(cli): expose native object link info ( #247 )
...
* feat(cli): expose native object link info
- add versioned, cache-independent native link metadata for program objects
- document the experimental runtime ABI and provide C-driver and Apple linker examples
- verify ABI mismatch, FFI parity, packed installs, and external linking in CI
* fix(example): validate native runtime pack identity
2026-08-27 13:47:09 -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
f71922fcb0
fix(sandbox): include CLI lifecycle scripts
...
- Copy the CLI cache-warming postinstall script before the Docker dependency install layer
- Include the script in the restricted Docker build context
- Add regression coverage for lifecycle-script ordering and context availability
2026-08-26 21:51:15 -05:00
Chris Tate
77fad3c4cc
feat(cli): add source-level output kinds ( #241 )
...
* feat(cli): add source-level output kinds
- add typed IR, C, and LLVM primary artifacts without native toolchain discovery
- centralize output paths, compatibility validation, and stale artifact cleanup
- document and test the new CLI contract
* fix(cli): harden source output contracts
* fix(cli): harden source output compatibility
2026-08-26 15:26:24 -05:00
Chris Tate
7c816fa398
Improve Sandbox test portability ( #240 )
...
* Improve Sandbox test portability
- Decouple Sandbox scope and authentication from custom image references.
- Add a pinned managed-image bootstrap with stronger preflight diagnostics.
- Document and test OIDC, access-token, and fallback-image workflows.
* Fix VCR OIDC authentication
- Map selected credentials onto the VCR CLI token interface.
- Decode OIDC project scope and cover auth paths with regression tests.
* Fix Sandbox VCR authentication
* Fix OIDC Sandbox scope precedence
2026-08-26 11:22:07 -05:00
Chris Tate
73ee01d7ef
refactor(llvm): split expression emission by family ( #235 )
...
* refactor(llvm): split expression emission by family
- Extract expression and support emission into focused LLVM modules.
- Partition library calls behind prefix-dispatched domain modules.
- Consolidate keyed-record reads behind one shared implementation.
* fix(llvm): preserve validation call routing
2026-08-24 07:28:38 -05:00
Chris Tate
97585a8b5d
Update description ( #234 )
2026-08-24 01:27:26 -05:00
Chris Tate
22195f769d
refactor(c): split expression emission by family ( #233 )
...
- Extract expression cases into focused literal, control, container, call, dynamic, and async emitters.
- Partition standard-library calls into prefix-dispatched domain families.
- Keep emitExpr as a thin exhaustive dispatcher with emission behavior unchanged.
2026-08-23 21:04:12 -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