Commit Graph
629 Commits
Author SHA1 Message Date
Chris Tate dab4fb594d test: record BigInt WASI parity baseline 2026-09-17 23:50:49 -05:00
Chris Tate 970bd330a8 fix: harden BigInt formatting sizes 2026-09-17 22:51:13 -05:00
Chris Tate 2c34d11982 fix: prevent BigInt width overflow on WASI 2026-09-17 21:56:12 -05:00
Chris Tate f8886f3bc9 feat: add static BigInt support 2026-09-17 20:48:47 -05:00
Chris TateandMateus Mamede Lage 888c79e20d fix: preserve library section granularity (#345)
- Compile ELF and COFF library members into per-function and per-data sections
- Verify consumer section GC retains only referenced archive symbols

Fixes #287

Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com>
2026-09-17 19:21:59 -05:00
Chris TateandYegor Shovkun 62b90e6d10 fix: compile TypeScript workspace sources (#344)
- Route source-only workspace package entries through the program module graph.

- Preserve JavaScript package resolution and add cross-backend workspace coverage.

- Document the workspace dependency boundary.

Fixes #187

Co-authored-by: Yegor Shovkun <6272356+ankhzet@users.noreply.github.com>
2026-09-17 18:26:20 -05:00
Chris Tateandryoppippi 5a1aec07f2 fix: lower discarded conditional expressions (#343)
- Lower discarded conditionals as lazy statement control flow.

- Add differential and TS7 coverage for void conditional arrows.

Fixes #33

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-09-17 10:55:27 -05:00
Chris Tateandryoppippi 11ed6e4d1d Fix nested mutual function recursion (#342)
* Fix nested mutual function recursion

- Predeclare nested function bindings before sibling closures capture them.
- Cover two- and three-way recursive declaration cycles across native backends.

Fixes #32

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

* Record nested recursion parity baseline

- Add the generated TypeScript 7 order baseline for the nested mutual-recursion corpus fixture.

Fixes #32

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

---------

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-09-17 10:22:01 -05:00
Chris Tateandeuxaristia 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
Railly Hugo ebeb031699 Add Labs status badges to README (#338)
* docs(readme): add Labs status badges

* docs(readme): split Labs label and status
2026-09-16 17:24:58 -03:00
Chris Tateandeuxaristia 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 TateandXia Chao 2e51e8e191 Fix JSON record key serialization (#339)
- Encode record property names as valid JSON across C and LLVM emitters.
- Sanitize generated backend comments and cover escaped and terminating keys.

Fixes #312

Co-authored-by: Xia Chao <236466140+xia-chao@users.noreply.github.com>
2026-09-16 14:16:39 -05:00
Chris Tateandguest271314 bbe05a5a2d perf(wasm): strip release debug sections (#337)
- Strip DWARF from release WASI links across LLVM, C, and external recipes.
- Preserve dev metadata and pin compact output with integration coverage.

Fixes #292

Co-authored-by: guest271314 <4174848+guest271314@users.noreply.github.com>
2026-09-16 12:20:39 -05:00
Chris TateandKristian Rekstad 7f8dc65eb3 test: pin issue 289 sort workload (#336)
- Reproduce the reported 100,000-element descending numeric sort.
- Bound comparator calls so quadratic sorting fails quickly.

Fixes #289

Co-authored-by: Kristian Rekstad <7364831+krissrex@users.noreply.github.com>
2026-09-16 11:34:06 -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 ef497214b5 feat: support Commander 15 static calculator (#334) 2026-09-16 08:34:13 -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.
v0.1.2
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 e559808ef0 feat: run Commander actions statically (#330) 2026-09-15 16:30:54 -05:00
Chris Tate 5efda821cf feat(compiler): preserve npm static declaration overloads (#329) 2026-09-15 08:53:25 -05:00
Chris Tate 5a782a6150 feat: add static async iteration parity (#328) 2026-09-15 00:03:07 -05:00
Chris Tate 2bd2e6f54c Refactor container lowering into focused modules (#325)
* refactor(compiler): split container lowering modules

* chore: clear remaining lint errors
2026-09-14 21:33:20 -05:00
Chris Tate 5a48403470 refactor(compiler): split expression lowering modules (#324) 2026-09-14 18:45:03 -05:00
Chris Tate 2ac8743dbb feat(compiler): add Node module resolution introspection (#322) 2026-09-14 18:15:44 -05:00
Chris TateandPaolo 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 TateandMateus 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 TateandHTET 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 Tateand2youg1 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