Commit Graph
584 Commits
Author SHA1 Message Date
Chris Tate 2a23ddc37d feat(compiler): run program preflight with native frontend services
- Compile production program loading across module graphs, packages, and configuration
- Preserve optional defaults and support runtime URL bases and regex split captures
- Isolate host execution services and initialize lowering tables outside module cycles
2026-09-28 17:31:11 -05:00
Chris Tate e517a251ae feat(compiler): preserve frontend structural values in native code
- Preserve class property views, opaque record identity, and nullable structural conversions
- Run package metadata transforms and TypeScript option merges as native code
- Serialize live typed records with opaque payloads and JSON hooks
2026-09-28 15:49:12 -05:00
Chris Tate 2b8756077f Adapt property descriptor checks for static Test262 (#553)
* Adapt property descriptor checks for static Test262

* Record preflight baselines for new corpus fixtures
2026-09-28 15:21:34 -05:00
Chris Tate 0053372853 Compile native renderer startup callables and dictionaries
- Support stored builtin helpers, typed rest callbacks, and shared FileHandle values.
- Preserve async results, specialized function bodies, and checked class receivers.
- Compile live export dictionaries and keep native property names distinct.
2026-09-28 14:53:57 -05:00
Chris Tate b40a6f6079 feat(compiler): lower frontend collections and string transforms natively
- Keep generic bindings and short-circuit writes scoped to their native execution context.
- Compile Map and Set copies, tuple callbacks and searches, and string-pattern replacement.
- Exercise production frontend registries without Node and preserve mutation, identity, and evaluation order.
2026-09-28 14:38:05 -05:00
Chris Tate 7d5a471c67 Compile renderer values and callbacks natively
- Preserve unbound class methods, call-time receivers, and bound callback arguments.
- Keep native factory results, fallback functions, and mutable JavaScript renderer state intact.
- Support live Error.cause assignment, deletion, and property descriptors across aliases.
2026-09-28 13:54:28 -05:00
Chris Tate 5a495dc02c feat(compiler): own frontend services in native clients
- Share native parsing, declaration projection, and npm capability analysis through explicit frontend services.
- Scope module analysis caches and parser connections to their owning program lifecycle.
- Preserve global fetch reads in destructuring defaults across embedded npm modules.
2026-09-28 13:48:53 -05:00
Chris Tate 9b24cca8f1 Support accessor descriptors on dynamic objects (#545)
* Support accessor properties on dynamic objects

* Propagate typed-array accessor failures

* Keep dynamic descriptor comparison self-contained

* Read accessor-backed Proxy handler traps
2026-09-28 13:06:28 -05:00
Chris Tate fc6408a662 Compile native class caches and environment proxies
- Keep cached native class instances callable, including inherited methods and JavaScript arguments.
- Support plain-object Proxy traps with live receivers, enumeration, and data-property invariants.
- Compile untyped addition, computed environment keys, and text-codec startup storage natively.
2026-09-28 12:25:30 -05:00
Chris Tate 385f0fb80c feat(compiler): compile CommonJS syntax passes with the native client
- Move CommonJS export detection and package rewrites onto shared native syntax with explicit dependency resolution.
- Preserve complete bundled-helper matching, significant line breaks, and deep source traversal without the TypeScript 5 parser.
- Compile optional string indexing and exercise the production CommonJS passes in native executables.
2026-09-28 12:02:00 -05:00
Chris Tate e1e5efc1ca Preserve data property descriptors on dynamic objects (#540)
* Preserve data property descriptors on dynamic objects

* Fence engine-held descriptor operations and coerce property keys

* Record descriptor fixture parity baseline
2026-09-28 11:50:27 -05:00
Chris Tate 94f0892e6a Admit direct arguments reads in Test262 scripts (#536)
* Admit direct arguments reads in Test262 scripts

* Record TypeScript parity for recent corpus cases
2026-09-28 11:46:27 -05:00
Chris Tate 483dc07234 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:41:57 -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 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