Generated 2026-10-04 · upstream pin
1f70213d4922b434345f639b441681e470c7cfc1Status
Rendered by cargo xtask status from status/parity, status/perf, PORTS.toml, data/go-functions.tsv and the markers. Markdown · Unmapped functions
Suite parity
Each expectation file names every failing sub-test of its suite; CI requires the observed failures to equal it. An approved entry still fails.
| Suite | Pin | Variants | Failing sub-tests | Approved |
|---|---|---|---|---|
| compiler | ledger pin | 13432 | 13 | 0 |
| compiler-concurrent | ledger pin | 13432 | 13 | 0 |
| transpile | ledger pin | 28 | 0 | 0 |
| tsc | ledger pin | 516 | 2 | 2 |
compiler
compiler/computedEnumTypeWidening.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/enumLiteralUnionNotWidened.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/enumNaNValues.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/numericEnumMappedType.ts/output: declaration emit ofconst x = E.ONEwrites= E.ONEwhere the pin writes: E.ONE; the same enum-literal cause as the .types entries. Fix in its own PR.compiler/parseEntityNameWithReservedWord.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/strictModeEnumMemberNameReserved.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes1.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes2.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes3.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/mappedTypeOverlappingStringEnumKeys.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes1.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes2.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes3.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.
compiler-concurrent
compiler/computedEnumTypeWidening.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/enumLiteralUnionNotWidened.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/enumNaNValues.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/numericEnumMappedType.ts/output: declaration emit ofconst x = E.ONEwrites= E.ONEwhere the pin writes: E.ONE; the same enum-literal cause as the .types entries. Fix in its own PR.compiler/parseEntityNameWithReservedWord.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.compiler/strictModeEnumMemberNameReserved.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes1.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes2.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/enumLiteralTypes3.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/mappedTypeOverlappingStringEnumKeys.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes1.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes2.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.conformance/stringEnumLiteralTypes3.ts/type: enum literal types: a mutable location keeps the member type (a : E.A) where the pin widens it to the enum (a : E), and an enum-literal union prints its members where the pin prints the alias; first seen on the first expectation-file run, after Phase 2 closed; candidate cause 6245f59b (Phase 3, enum evaluation). Fix in its own PR.
transpile
No failing sub-tests.
tsc
tsc/generateTrace/generateTrace-generates-types-file.js/transcript: eager binding changes the parse/bind trace prefix: Rust binds each exclusive parsed file before publication during loading, Go binds published files later; only the createProgram/parse/bind trace events and their timestamps differ, the type dumps, legend, diagnostics and emitted bytes match Approved: owner 2026-10-02, Phase 4 decision 15 (docs/PHASE4-X6.md); carried from data/divergences.toml P4-eager-bind-trace-ordertsc/generateTrace/generateTrace-with-multiple-files-and-complex-types.js/transcript: eager binding changes the parse/bind trace prefix: Rust binds each exclusive parsed file before publication during loading, Go binds published files later; only the createProgram/parse/bind trace events and their timestamps differ, the type dumps, legend, diagnostics and emitted bytes match Approved: owner 2026-10-02, Phase 4 decision 15 (docs/PHASE4-X6.md); carried from data/divergences.toml P4-eager-bind-trace-order
Performance
Ratios are Rust over Go, one row per recorded run.
checker
| Recorded | Revision | Host | allocated_bytes | elapsed | retained_bytes | throughput | type_footprint |
|---|---|---|---|---|---|---|---|
| 2026-09-19T04:03:06Z | b5aca216 | owner quiet host (macOS arm64, 18 CPUs) | 0.571 | 2.125 | 1.413 | 0.471 | 0.812 (threshold 0.85) |
parse-bind
| Recorded | Revision | Host | allocated_bytes | eight_threads_wall_time | one_thread_wall_time | peak_rss | workers_1_allocated_bytes | workers_1_peak_rss_bytes | workers_1_wall_time_ns | workers_8_allocated_bytes | workers_8_peak_rss_bytes | workers_8_wall_time_ns |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-19T00:59:09Z | b5aca216 | owner quiet host (macOS arm64, 18 CPUs) | 0.700 (threshold 0.85) | 1.399 (threshold 1.45) | 1.153 (threshold 1.25) | 0.700 (threshold 0.85) | 0.700 | 0.700 | 1.153 | 0.700 | 0.698 | 1.399 |
Port coverage
Function counts measure mapping by port: markers, not semantic completeness. Ported tests are the distinct Go tests named by source: <path>_test.go:<Name> comments.
| Files in scope (source and generated) | 456 |
| Files ported | 200 (147399 of 291215 lines, 50.6%) |
| Mapped upstream functions | 7538 of 11485 (65.6%) |
| Ported upstream tests | 173 |
| Ported entries stale against the pin | 0 |
By phase
| Phase | Planned | Lines | In progress | Lines | Ported | Lines | Out of scope | Lines |
|---|---|---|---|---|---|---|---|---|
| 0 | 8 | 444 | 12 | 30957 | 16 | 6482 | 0 | 0 |
| 1 | 38 | 3773 | 60 | 20876 | 8 | 14479 | 6 | 684 |
| 2 | 0 | 0 | 0 | 0 | 44 | 67266 | 0 | 0 |
| 3 | 0 | 0 | 0 | 0 | 73 | 39625 | 0 | 0 |
| 4 | 4 | 224 | 0 | 0 | 58 | 19476 | 11 | 1555 |
| 5 | 109 | 74909 | 15 | 5467 | 1 | 71 | 0 | 0 |
| 6 | 9 | 6997 | 0 | 0 | 0 | 0 | 2 | 1027 |
| 7 | 1 | 169 | 0 | 0 | 0 | 0 | 0 | 0 |
By crate
| Crate | Planned | Lines | In progress | Lines | Ported | Lines | Out of scope | Lines |
|---|---|---|---|---|---|---|---|---|
tsr | 3 | 222 | 0 | 0 | 2 | 171 | 3 | 57 |
tsr_api | 6 | 6669 | 0 | 0 | 0 | 0 | 1 | 1008 |
tsr_ast | 7 | 430 | 8 | 19685 | 8 | 2090 | 0 | 0 |
tsr_astnav | 0 | 0 | 1 | 793 | 0 | 0 | 0 | 0 |
tsr_autoimport | 11 | 5400 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_binder | 0 | 0 | 3 | 3570 | 0 | 0 | 0 | 0 |
tsr_build | 0 | 0 | 0 | 0 | 6 | 2075 | 0 | 0 |
tsr_bundled | 1 | 452 | 3 | 393 | 0 | 0 | 2 | 183 |
tsr_checker | 0 | 0 | 0 | 0 | 25 | 60703 | 0 | 0 |
tsr_collections | 4 | 394 | 3 | 446 | 0 | 0 | 0 | 0 |
tsr_compiler | 2 | 234 | 0 | 0 | 12 | 6362 | 0 | 0 |
tsr_contentmapper | 0 | 0 | 0 | 0 | 4 | 1977 | 0 | 0 |
tsr_core | 18 | 1019 | 8 | 1737 | 2 | 72 | 0 | 0 |
tsr_declarations | 0 | 0 | 0 | 0 | 5 | 4212 | 0 | 0 |
tsr_diagnostics | 3 | 337 | 0 | 0 | 1 | 8854 | 2 | 467 |
tsr_diagnosticwriter | 0 | 0 | 0 | 0 | 1 | 610 | 0 | 0 |
tsr_encoder | 0 | 0 | 0 | 0 | 5 | 3232 | 0 | 0 |
tsr_execute | 0 | 0 | 0 | 0 | 4 | 1573 | 0 | 0 |
tsr_format | 0 | 0 | 10 | 4259 | 0 | 0 | 0 | 0 |
tsr_fswatch | 0 | 0 | 0 | 0 | 13 | 4163 | 6 | 1369 |
tsr_glob | 1 | 349 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_incremental | 0 | 0 | 0 | 0 | 11 | 3535 | 0 | 0 |
tsr_ipc | 3 | 328 | 0 | 0 | 5 | 625 | 1 | 19 |
tsr_jsnum | 1 | 177 | 1 | 66 | 1 | 341 | 0 | 0 |
tsr_json | 0 | 0 | 1 | 100 | 0 | 0 | 0 | 0 |
tsr_jsonrpc | 0 | 0 | 0 | 0 | 2 | 287 | 0 | 0 |
tsr_locale | 1 | 40 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_ls | 46 | 34857 | 5 | 1208 | 1 | 71 | 0 | 0 |
tsr_lsp | 6 | 3734 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_lsproto | 6 | 18325 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_module | 1 | 134 | 4 | 2799 | 0 | 0 | 0 | 0 |
tsr_modulespecifiers | 0 | 0 | 0 | 0 | 5 | 2287 | 0 | 0 |
tsr_nodebuilder | 0 | 0 | 0 | 0 | 1 | 78 | 0 | 0 |
tsr_outputpaths | 0 | 0 | 0 | 0 | 2 | 314 | 0 | 0 |
tsr_packagejson | 0 | 0 | 6 | 684 | 0 | 0 | 0 | 0 |
tsr_parser | 1 | 14 | 2 | 8209 | 3 | 879 | 0 | 0 |
tsr_pprof | 1 | 169 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_printer | 0 | 0 | 0 | 0 | 17 | 11749 | 0 | 0 |
tsr_project | 39 | 12361 | 0 | 0 | 0 | 0 | 0 | 0 |
tsr_pseudochecker | 0 | 0 | 0 | 0 | 3 | 1126 | 0 | 0 |
tsr_scanner | 0 | 0 | 2 | 3063 | 2 | 1267 | 0 | 0 |
tsr_semver | 0 | 0 | 2 | 712 | 0 | 0 | 0 | 0 |
tsr_sourcemap | 0 | 0 | 0 | 0 | 6 | 1021 | 0 | 0 |
tsr_stringutil | 3 | 149 | 1 | 371 | 3 | 5044 | 0 | 0 |
tsr_testutil | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 7 |
tsr_tracing | 0 | 0 | 0 | 0 | 1 | 763 | 0 | 0 |
tsr_transformers | 0 | 0 | 0 | 0 | 36 | 20182 | 0 | 0 |
tsr_transpile | 0 | 0 | 0 | 0 | 2 | 302 | 0 | 0 |
tsr_tsc | 0 | 0 | 0 | 0 | 7 | 1331 | 0 | 0 |
tsr_tsoptions | 2 | 456 | 16 | 6100 | 0 | 0 | 0 | 0 |
tsr_tspath | 1 | 18 | 2 | 1477 | 0 | 0 | 0 | 0 |
tsr_vfs | 2 | 248 | 9 | 1628 | 4 | 103 | 3 | 156 |
By package
The unmapped functions of each package are listed in unmapped-functions.json, beside this page.
| Package | Functions | Mapped | Ported tests |
|---|---|---|---|
cmd/tsc | 25 | 19 (76.0%) | 1 |
internal/api | 251 | 0 (0.0%) | 0 |
internal/api/encoder | 67 | 67 (100.0%) | 0 |
internal/ast | 839 | 728 (86.8%) | 0 |
internal/astnav | 18 | 17 (94.4%) | 0 |
internal/binder | 195 | 190 (97.4%) | 0 |
internal/bundled | 28 | 7 (25.0%) | 0 |
internal/checker | 2879 | 2119 (73.6%) | 0 |
internal/collections | 84 | 81 (96.4%) | 0 |
internal/compiler | 340 | 254 (74.7%) | 0 |
internal/contentmapper | 78 | 78 (100.0%) | 0 |
internal/core | 178 | 144 (80.9%) | 0 |
internal/debug | 5 | 5 (100.0%) | 0 |
internal/diagnostics | 14 | 7 (50.0%) | 0 |
internal/diagnosticwriter | 40 | 25 (62.5%) | 0 |
internal/evaluator | 5 | 5 (100.0%) | 0 |
internal/execute | 32 | 20 (62.5%) | 0 |
internal/execute/build | 87 | 47 (54.0%) | 2 |
internal/execute/incremental | 175 | 175 (100.0%) | 9 |
internal/execute/tsc | 49 | 46 (93.9%) | 4 |
internal/execute/tsctests | 0 | — | 24 |
internal/execute/watchmanager | 29 | 24 (82.8%) | 7 |
internal/format | 235 | 206 (87.7%) | 0 |
internal/fswatch | 198 | 72 (36.4%) | 123 |
internal/glob | 15 | 9 (60.0%) | 0 |
internal/ipc | 44 | 27 (61.4%) | 0 |
internal/jsnum | 39 | 39 (100.0%) | 0 |
internal/json | 12 | 8 (66.7%) | 0 |
internal/jsonrpc | 20 | 20 (100.0%) | 0 |
internal/locale | 5 | 5 (100.0%) | 0 |
internal/ls | 1035 | 0 (0.0%) | 0 |
internal/ls/autoimport | 180 | 0 (0.0%) | 0 |
internal/ls/change | 68 | 0 (0.0%) | 0 |
internal/ls/lsconv | 38 | 4 (10.5%) | 0 |
internal/ls/lsutil | 91 | 17 (18.7%) | 0 |
internal/lsp | 151 | 0 (0.0%) | 0 |
internal/lsp/lsproto | 50 | 0 (0.0%) | 0 |
internal/lsp/lspwatcher | 23 | 0 (0.0%) | 0 |
internal/module | 105 | 47 (44.8%) | 0 |
internal/modulespecifiers | 53 | 18 (34.0%) | 0 |
internal/nativepath | 4 | 4 (100.0%) | 1 |
internal/osutil | 4 | 2 (50.0%) | 0 |
internal/outputpaths | 22 | 22 (100.0%) | 0 |
internal/packagejson | 38 | 17 (44.7%) | 0 |
internal/parser | 514 | 508 (98.8%) | 0 |
internal/pprof | 7 | 0 (0.0%) | 0 |
internal/printer | 768 | 760 (99.0%) | 0 |
internal/project | 429 | 0 (0.0%) | 0 |
internal/project/ata | 25 | 0 (0.0%) | 0 |
internal/project/background | 4 | 0 (0.0%) | 0 |
internal/project/dirty | 61 | 0 (0.0%) | 0 |
internal/project/logging | 34 | 0 (0.0%) | 0 |
internal/pseudochecker | 72 | 70 (97.2%) | 0 |
internal/scanner | 158 | 157 (99.4%) | 0 |
internal/semver | 25 | 0 (0.0%) | 0 |
internal/sourcemap | 50 | 50 (100.0%) | 0 |
internal/spanmap | 34 | 34 (100.0%) | 0 |
internal/stringutil | 48 | 46 (95.8%) | 0 |
internal/symlinks | 12 | 12 (100.0%) | 0 |
internal/tracing | 20 | 20 (100.0%) | 2 |
internal/transformers | 59 | 59 (100.0%) | 0 |
internal/transformers/declarations | 180 | 180 (100.0%) | 0 |
internal/transformers/estransforms | 407 | 407 (100.0%) | 0 |
internal/transformers/inliners | 3 | 3 (100.0%) | 0 |
internal/transformers/jsxtransforms | 48 | 48 (100.0%) | 0 |
internal/transformers/moduletransforms | 124 | 124 (100.0%) | 0 |
internal/transformers/tstransforms | 141 | 140 (99.3%) | 0 |
internal/transpile | 8 | 8 (100.0%) | 0 |
internal/tsoptions | 196 | 142 (72.4%) | 0 |
internal/tspath | 88 | 87 (98.9%) | 0 |
internal/vfs/cachedvfs | 16 | 16 (100.0%) | 0 |
internal/vfs/internal | 12 | 12 (100.0%) | 0 |
internal/vfs/iovfs | 15 | 15 (100.0%) | 0 |
internal/vfs/osvfs | 23 | 23 (100.0%) | 0 |
internal/vfs/trackingvfs | 12 | 12 (100.0%) | 0 |
internal/vfs/vfsmatch | 31 | 17 (54.8%) | 0 |
internal/vfs/wrapvfs | 13 | 13 (100.0%) | 0 |
Unknown markers
None.