Commit Graph
789 Commits
Author SHA1 Message Date
Chris Tate 84b914c1fe test(compiler): verify syntax refresh after snapshot release
- Preserve active snapshot sharing while checking fresh syntax and types after releasing the server baseline.
2026-09-28 11:39:57 -05:00
Chris Tate 88db9c0136 fix(runtime): keep global symbol storage in the symbol runtime
- Preserve symbol-free native linking on Windows while retaining global symbol cache ownership.
2026-09-28 11:32:53 -05:00
Chris Tate e873c10eb7 feat(compiler): run source syntax passes through the native TypeScript client
- Parse standalone source with an isolated native TypeScript session and preserve AST ownership across edits.
- Move package declaration projection and import scanning onto statically compilable syntax passes.
- Support forwarded visitor results and guarded native iteration while preserving JSDoc annotations.
2026-09-28 11:18:09 -05:00
Chris Tate 08115a1d3d Support native startup caches and assignment expressions
- Share symbol-keyed global caches across statically compiled modules.
- Preserve assignment results and evaluation order for native fields, accessors, and nullish defaults.
- Read omitted options correctly in specialized JavaScript package calls.
2026-09-28 11:05:00 -05:00
Chris Tate 5d6611d52f feat(compiler): run the TypeScript program host natively
- Share program creation, checker queries, virtual files, and snapshot lifetimes between Node and native compiler clients.
- Preserve typed async-context results and opaque compiler objects through checked native boundaries.
- Support native realpath and Unicode Windows filesystem operations needed by the compiler host.
2026-09-28 10:40:26 -05:00
Chris Tate 26b68b33d3 Support native keyboard parsing and factory-created class fields
- Compile Unicode code-point construction, scalar iterable inputs, and primitive Buffer predicates without a JavaScript engine.
- Preserve object identity and property additions or deletions in inferred JavaScript locals.
- Recover nullable class fields initialized through static factories in bundled packages.
2026-09-28 10:34:39 -05:00
Chris Tate 76a086681a Support native byte queues and bundled JavaScript state
- Preserve nullable class fields and module callbacks in native storage with correct initialization behavior.
- Support typed-array construction, bulk copying, and in-place compaction through checked native values.
- Preserve receiver identity and evaluation order in nested field updates.
2026-09-28 09:54:27 -05:00
Chris Tate 806b96d32b feat(compiler): own the TypeScript server from native clients
- Launch and manage TypeScript server processes through a portable native FFI boundary.
- Share the production session API between Node and statically compiled clients.
- Preserve Unicode command-line arguments and release server resources on every exit path.
2026-09-28 09:54:18 -05:00
Chris Tate f1a1f059c7 feat(compiler): compile the owned TypeScript checker facade
- Compile the memoizing TypeScript checker with project-owned caches and explicit disposal.
- Support nested Map and Set values with native identity and cycle tracing.
- Preserve synthetic AST fragments and isolate semantic answers across snapshots.
2026-09-28 09:05:31 -05:00
Chris Tate 521ba8f1ef Preserve JavaScript values beyond null initializers
- Keep null-initialized fields and inferred returns in mutable native storage, including inherited resets and saved callbacks.
- Convert checked native values with Number using JavaScript coercion and catchable errors.
2026-09-28 09:01:13 -05:00
Chris Tate 43e29623ba Append Buffer data through native filesystem calls
- Compile fs.appendFileSync with Buffer and Uint8Array data.
- Preserve binary contents and append-or-create behavior while keeping filesystem errors catchable.
2026-09-28 08:41:09 -05:00
Chris Tate 62e4317a21 Construct native Buffers from untyped input
- Compile Buffer.from for untyped strings, bytes, arrays, and plain array-like data.
- Preserve copy semantics, element coercion, and catchable errors while keeping unsupported object conversions explicit.
2026-09-28 08:37:22 -05:00
Chris Tate 8cb009b807 feat(compiler): use owned native types throughout the frontend
- Generate native AST views, syntax guards, and token spellings from pinned TypeScript 7.
- Connect frontend analysis directly to owned AST, checker, and session objects.
- Preserve node identity and handle absent parents across lowering.
2026-09-28 08:36:32 -05:00
Chris Tate bd12146234 Recognize Buffer chunks in untyped native callbacks
- Compile Buffer.isBuffer checks on untyped values using the native Buffer flag.
- Distinguish stream Buffers from plain byte arrays and document existing brand loss at typed boundaries.
2026-09-28 08:25:40 -05:00
Chris Tate 7cf3bc715a Compile varying JavaScript event payloads without an engine
- Support varying JavaScript event payloads for untyped and zero-argument listeners.
- Preserve listener identity, argument counts, ordering, and default values in native dispatch.
2026-09-28 08:19:44 -05:00
Chris Tate f7f5c6197a Preserve declared nullable callbacks through bundled class inheritance
- Compile zero-argument callback fields and derived arrow replacements using their declared nullable type.
- Preserve callback captures, identity, and null resets in native class storage.
2026-09-28 08:13:17 -05:00
Chris Tate 306251e3df feat(compiler): preserve native type refinements for self-hosting
- Preserve class identity and member storage through interface and intersection refinements.
- Replace TypeScript runtime enum imports with pinned native constants and name lookups.
- Use concrete type predicates in the native semantic client.
2026-09-28 08:12:06 -05:00
Chris Tate d94df74b50 Keep dormant JavaScript return overrides from blocking classes
- Allow JavaScript classes with unused incompatible return overrides to compile natively.
- Preserve inherited dispatch signatures and throw a named refusal if an incompatible override is called.
2026-09-28 08:05:45 -05:00
Chris Tate 378eb2ffc6 Preserve declared scalar returns through bundled class aliases
- Carry declaration-backed string, number, and boolean method results into static JavaScript compilation.
- Match named class re-exports to their implementations while preserving self types and rejecting ambiguous aliases.
2026-09-28 07:55:21 -05:00
Chris Tate 22e8565d54 feat(compiler): statically compile the TypeScript session lifecycle
- Replace SDK snapshots, projects, and programs with the owned native client.
- Preserve source identity across snapshots with native paths, caches, metadata, and diagnostics.
- Collect request timing and close snapshot state reliably without SDK helpers.
2026-09-28 07:45:35 -05:00
Chris Tate 3d9a5a59da Compile bound inline arrow callbacks without a JavaScript engine
- Preserve lexical captures, callback identity, receiver effects, and default arguments in native bound arrows.
- Keep bound function name and length available through JavaScript aliases and checked storage.
2026-09-28 07:41:55 -05:00
Chris Tate b900575120 Preserve mutable JavaScript object fields in native storage
- Keep empty inferred objects mutable across class fields, accessor parameters, and function values.
- Preserve object identity through named, private, symbol-keyed, and static JavaScript fields.
2026-09-28 01:41:03 -05:00
Chris Tate 4682d4cf5b feat(compiler): statically compile the TypeScript semantic client
- Replace SDK semantic objects with native type, symbol, and signature registries.
- Route production checker queries through the owned client while preserving identity and snapshot lifetimes.
- Support scalar BigInt conversion and class union checks needed by native semantic decoding.
2026-09-28 01:39:10 -05:00
Chris Tate cac0a658f6 Compile JavaScript overrides that ignore trailing arguments
- Preserve native virtual dispatch when an override omits trailing checked-value parameters.
- Keep argument side effects and subclass defaults correct across direct, inherited, and super calls.
2026-09-28 01:34:20 -05:00
Chris Tate 6fd750c5e1 Ignore known ASan fiber warning in LLVM self-hosting check (#519) 2026-09-28 01:32:09 -05:00
Chris Tate 1cc30b4c5e Preserve populated JavaScript default options in static calls
- Keep empty inferred options objects in native checked storage across calls and function values.
- Preserve supplied properties, per-call defaults, and null errors through JavaScript exports.
2026-09-28 01:27:09 -05:00
Chris Tate f251066719 Preserve JavaScript class values and inherited behavior
- Keep fields, accessor parameters, and return values inferred as undefined in native checked storage.
- Preserve virtual dispatch for overridden methods in JavaScript packages.
- Route assignments through class accessors without creating shadow fields.
2026-09-28 01:16:59 -05:00
Chris Tate f52b3b5b73 Compile untyped Map and Set registries without a JavaScript engine
- Store checked values in native collections while preserving supported object identities and JavaScript key equality.
- Support collection iteration and reject reference conversions that would copy or adapt stored objects.
2026-09-28 01:12:29 -05:00
Chris Tate ec2ebb6ef4 Support JavaScript async class methods in static mode (#515) 2026-09-28 00:46:44 -05:00
Chris Tate 82d7d9a237 feat(compiler): use a statically compilable TypeScript AST model
- Replace SDK AST materialization with checked native node, list, and text decoding.
- Preserve checker handle identity and snapshot reuse across the frontend.
- Compile generic visitors and guarded node-list iteration without dynamic execution.
2026-09-28 00:40:27 -05:00
Chris Tate 6aa732c089 Support static generator methods and loop bindings (#512)
Lower static and non-overridden instance generator methods through spawn wrappers. Bind sync and async generator loop values through declarations or assignment patterns, and preserve compound assignment expression values.
2026-09-27 23:33:40 -05:00
Chris Tate 2e7fdcf1ca feat(compiler): statically compile the TypeScript RPC client
- Move frontend message framing and filesystem callbacks into native-capable TypeScript
- Route production requests through the owned client while preserving AST and checker identity
- Preserve synchronous error recovery and cross-platform process cleanup
2026-09-27 23:22:42 -05:00
Chris Tate 5ae7350b0a Support declared JavaScript fields and static counters
- Compile JavaScript instance fields with native undefined initialization and ordered resets.
- Support prefix and postfix updates to numeric static fields through exact class bindings.
2026-09-27 23:13:02 -05:00
Chris Tate c58160ca94 Support stable symbol-keyed class fields
- Compile initialized Symbol() and Symbol.for() fields, including inherited OpenTUI brands.
- Share registry-key storage across modules and keep symbol slots out of string-keyed enumeration.
- Refuse unstable keys and unsupported symbol-field copies.
2026-09-27 22:47:14 -05:00
Chris Tate 7b007e03ef feat(compiler): bootstrap the LLVM emitter natively
- Run the production LLVM backend natively and reproduce its output across compiler generations.
- Replace unchecked emitter contexts with explicit shared state and callback hosts.
- Preserve NaN in serialized IR and respect optional record storage during spreads.
2026-09-27 22:29:24 -05:00
Chris Tate 37a25ebf7f Support stable bundled loaders and native console imports
- Statically resolve stable let/var createRequire bindings while rejecting mutation, escape, and early use.
- Compile node:console output methods to native process streams and retain explicit custom Console refusals.
2026-09-27 22:20:25 -05:00
Chris Tate be1426a5cb feat(compiler): advance static OpenTUI support
- Extend native FFI with additional scalar widths and writable byte spans.
- Compile stored text codecs and supported bundled module patterns without a JavaScript engine.
- Document supported limits.
2026-09-27 21:49:40 -05:00
Chris Tate cb94453647 feat(compiler): bootstrap the C emitter natively
- Compile the production C emitter and reproduce its output across native generations.
- Support the union operations, recursive spreads, and compression options needed by the emitter.
- Fix temporary ownership and verify the bootstrap and shared call operands with both backends and sanitizers.
2026-09-27 21:45:26 -05:00
Chris Tate a1ec135d79 Distribute compile-heavy CI files across shards (#505) 2026-09-27 21:28:37 -05:00
Chris Tate 42638a65b7 Run self-hosting CI harness in a dedicated worker (#503) 2026-09-27 21:03:25 -05:00
Chris Tate 4c6635a3e0 isolate long serialization suite in macOS CI (#502) 2026-09-27 20:48:53 -05:00
Chris Tate f7d217f0d5 Support native ReferenceError, EvalError, and URIError (#501)
* Support additional native Error subclasses

* fix error identity across island callback bridge

* record new Error family parity entry
2026-09-27 20:27:50 -05:00
Chris Tate d3ecb0fc9d feat(compiler): advance self-hosting with identity collections (#500)
* feat(compiler): advance self-hosting with identity collections

- Support reference identity in Maps and Sets, including unions and cycle cleanup.
- Run production integer-range analysis natively with typed IR traversal.
- Add differential coverage for native analyses and collection behavior.

* chore: ignore generated output directories

- Exclude generated output directories from version control.
2026-09-27 20:02:13 -05:00
Chris Tate 04aa42354c Support static for-await over synchronous arrays (#498)
* Support synchronous arrays in for-await loops

Drive array values through async-from-sync timing, including promise values and early iterator close. Handle defaulted union destructuring into checked-dynamic bindings and refuse void callback parameters before native code generation. Add differential coverage and pinned async Test262 regressions with original-source completion checks.

* Fix Error subclass C calls and diagnostics snapshot
2026-09-27 19:00:17 -05:00
Chris Tate 8f46e7ae8f feat(compiler): run LLVM layout and helper emission natively (#499)
- Compile production LLVM layouts, ownership helpers, debug metadata, and JSON emitters on both native backends
- Support nullable collections and mixed insertion spreads needed by compiler code
- Verify native emission parity and generated executables with focused sanitizer coverage
2026-09-27 18:49:36 -05:00
Chris Tate 48e00aa779 feat(compiler): run optimization and backend analyses natively (#497)
- Compile scalar-record optimization and backend analyses on both native backends
- Use exhaustive typed IR traversal and shared cycle analysis
- Verify optimized IR and executable parity with focused sanitizer coverage
2026-09-27 16:41:16 -05:00
Chris Tate b778bf6e6e feat(compiler): run IR serialization and dependency scans natively (#496)
- Compile production IR serialization and runtime dependency scans on both native backends
- Support native JSON callbacks and checked records with unknown payloads
- Verify native IR round trips and executable generation with focused sanitizer coverage
2026-09-27 15:56:58 -05:00
Chris Tate 13234396c2 Admit receiver-bound this in static Test262 scripts (#495)
* Admit receiver-bound this in static Test262 scripts

* Refresh Set seed diagnostic snapshot
2026-09-27 15:36:42 -05:00
Chris Tate d714819bbf Recognize additional JavaScript early errors in Test262 runner (#494) 2026-09-27 13:44:13 -05:00
Chris Tate ffe5e27563 feat(compiler): run the IR validator natively (#493)
- Compile the production validator and exercise native IR construction and validation on C and LLVM.
- Preserve Error causes, wider callbacks, and discriminated JSON layouts in static programs.
- Version the IR and runtime ABI and cover the new compiler paths with differential and sanitizer tests.
2026-09-27 13:11:56 -05:00