ReviewOS

home-lang/home

fix(ts): preserve imported graph types before benchmark readmission

#487
Closed chris opened this 8 days ago ·
8 days ago

The existing import_graph and reexport_graph benchmark rows do not currently establish equivalent semantic work. Found while auditing cross-file declaration ownership for #480; tracker #416.

In temporary copies of the unchanged generated corpora, append these statements to src/index.ts:

// import_graph: result is Model127<string>
export const bad: number = result.current;
result.missing;

// reexport_graph: value0 is Item0<number>
export const bad: string = value0.value;
value0.missing;

TS 6.0.3 and native TS 7.0.2 each report exactly TS2322 and TS2339 in each project. Home accepts both without diagnostics. The positive projects passing is insufficient admission evidence.

Required work:

  • Preserve real generic exported interfaces and function return types across module imports and barrel re-exports, including missing-member rejection and assignment checks. Do not hardcode benchmark names/shapes.
  • Add untimed negative controls to both existing workloads. Keep the corpora unchanged and make the full run stop before any measurement/results creation if any selected workload fails admission.
  • Mark the historical graph rows ineligible as fair speed claims, retaining the raw measurements; qualify the previous all-18 leadership statement.
  • Re-admit and retime only after both baselines and Home accept the original projects and reject the same invalid controls. Audit the other workloads' semantic coverage as well.

Evidence: bench/vs_tsgo/results/global-audit.TExK7j/graphs.log, tested with the frozen home-config binary (global declaration precedence and config-directory fixes, before type/value-namespace follow-up). This is distinct from global script declaration linkage in #480 but shares the missing cross-file typed environment.

8 days ago

16f84e7 adds both imported-property rejection controls and validates the entire selection before creating any result directory, metadata, warmups, or measurements. The actual default run was checked to fail at import_graph with no new result directory. Graphs remain in the suite, rather than being silently omitted.

The reporter now marks legacy graph results without admission schema 2 as ineligible. README and performance docs withdraw both graph speed claims, including historical claims, while retaining all raw timings. Other rows are explicitly provisional pending broader rejection coverage; we are not converting this into a claim of 16 proven-equivalent wins.

The final compiler still accepts both invalid graph controls while TS 6.0.3 and native TS 7.0.2 each emit TS2322 and TS2339. All 18 positive workloads pass; only 16 workload gates pass Home, and both graph gates fail as intended. The 25 harness/report tests pass. Keep #487 open for real imported generic type resolution, broader audit coverage, readmission, and retiming.

Documentation commit: 2e146e7. Full evidence and reproduction: https://github.com/home-lang/home/blob/2e146e71e/docs/docs/TS_PERFORMANCE.md#global-declaration-and-graph-admission-audit-untimed . Local logs: bench/vs_tsgo/results/global-audit.TExK7j . No new timing claim.

8 days ago

Pushed three small conventional commits to main under the configured user identity, without coauthors:

  • 134a910: assertion signatures return void, fixing #489.
  • 091f151: core checked metadata is retained with Compilation; the retained relation engine no longer points into a destroyed Checker.
  • 97ab7d4: results, README link, and explicit remaining ownership work.

The ownership work is a prerequisite, not completed cross-file linkage. #488 remains open after auditing interpretation tables still owned by Checker (including NoInfer/this markers, readonly/pattern indexes, and tuple/array origins). Equal numeric TypeIds from separate compilations are not interchangeable. #480/#487 still require actual owner-aware type transfer and resolution.

Validation: 4,236 checker, 175 driver, 101 program, 69 CLI, and 25 harness/report tests pass. All 36 shared assertion controls and 72 earlier callback controls match TS 6.0.3 and native TS 7.0.2. The global audit remains at 14 Home failures out of 132 checks. Sixteen workload gates pass, both graph gates fail, and no benchmark is readmitted. No new timing run or speed claim; published observations and frozen sources are unchanged.

Details: https://github.com/home-lang/home/blob/97ab7d4e4/docs/docs/TS_PERFORMANCE.md#checked-type-ownership-and-assertion-returns-untimed .

8 days ago

Pushed three small conventional commits to origin/main as the configured user, without coauthors:

  • 304fd5d: retained semantic interpretation metadata and transactional borrowed-leaf capture (closes #488).
  • cbc757d: mandatory variadic-tuple rejection gate, schema 3, and legacy-report qualification (closes #492).
  • 4e50814: detailed results and brief README correctness table.

The ownership boundary is now covered for the audited semantic tables, but types are still owner-relative. Actual cross-file transfer/resolution, merging, cycles, and file-order behavior remain under #480/#487. All 18 positive workloads pass; 16 workload gates pass and both graph gates still fail. Global declaration controls remain 44/44 per TypeScript baseline and 30/44 for Home: 14 failures in 132 total checks. No graph is readmitted.

Validation: 4,237 checker, 178 driver, 101 program, 69 CLI, and 29 benchmark-harness/report tests pass. All 42 tuple controls and 36 assertion controls agree across Home, TS 6.0.3, and native TS 7.0.2. No new timing run under concurrent workstation load. Historical tuple observations are provisional because they predate the new gate; frozen sources and timing observations are unchanged.

Details: https://github.com/home-lang/home/blob/4e50814e7/docs/docs/TS_PERFORMANCE.md#semantic-metadata-ownership-and-tuple-admission-untimed .

8 days ago

Payload-layer prerequisite #494 is complete in e4c0a4caa, with initialization error-path cleanup in 99a8b7866 (#498). The transfer canonicalizes structural keys and preserves distinct declaration identities across owners; focused relation and exhaustive allocation-failure tests pass.

Documentation and the README link are pushed in 1b83d1fa1.

This does not resolve this issue: program checking does not call the new primitive. Real source/HIR provenance and checked semantic metadata must accompany remapped types. Blindly merging the retained string-keyed metadata tables could collapse declarations from different owners; signature semantics also cannot be inferred from structural TypeId equality alone. Typed resolution must address cyclic/forward imports, declaration merging, and owner-aware invalidation without any fallbacks or fabricated source nodes.

Fresh ReleaseFast admission remains unchanged against verified TS 6.0.3 and native TS 7.0.2: eighteen positive workloads pass, Home passes sixteen gates but fails both graph rejection gates, and the global audit has fourteen Home failures across 132 checks. Tuple controls (42) and assertion controls (36) pass. Full suites: 4,246 checker / 178 driver / 101 program / 69 CLI / 29 harness tests. No new timings, no graph readmission, and no new speed claim. See the documented checkpoint and README table; local evidence is in bench/vs_tsgo/results/type-transfer.FHPXSf.

8 days ago

Three conventional commits are pushed to main: owner-scoped semantic cloning 778597026, compiled-source isolation regressions 84dc71ca5, and permanent imported-owner audit 50ff4add4.

The new untimed audit uses five owner-isolation families, positive/negative pairs, and both explicit app-before/app-after root orders. Every compiler sees identical strict/noEmit/noLib/skipLibCheck projects and genuine imports from two modules. Verified TS 6.0.3 and native TS 7.0.2 pass 20/20 each; Home's preceding release (SHA-256 860760ccee9bd0935b3371da534756bf148c733bce540d51c86714e96dce962c) passes 8/20. Twelve Home failures remain in the default audit:

  • Generic results/arguments, rest arguments, and readonly controls: invalid programs accepted (six cases).
  • Predicate controls: two valid programs rejected; two invalid projects emit extra/wrong diagnostics because imported guards do not narrow unknown values.
  • Private-origin assignments: two invalid projects rejected with TS2741, not expected TS2322. These are diagnostic mismatches, not false acceptance.

Both root orders behave identically. The new controls are not timed and do not readmit graphs. The transfer operations remain separate from program checking; source-aware resolution, merging, cycles, and invalidation are still required. Full tests pass: 4,249 checker, 179 driver, 101 program, 69 CLI, 33 harness/report. The compiled regression deliberately shares one canonical guard signature while keeping string/number predicates and real source origins owner-isolated. Release rebuild verification and final documentation are in progress.

8 days ago

This checkpoint is pushed to origin/main in four conventional commits, using Chris Breuer as author without coauthors:

  • 778597026: owner-scoped checked semantic transfer with exhaustive field classification, deep ownership, invalid-reference/collision checks, and allocation-failure tests.
  • 84dc71ca5: independently compiled owner-isolation regression, including shared canonical guard signatures with distinct predicates and real source-owner/node references.
  • 50ff4add4: permanent imported-owner positive/negative audit in both root orders.
  • 3026742a0: results, reproduction commands, limitations, and linked README table.

Final tests: 4,249/4,249 checker; 179/179 driver; 101/101 program; 69/69 CLI; 33/33 harness/report. The focused transfer runner passes 4/4 including its module root. The ReleaseFast retry completed successfully; the final binary SHA-256 is 4ad8003e751e1471db6f7ea855c3bf8a3822063e89ddb793b85d3714efe93393. The first release attempt did not produce a verified artifact while disk space was low; it is not used as evidence.

Fresh CLI checks against version-verified TS 6.0.3 and native TS 7.0.2 confirm:

  • All eighteen positive workloads pass; Home passes sixteen workload gates and fails both graph rejection gates.
  • All 42 tuple and 36 assertion controls pass.
  • Global audit: TS 6 and TS 7 each 44/44; Home 30/44 (fourteen failures across 132 checks).
  • Imported-owner audit: TS 6 and TS 7 each 20/20; Home 8/20 (twelve failures across sixty checks), unchanged from the preceding binary. These include false acceptance, rejected valid predicate narrowing, and wrong diagnostic codes for private-origin assignments; the docs distinguish them.

#500 is complete for semantic cloning, not program integration. Neither transfer operation is called by program checking. #480/#487 remain open for source-aware typed lookup, merging, cycles, owner-specific caching/invalidation, and coordinated publication of payloads plus metadata. A metadata clone failure does not undo a previously committed payload transfer. Registry handles must not be treated as local HIR nodes, and name-keyed semantic records must not be blindly merged across owners.

No graph is readmitted and no timing run or speed claim was made. Frozen tuple/predicate inputs are unchanged. See the documented checkpoint; local evidence is retained in bench/vs_tsgo/results/checked-transfer.IO4A4Q.

8 days ago

Pushed three conventional commits to origin/main as Chris Breuer, without coauthors:

  • 9d8be00d7: staged payload transfer and atomic checked-semantic publication.
  • 202f24b9a: production source-owner/provenance registry, coordinated rollback, stale revision invalidation, and checked-source readiness guards.
  • 53dbc4796: verified results, reproduction commands, limitations, and README link.

Full tests pass: 4,252 checker, 183 driver, 101 program, 69 CLI, 33 benchmark-harness/report. Fourteen focused transfer tests include cancellation, existing-key/enum preservation, exhaustive allocation faults, and metadata failures after full payload preparation. Registry tests cover real source text/HIR, same-path replacement, invalid/stale nodes, rollback after a declaration mapping was prepared, and successful retry. The compiled-owner test now uses the production registry rather than a test mapper. Bind-only compilation is rejected as an unchecked owner; completed checking with diagnostics remains distinguishable from unchecked state.

Fresh ReleaseFast binary SHA-256: 6d6b278c9df4db5a67171436def69c720fbe4d91e3171e8221c6d9cb161f4134. Against verified TS 6.0.3 and native TS 7.0.2, results are unchanged: eighteen positive workloads pass; Home passes sixteen workload gates but fails both graph gates; all 42 tuple and 36 assertion controls pass; global audit Home 30/44 versus each baseline 44/44; imported-owner audit Home 8/20 versus each baseline 20/20. Thus fourteen global and twelve owner-audit Home cases still fail. Frozen tuple/predicate inputs are unchanged. No timing run or new speed claim.

#504 is complete for atomic publication/provenance. #480/#487 remain open: Program lookup does not consume these records yet. The shared transfer pool must use one registry's declaration handles for all declaration-bearing types, including the local owner; handles are not local HIR IDs. Readiness means phase completion, not semantic parity. Source-aware lookup, merging, cycles, imported-record caching, and dependent invalidation still need integration. Unregistering invalidates provenance but does not implement program-wide dependency invalidation.

See the documented checkpoint. Local evidence is retained in bench/vs_tsgo/results/owner-publication.xWNTr8. Neither graph is readmitted, and the remaining timing rows stay provisional.

8 days ago

Program discovery now prepares the entire closure before checking and reuses bound owners (83d1459, #505), removing the conformance reparse pass. This does not repair imported type resolution. Fresh release audits still show Home 8/20 in the imported-owner matrix versus 20/20 for both TS 6.0.3 and native TS 7.0.2; both existing graph rejection gates fail while all 18 positive workloads pass. No graph readmission or new timing claim. Release SHA-256 a3eddac96fe1b07d7876defc63a2cda06b9f13210b333e8dc57e2b38e8a0ea12; evidence bench/vs_tsgo/results/prepared-program.Wx2zap.

8 days ago

Callable-owner prerequisite #507 is fixed in 15f050f: imported signatures no longer share erased-shape identities with unrelated callables. Payload/metadata transfer and structural relation tests pass, as do all 4257 checker and 1417 conformance tests. This is not program-level owner integration: the imported-owner audit remains 8/20 with unchanged per-case diagnostic-code outcomes, and both module-graph rejection gates still fail. Results and README summary are in 770834343; this issue remains open for real typed import/global linkage and cycle semantics.

8 days ago

Callable union metadata and receiver/arity relations are fixed in 7d16f7a (#511), documented in 150655867. Full final-source admission was rerun: all 18 positive projects pass all three compilers; 16 rejection gates pass, but import_graph and reexport_graph still fail their unchanged rejection controls. Imported-owner audit remains Home 8/20 versus 20/20 for TS 6.0.3 and native TS 7.0.2. This does not implement typed import/global linkage and does not re-admit either graph timing row. Evidence: bench/vs_tsgo/results/callable-unions.2pCgVc/admissions-v5.log and owners-v5.log.

8 days ago

Prerequisite #515 is complete and documented in 0e3049c. Shared names and bound declaration owners are preserved without mixing local NodeIds or TypeIds. The unchanged import_graph and reexport_graph rejection gates still both fail for Home (0/2); validation stops before creating a timing result directory. #487 remains open until real generic imported and re-exported types, including cycles, pass both positive and negative controls.

8 days ago

Checked-owner / typed-global consumer checkpoint, pushed to origin/main:

  • 33d8c15c5: register checked source revisions, serialize parallel publication, and tombstone owners before replacement/destruction.
  • 76d6a8b2d: keep scanner recovery without typed storage unregistered.
  • a142705f1: receiving-checker value/type lookup contract, preserving local declaration precedence and globalThis lexical exclusions; tests cover structural types, calls, member/argument/assignment errors, and local shadowing.
  • e3d244bfa: full checkpoint and linked README summary.

This does not enable automatic cross-file type publication. Owner-aware generic/predicate/nominal metadata, declaration merging, and resolution independent of source order and cycles are still required. Program compilation still supplies presence-only names; this issue stays open.

Unchanged untimed controlsTS 6.0.3Native TS 7.0.2Home
Global declarations56/5656/5632/56
Bound-global discovery56/5656/5644/56
Imported owners20/2020/208/20
Import/re-export graph admission2/22/20/2

Full admission passes 16/18 workloads; both graph gates still fail and neither is readmitted for timing. No new timings or speedup claim. The installed versions are exactly TS 6.0.3 and native TS 7.0.2; the harness explicitly rejects 7.0.0-dev.20260707.2.

Validation: checker 4,264/4,264, conformance 1,417/1,417, program 110/110, driver 187/187, harness 38/38. ReleaseFast and Zig formatting pass. Targeted Pickier has no errors and one pre-existing README fragment warning. Local frozen evidence: bench/vs_tsgo/results/global-consumer.xZ8NXj, binary SHA-256 f401735aa016d571c2aa4def48f47f4ff435a100af98c3d37c5d61afab392f09.

8 days ago

Re-export prerequisite checkpoint is pushed: implementation 2e1f795f9, documentation/README 89d634162, tracked in #520.

Untimed controlTS 6.0.3Native TS 7.0.2Home beforeHome now
Entry-only/all-files discovery28/2828/2813/2828/28
Export origins and type-only restrictions32/3232/324/3232/32
Original imported graph admission2/22/20/20/2

The same-origin checks still reject genuine ambiguity and missing names. Type-only functions retain identity without becoming runtime values; named/star barrels and local shadows are covered. Cycles use a visited worklist, not a new depth cutoff. This is dependency/declaration provenance, not automatic checked-type transfer.

Global controls remain 32/56, bound-global controls 44/56, imported-owner controls 8/20; both baselines pass all. Overall Home admission remains 16/18, with just the original imported graph failures. No new timings were collected and neither graph speed claim is readmitted. Source-owned generic, predicate, nominal, and merged-declaration metadata remains the next linkage requirement.

Verified so far: checker 4,266/4,266, Program 117/117, harness 41/41, final ReleaseFast build and all listed audits. Complete conformance/remaining regression verification is still running, with results to follow in #520.

Full methodology, results, caveats and reproduction. Raw logs and the frozen binary remain at bench/vs_tsgo/results/reexport-discovery.rFhIvz; binary SHA-256 bff8e072e39c79f0d44e360b0b36ed5b984fd71183debb8e8736efa1aa6e6e3c.

8 days ago

Nominal-identity checkpoint pushed to origin/main: audit ab691ca, expanded fairness controls e40a4d5, implementation 4ae6956, documentation ef076c9. Synthetic imported-class brand properties are removed; real member-origin metadata survives nested relations, substitutions and type transfer.

Verified TS 6.0.3 / native TS 7.0.2: nominal audit 52/52 each. Home improves 30/52 -> 36/52 and existing owner audit 8/20 -> 10/20. Callable identity 56/56 and callable unions 256/256 remain passing. Re-export discovery 28/28, export origins 32/32, globals 32/56, bound globals 44/56, original graphs 0/2 and full admission 16/18 are unchanged. No new timings; both graph timing exclusions remain mandatory. The 16 failing nominal controls remain visible, so this is not complete imported-type parity.

Final verification: checker 4270/4270; conformance 1417/1417; driver 187/187; Program 117/117; CLI 69/69; harness 44/44. Zigfmt passes; Pickier has zero errors and one pre-existing README fragment warning. README includes a concise table and link to the methodology/results section: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#imported-nominal-identity-without-synthetic-properties-untimed

8 days ago

Bound class owner/export linkage checkpoint #522 shipped in 226da38/b45b038, documented in 3567e26. Fair class export controls: Home 22/52 -> 48/52; nominal identity: 36/52 -> 40/52; both TS 6.0.3 and native TS 7.0.2 pass 52/52. Generic/heritage semantic linkage remains incomplete. Next consumer work is #523 (static-value types erased by any fallbacks). Full admission still 16/18 for Home and 18/18 for each baseline; original imported graphs remain 0/2 and ineligible for timing. README and TS_PERFORMANCE.md show the results and limitations.

8 days ago

Checkpoint #523 is shipped: cdcb60b preserves imported static values through named/default/namespace aliases, captures, destructuring and cycles; f5f3681 documents results in the README/table and detailed docs. Final static controls 84/84 (before 52/84), class-export controls 52/52 (before 48/52), nominal identity 42/52 (before 40/52), against pinned TS 6.0.3/native TS 7.0.2. Checker 4274, conformance 1417, Program 120 all pass. Original graph negatives still fail admission: 0/2, no timings claimed. #524 tracks the next imported generic-argument/default/constraint linkage work.

8 days ago

#524 checkpoint: d7f80bd adds 100 fair generic-class controls; f0d8481 and af11e4e add the parsed-field/source-owned metadata foundation; ca94ccc documents the baseline in TS_PERFORMANCE.md and README. TS 6.0.3 and native TS 7.0.2 pass 100/100; Home 50/100. Consumer integration is still pending, and the collector stays off the production path until it is used. Original imported-graph admission remains 0/2; no new timing claim. Details and targeted test results are on #524.

8 days ago

Imported generic-class checkpoint #524 is pushed (0a1e5af, 33ddbef; docs/README ed12aa1). The expanded fair 120-case audit improves Home 62/120 → 118/120; verified TS 6.0.3 and native TS 7.0.2 both pass 120/120. Two growing-recursive-alias negatives remain. Nominal controls improve to 44/52, retaining eight inheritance failures. Full checker/conformance and adjacent audits verified. Original workload admission remains 16/18 and both imported graphs remain 0/2, so graph performance readmission is still blocked by correctness. No timing claims added. Evidence and limitations: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#imported-generic-class-instantiation-untimed

8 days ago

Checkpoint #524: expanded recursive-consumer baseline is Home 96/216 versus TS 6.0.3 and native TS 7.0.2 at 216/216. Pool-owned generic definitions and recursive cross-pool transfer are implemented in c6c6c66, with full regressions passing; production lazy expansion/consumer integration remains pending. Fresh original workload admission is still 16/18 and graph admission 0/2, so neither graph speed claim is readmitted. No new timings. Docs/README: 98e39c6; evidence: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#recursive-generic-consumer-baseline-untimed

8 days ago

Checkpoint #524 is verified and documented in 91d6ca8, with implementation 3b7f0ea, gated recursive throughput de72563 and report-integrity fix 74d1163. Recursive consumers improve 112/288 -> 288/288; imported generic classes 118/120 -> 120/120 against pinned TS 6.0.3/native TS 7.0.2. Exact-source checker 4285, conformance 1417, Program 131, driver 187, CLI 69 and harness 66 all pass. Nominal inheritance stays 44/52, imported owners 10/20; original graph admission remains 0/2 (original overall16/18, expanded17/19). No failing graph was timed. Full 30-round interleaved run records lower Home means on17 admitted workloads; recursive2.42x and independent confirmation2.47x. Shared-host variance and incomplete semantic coverage are explicitly retained. Full results/README: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#lazy-generic-checkpoint-performance . This parent remains open; generic definitions do not yet establish full cross-file value/function linkage or inheritance parity.

8 days ago

Graph readmission checkpoint: de8fe28 preserves source-owned generic interfaces and factory signatures through named/namespace and barrel consumers. Both original positive projects and unchanged TS2322+TS2339 rejection controls pass all3 compilers; factory audit240/240 and full admission19/19 pass. The complete30-round run20260828T224220Z is now published in f3740df: Home import_graph33.7±7.4ms vs TS7 50.8±9.9ms, and reexport_graph25.1±3.2ms vs41.1±1.1ms. All570 round files/1710 samples validate. Historical unvalidated graph rows remain explicitly ineligible. Broader audits retain nominal44/52, owners12/20, globals32/56 and bound globals44/56; remaining coverage is not hidden by graph readmission. Large-predicate performance loses toTS7 and is tracked in #537, with profiling follow-up #536 for redundant CommonJS export compilation.

8 days ago

The #480 integration materially advances this tracker. After 592b9ff3a and tagged transitive provenance in af08e7e61, the fresh imported-owner audit reaches 16/20 for Home versus 20/20 for TS 6.0.3 and native TS 7.0.2. Generic, predicate, private-origin, and readonly families now pass in both root orders. The only four failures are the rest-signature positive/negative pair in each root order: valid tuple calls receive two spurious TS2345 diagnostics, and invalid controls consequently receive four instead of two. No failures are waived. The global audit is independently complete at 60/60 per compiler; nominal-origin remains 44/52. Evidence and commands: https://github.com/home-lang/home/blob/6b13685024dd32118ed08e5e337e36828423a5ed/docs/docs/TS_PERFORMANCE.md#typed-cross-file-global-ownership-and-cyclic-provenance-untimed

8 days ago

Pushed the imported rest-tuple ownership fix to main in e249678 (fix(ts): preserve imported rest tuple calls (#487)).

What changed:

  • fixed Program-schema tuples now lower to the checker’s operational tuple representation rather than a graph-only tuple
  • source-owned tuple provenance survives generic object substitution
  • imported fixed-tuple rest signatures use whole-argument-list positional relation checks without depending on consumer HIR nodes
  • added focused checker coverage and a real three-file Program regression with two owners whose tuple orders are reversed

Untimed correctness gates:

  • imported-owner audit: 60/60 total, Home 20/20, matching TypeScript 6 and native TypeScript 7 in both root orders
  • checker: 4,349/4,349
  • Program: 180/180
  • ReleaseFast home-tsc: pass

No timing claim: the machine remains concurrently loaded. Next I am continuing the remaining inherited nominal-owner failures under this issue.

8 days ago

Pushed the inherited nominal-owner slice to main in 0660cd5 (fix(ts): preserve inherited nominal owners (#487)).

What changed:

  • source-owned class schemas now retain extends as a base-reference/own-body intersection
  • both generic (Base<T>) and non-generic (Base) heritage HIR forms resolve through declaration identity
  • imported class static/instance materialization now uses the supported source-owned schema rather than an own-members-only projection
  • added schema, checker, and real three-file Program regressions proving same-owner inheritance compatibility and cross-owner private-member rejection

Untimed correctness gates from the rebased commit:

  • nominal-origin audit: 156/156 total, Home 52/52, matching TypeScript 6.0.3 and native TypeScript 7.0.2 across private/protected, positive/negative, and both root orders
  • imported-owner audit: 60/60 total, Home 20/20
  • full checker suite: pass
  • full Program suite: pass
  • ReleaseFast home-tsc: pass
  • zig fmt --check and git diff --check: pass

Repository-wide bunx --bun pickier . remains red on 20,869 pre-existing issues in unrelated vendored/upstream fixtures; this slice changes only Zig files. No timing claim was made because the machine remains concurrently loaded. Next I am auditing the remaining graph/readmission acceptance surface and documentation requirements under this issue.

8 days ago

Pushed the lexical generic-interface ownership slice to main in a572f3a (fix(ts): isolate lexical interface owners (#487)).

The remaining graph-type failures came from a false declaration merge: a top-level Box<T> and a function-local Box<T> shared a spelling and namespace path, so the top-level factory return was back-patched to the nested number body. The checker now requires the same enclosing lexical block as well as the same namespace path before merging interfaces. Declaration-owned generic records are selected only for namespaces/modules or proven cross-block name collisions; ordinary root merges retain the refreshable cache needed by recursive and forward generic types.

Coverage added:

  • a single-file Program regression with a top-level generic factory and nested same-named interface
  • a strengthened boolean negative target, so a swapped-in number body cannot preserve the expected diagnostic count

Untimed correctness gates from the rebased commit:

  • graph types: 720/720
  • graph discovery: 84/84
  • export origins: 96/96
  • imported owners: 60/60
  • nominal origins: 156/156
  • full checker suite: pass (4,350/4,350)
  • full Program suite: pass
  • ReleaseFast home-tsc, zig fmt --check, and git diff --check: pass

The first broad attempt correctly failed two checker regressions (forward generic-interface refresh and recursive-default fixed points); it was narrowed before commit, and the complete suite is green. No timing claim was made on the loaded machine. Next I am checking benchmark admission itself and the README/docs status against these now-green gates.

8 days ago

Completed across the linked owner commits and documented in 4fda2da9e. Final pinned audits: graph types 720/720, graph discovery 84/84, export origins 96/96, imported owners 60/60, and nominal origins 156/156. The unchanged schema-3 graph negatives are enforced before timing, historical unvalidated rows remain qualified, and final full result 20260905T225537Z passes admission and records Home lower means on 20/20 workloads with 600/600 paired wins.

Sign in to comment on this issue.