ReviewOS

home-lang/home

fix(ts): retain imported non-public member declaration identity without synthetic properties

#521
Closed chris opened this 9 days ago ·
9 days ago

Parent: #487; tracker: #416.

The imported-owner audit currently passes 8/20 Home controls. Its private-origin negatives emit TS2741 for a fabricated _home_class_origin property rather than the TS2322 mismatch emitted by pinned TypeScript 6.0.3 and native TypeScript 7.0.2.

Replace synthetic brand properties with explicit declaration-origin metadata. Preserve identity through recursive structural relations, generic substitution, and checked-type transfer. Add paired positive/negative controls for distinct and shared origins, nested object/array/function positions, public structural compatibility, and inheritance boundaries. Keep all unsupported cases visible and retain graph timing exclusions until the original graph gates pass.

Validation: exact diagnostic-code parity with both pinned baselines, targeted unit/CLI tests and existing correctness audits; document results and link conventional commits here. No new timing claim from partial semantic work.

9 days ago

Baseline audit added in ab691ca: 48 controls per compiler covering 12 families and both app root orders. TS 6.0.3: 48/48; native TS 7.0.2: 48/48; frozen Home 3d3e6d9 checkpoint: 28/48. Failures are retained for direct/private-public/protected diagnostics, generic argument checks, re-export aliases, private keyof, and inheritance. Nested objects, arrays and functions are explicit regression controls before removing the synthetic field. Evidence: bench/vs_tsgo/results/nominal-origins.doZaNi/audit-before.log. No timing claims.

9 days ago

Implementation candidate removes the fake required class-brand property and retains source-qualified declaration identity on real non-public members, including recursive relations, substitutions and string-ID transfer. Expanded audit/fairness commit: e40a4d5 (52 controls). Frozen ReleaseFast audit: TS6 52/52, TS7 52/52, Home 30/52 -> 36/52. Existing owner audit: 8/20 -> 10/20. Original graph admission remains 0/2 and overall workload admission 16/18; no timing claims. Static-private (2), generic arguments (2), class aliases (2), private keyof (2), and inheritance (8) remain failures. Checker 4270/4270, driver 187/187, Program 117/117, CLI 69/69 and harness 44/44 pass. Conformance is still running; implementation and documentation commits will be linked after final verification. Evidence: bench/vs_tsgo/results/nominal-origins.doZaNi.

9 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

9 days ago

Checkpoint #522 is pushed (b45b038; docs 3567e26). Class declarations now come from bound owners, export aliases retain actual declaration path/position, and keyof excludes private/protected members. Nominal audit improves 36/52 -> 40/52; the new 52-case class-export audit improves 22/52 -> 48/52. TS 6.0.3/native TS 7.0.2 both pass 52/52. Remaining nominal failures: static-private values 2, generic arguments 2, private/protected inheritance 8. Imported static-value consumers are next in #523. Checker 4271/4271 and conformance 1417/1417 pass. Original graph admission remains 0/2, without a new timing claim.

9 days ago

Static-value checkpoint #523 is pushed (cdcb60b; docs f5f3681). Home now passes 84/84 static-value controls and 52/52 bound-class controls against TS 6.0.3/native TS 7.0.2. Nominal identity improves 40/52 -> 42/52; private-static identity now passes. Remaining failures are generic arguments (2 controls) and private/protected inheritance (8, including positive cases). #524 tracks generic argument/default/constraint linkage next. Full checker 4274/4274 and conformance 1417/1417 pass. Original graph gates stay 0/2; no timing claim.

9 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.

9 days ago

Follow-up #524 checkpoint is pushed: 0a1e5af / 33ddbef, documented in ed12aa1. Imported generic controls improve 62/120 → 118/120 against verified TS 6.0.3 and native TS 7.0.2 (both 120/120). Nominal controls now pass 44/52 instead of 42/52: both same-owner generic-argument negative controls are fixed. The remaining eight failures are private/protected inherited positive/negative pairs in both root orders; this issue remains open. Full checker 4279/4279 and conformance 1417/1417 pass. No new timings; graph admission remains 0/2. Details: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#imported-generic-class-instantiation-untimed

9 days ago

Follow-up #524 now has a calibrated 216-case recursive-consumer audit: Home 96/216; verified TS 6.0.3 and native TS 7.0.2 each 216/216. Local and imported recursive gaps remain visible; nonrecursive calibration passes all 24 controls. Pool-owned generic-definition/transfer foundation c6c6c66 and docs/README 98e39c6 are pushed; lazy evaluation is not yet connected. Existing nominal result stays 44/52, with inheritance work here still open. Full checker 4282/4282 and conformance 1417/1417 pass. Details: https://github.com/home-lang/home/blob/main/docs/docs/TS_PERFORMANCE.md#recursive-generic-consumer-baseline-untimed

9 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.

9 days ago

Current-main completion audit on 60aa00a (fresh home-tsc SHA-256 c5b4cdbc9b66b84ffe84cb0270f6c1d1e107d6e4a093931c926dadad93b6ba94): the unchanged 52-case nominal-origin audit passes 52/52 for Home, TypeScript 6.0.3 and native TypeScript 7.0.2 (156/156 compiler checks). The unchanged imported-owner audit passes 20/20 for each (60/60 checks). Both include positive/appended-negative cases in both root orders; the nominal audit includes direct, nested, array, function, generic, alias, static-private, keyof, and private/protected inherited origins. Full current checker gate passes 4,655/4,655 under the 3,840 MB guard; current-source Program 333/333 and CLI 81/81 were verified in the preceding pushed batch. Source inspection finds declaration_origin transfer/relation handling and no synthetic _home_class_origin in checker/Program Zig code. The existing #487 completion report already records 52/52 and 20/20; this is a current-source revalidation and issue closure, not a new implementation commit, a fresh benchmark, or a universal claim about all generic/class behavior. Broader generic semantics remain tracked in #524 and overall performance in #416.

Sign in to comment on this issue.