Skip to content

[experiment] Sort intersections #52891

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from

Conversation

jakebailey
Copy link
Member

For #51188, doing this is the difference between OOMing and just taking "too long", because doing this allows us to reuse intersections, compare using fast paths, etc, when producing intersections which are the same but just happen to be in different orders.

To actually do this, we'd need to add origin to intersections too (hence, test failures), but I want to first see what the perf tests say.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Feb 21, 2023
@jakebailey
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 21, 2023

Heya @jakebailey, I've started to run the perf test suite on this PR at 9dec535. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,652k (± 0.01%) 359,656k (± 0.01%) ~ 359,617k 359,696k p=0.688 n=6
Parse Time 3.49s (± 0.72%) 3.49s (± 1.17%) ~ 3.44s 3.54s p=1.000 n=6
Bind Time 1.18s (± 0.35%) 1.17s (± 0.88%) ~ 1.16s 1.19s p=0.257 n=6
Check Time 8.78s (± 0.30%) 8.78s (± 0.51%) ~ 8.72s 8.85s p=0.809 n=6
Emit Time 7.68s (± 0.58%) 7.61s (± 0.78%) -0.08s (- 1.00%) 7.54s 7.67s p=0.024 n=6
Total Time 21.12s (± 0.23%) 21.04s (± 0.49%) ~ 20.94s 21.22s p=0.148 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 191,791k (± 1.50%) 189,257k (± 0.00%) -2,534k (- 1.32%) 189,250k 189,265k p=0.005 n=6
Parse Time 1.49s (± 0.82%) 1.48s (± 0.51%) ~ 1.47s 1.49s p=0.555 n=6
Bind Time 0.80s (± 1.02%) 0.79s (± 0.65%) ~ 0.79s 0.80s p=0.523 n=6
Check Time 9.48s (± 0.59%) 9.43s (± 0.57%) ~ 9.37s 9.52s p=0.172 n=6
Emit Time 2.82s (± 1.37%) 2.78s (± 0.30%) ~ 2.78s 2.80s p=0.072 n=6
Total Time 14.59s (± 0.42%) 14.50s (± 0.41%) ~ 14.43s 14.57s p=0.077 n=6
Monaco - node (v18.10.0, x64)
Memory used 344,036k (± 0.01%) 344,070k (± 0.01%) ~ 343,998k 344,127k p=0.230 n=6
Parse Time 2.62s (± 0.71%) 2.62s (± 0.63%) ~ 2.59s 2.63s p=0.934 n=6
Bind Time 1.04s (± 0.49%) 1.04s (± 0.72%) ~ 1.03s 1.05s p=0.784 n=6
Check Time 7.14s (± 0.30%) 7.14s (± 0.43%) ~ 7.11s 7.19s p=0.625 n=6
Emit Time 4.34s (± 0.81%) 4.33s (± 0.69%) ~ 4.29s 4.37s p=0.629 n=6
Total Time 15.14s (± 0.28%) 15.13s (± 0.40%) ~ 15.03s 15.19s p=1.000 n=6
TFS - node (v18.10.0, x64)
Memory used 300,068k (± 0.01%) 300,072k (± 0.01%) ~ 300,042k 300,090k p=0.630 n=6
Parse Time 2.06s (± 1.16%) 2.04s (± 0.91%) ~ 2.01s 2.06s p=0.324 n=6
Bind Time 1.17s (± 0.35%) 1.17s (± 0.47%) ~ 1.17s 1.18s p=0.282 n=6
Check Time 6.58s (± 0.25%) 6.54s (± 0.41%) -0.04s (- 0.56%) 6.50s 6.57s p=0.019 n=6
Emit Time 3.93s (± 0.48%) 3.92s (± 0.72%) ~ 3.88s 3.95s p=0.746 n=6
Total Time 13.74s (± 0.27%) 13.67s (± 0.29%) -0.06s (- 0.46%) 13.61s 13.72s p=0.013 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,398k (± 0.00%) 474,549k (± 0.01%) -1,849k (- 0.39%) 474,497k 474,594k p=0.005 n=6
Parse Time 3.17s (± 1.17%) 3.16s (± 0.24%) ~ 3.15s 3.17s p=0.291 n=6
Bind Time 0.97s (± 0.53%) 0.96s (± 0.57%) -0.01s (- 0.86%) 0.96s 0.97s p=0.038 n=6
Check Time 17.23s (± 0.86%) 17.17s (± 0.50%) ~ 17.05s 17.28s p=0.686 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.38s (± 0.74%) 21.30s (± 0.40%) ~ 21.18s 21.40s p=0.468 n=6
xstate - node (v18.10.0, x64)
Memory used 548,644k (± 0.03%) 548,377k (± 0.03%) -267k (- 0.05%) 548,087k 548,592k p=0.031 n=6
Parse Time 4.08s (± 0.81%) 4.05s (± 0.72%) ~ 4.02s 4.09s p=0.108 n=6
Bind Time 1.72s (± 0.95%) 1.71s (± 0.88%) ~ 1.70s 1.73s p=0.183 n=6
Check Time 2.83s (± 0.90%) 2.82s (± 0.92%) ~ 2.78s 2.86s p=0.517 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=0.405 n=6
Total Time 8.73s (± 0.46%) 8.67s (± 0.48%) -0.06s (- 0.73%) 8.62s 8.72s p=0.037 n=6
Angular - node (v16.17.1, x64)
Memory used 359,036k (± 0.00%) 359,037k (± 0.01%) ~ 358,981k 359,063k p=0.423 n=6
Parse Time 3.72s (± 0.29%) 3.72s (± 0.40%) ~ 3.70s 3.73s p=0.933 n=6
Bind Time 1.23s (± 0.42%) 1.22s (± 0.68%) ~ 1.22s 1.24s p=0.533 n=6
Check Time 9.54s (± 0.39%) 9.60s (± 0.50%) ~ 9.55s 9.67s p=0.106 n=6
Emit Time 8.08s (± 0.60%) 8.08s (± 0.26%) ~ 8.05s 8.10s p=0.936 n=6
Total Time 22.57s (± 0.31%) 22.62s (± 0.29%) ~ 22.55s 22.70s p=0.227 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 191,545k (± 0.03%) 191,039k (± 0.01%) -506k (- 0.26%) 191,017k 191,072k p=0.005 n=6
Parse Time 1.55s (± 0.86%) 1.56s (± 1.48%) ~ 1.53s 1.59s p=0.418 n=6
Bind Time 0.84s (± 0.48%) 0.84s (± 0.89%) ~ 0.83s 0.85s p=1.000 n=6
Check Time 10.11s (± 0.40%) 10.07s (± 0.64%) ~ 10.00s 10.19s p=0.170 n=6
Emit Time 3.05s (± 0.68%) 3.06s (± 1.07%) ~ 3.01s 3.10s p=0.373 n=6
Total Time 15.56s (± 0.35%) 15.54s (± 0.55%) ~ 15.44s 15.66s p=0.747 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,347k (± 0.01%) 343,344k (± 0.00%) ~ 343,328k 343,366k p=0.873 n=6
Parse Time 2.79s (± 0.67%) 2.79s (± 0.87%) ~ 2.76s 2.83s p=1.000 n=6
Bind Time 1.12s (± 0.36%) 1.12s (± 0.46%) ~ 1.11s 1.12s p=0.595 n=6
Check Time 7.81s (± 0.39%) 7.82s (± 0.51%) ~ 7.78s 7.89s p=0.746 n=6
Emit Time 4.51s (± 0.47%) 4.53s (± 0.96%) ~ 4.50s 4.62s p=0.291 n=6
Total Time 16.23s (± 0.26%) 16.26s (± 0.39%) ~ 16.19s 16.35s p=0.376 n=6
TFS - node (v16.17.1, x64)
Memory used 299,416k (± 0.00%) 299,429k (± 0.01%) ~ 299,408k 299,452k p=0.107 n=6
Parse Time 2.21s (± 0.92%) 2.20s (± 0.85%) ~ 2.18s 2.22s p=0.410 n=6
Bind Time 1.26s (± 0.60%) 1.26s (± 1.30%) ~ 1.23s 1.28s p=0.548 n=6
Check Time 7.24s (± 0.33%) 7.25s (± 0.57%) ~ 7.19s 7.30s p=1.000 n=6
Emit Time 4.24s (± 0.75%) 4.23s (± 0.96%) ~ 4.16s 4.27s p=0.808 n=6
Total Time 14.95s (± 0.41%) 14.93s (± 0.25%) ~ 14.89s 14.98s p=0.570 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,712k (± 0.00%) 473,848k (± 0.00%) -1,865k (- 0.39%) 473,828k 473,879k p=0.005 n=6
Parse Time 3.34s (± 0.65%) 3.33s (± 0.27%) ~ 3.32s 3.34s p=0.934 n=6
Bind Time 1.02s (± 0.82%) 1.02s (± 0.00%) ~ 1.02s 1.02s p=0.176 n=6
Check Time 18.19s (± 0.47%) 18.25s (± 0.69%) ~ 18.14s 18.48s p=0.521 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.55s (± 0.39%) 22.61s (± 0.55%) ~ 22.49s 22.83s p=0.630 n=6
xstate - node (v16.17.1, x64)
Memory used 546,069k (± 0.02%) 545,774k (± 0.01%) -295k (- 0.05%) 545,712k 545,877k p=0.005 n=6
Parse Time 4.25s (± 0.15%) 4.26s (± 0.18%) ~ 4.25s 4.27s p=0.081 n=6
Bind Time 1.82s (± 0.58%) 1.82s (± 0.64%) ~ 1.80s 1.83s p=0.619 n=6
Check Time 3.07s (± 0.53%) 3.04s (± 0.83%) -0.03s (- 1.14%) 3.00s 3.07s p=0.029 n=6
Emit Time 0.09s (± 4.45%) 0.09s (± 4.45%) ~ 0.09s 0.10s p=1.000 n=6
Total Time 9.23s (± 0.25%) 9.21s (± 0.40%) ~ 9.16s 9.25s p=0.294 n=6
Angular - node (v14.15.1, x64)
Memory used 352,590k (± 0.01%) 352,568k (± 0.00%) -22k (- 0.01%) 352,553k 352,583k p=0.045 n=6
Parse Time 3.74s (± 0.58%) 3.71s (± 0.56%) -0.04s (- 1.02%) 3.68s 3.73s p=0.023 n=6
Bind Time 1.28s (± 0.32%) 1.28s (± 0.59%) ~ 1.27s 1.29s p=1.000 n=6
Check Time 9.86s (± 0.52%) 9.88s (± 0.51%) ~ 9.82s 9.95s p=0.685 n=6
Emit Time 8.37s (± 0.42%) 8.36s (± 0.37%) ~ 8.33s 8.41s p=0.687 n=6
Total Time 23.25s (± 0.27%) 23.23s (± 0.32%) ~ 23.12s 23.31s p=0.748 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 188,279k (± 0.93%) 186,014k (± 0.02%) -2,265k (- 1.20%) 185,979k 186,061k p=0.005 n=6
Parse Time 1.58s (± 0.52%) 1.58s (± 0.48%) ~ 1.57s 1.59s p=0.306 n=6
Bind Time 0.86s (± 0.47%) 0.86s (± 0.64%) ~ 0.85s 0.86s p=0.054 n=6
Check Time 10.28s (± 0.36%) 10.24s (± 0.53%) ~ 10.16s 10.31s p=0.227 n=6
Emit Time 3.18s (± 1.05%) 3.16s (± 1.49%) ~ 3.10s 3.23s p=0.627 n=6
Total Time 15.89s (± 0.41%) 15.84s (± 0.51%) ~ 15.70s 15.95s p=0.199 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,202k (± 0.02%) 338,187k (± 0.00%) ~ 338,168k 338,202k p=0.936 n=6
Parse Time 2.89s (± 0.40%) 2.90s (± 0.47%) ~ 2.89s 2.93s p=0.117 n=6
Bind Time 1.12s (± 0.75%) 1.12s (± 0.49%) ~ 1.11s 1.12s p=0.855 n=6
Check Time 8.13s (± 0.58%) 8.12s (± 0.59%) ~ 8.07s 8.19s p=0.809 n=6
Emit Time 4.80s (± 0.70%) 4.78s (± 0.47%) ~ 4.74s 4.80s p=0.332 n=6
Total Time 16.94s (± 0.41%) 16.92s (± 0.34%) ~ 16.85s 17.01s p=0.628 n=6
TFS - node (v14.15.1, x64)
Memory used 294,360k (± 0.00%) 294,346k (± 0.00%) ~ 294,336k 294,367k p=0.054 n=6
Parse Time 2.39s (± 0.84%) 2.39s (± 0.81%) ~ 2.37s 2.42s p=0.934 n=6
Bind Time 1.12s (± 2.09%) 1.09s (± 0.50%) ~ 1.09s 1.10s p=0.154 n=6
Check Time 7.55s (± 0.31%) 7.56s (± 0.46%) ~ 7.50s 7.59s p=0.571 n=6
Emit Time 4.64s (± 0.96%) 4.63s (± 0.74%) ~ 4.59s 4.68s p=0.871 n=6
Total Time 15.70s (± 0.43%) 15.67s (± 0.24%) ~ 15.60s 15.70s p=0.809 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,244k (± 0.01%) 469,393k (± 0.00%) -1,851k (- 0.39%) 469,371k 469,410k p=0.005 n=6
Parse Time 3.53s (± 0.42%) 3.48s (± 0.35%) -0.04s (- 1.28%) 3.47s 3.50s p=0.005 n=6
Bind Time 1.04s (± 0.49%) 1.04s (± 1.12%) ~ 1.02s 1.05s p=0.929 n=6
Check Time 19.31s (± 0.61%) 19.11s (± 0.39%) -0.20s (- 1.05%) 19.00s 19.19s p=0.020 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.88s (± 0.46%) 23.63s (± 0.26%) -0.25s (- 1.05%) 23.53s 23.69s p=0.005 n=6
xstate - node (v14.15.1, x64)
Memory used 534,480k (± 0.01%) 534,220k (± 0.01%) -260k (- 0.05%) 534,185k 534,274k p=0.005 n=6
Parse Time 4.60s (± 0.56%) 4.58s (± 0.43%) ~ 4.55s 4.60s p=0.277 n=6
Bind Time 1.73s (± 0.52%) 1.72s (± 0.44%) ~ 1.71s 1.73s p=0.053 n=6
Check Time 3.16s (± 0.73%) 3.20s (± 0.78%) ~ 3.17s 3.23s p=0.063 n=6
Emit Time 0.10s (± 4.01%) 0.10s (± 0.00%) ~ 0.10s 0.10s p=0.405 n=6
Total Time 9.59s (± 0.44%) 9.60s (± 0.34%) ~ 9.54s 9.63s p=0.747 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

TSServer

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,390ms (± 0.31%) 2,372ms (± 0.51%) -19ms (- 0.77%) 2,359ms 2,385ms p=0.030 n=6
Req 2 - geterr 5,392ms (± 0.36%) 5,377ms (± 0.58%) ~ 5,347ms 5,422ms p=0.298 n=6
Req 3 - references 340ms (± 0.74%) 342ms (± 1.47%) ~ 336ms 348ms p=0.467 n=6
Req 4 - navto 283ms (± 0.82%) 281ms (± 0.49%) -3ms (- 1.00%) 278ms 282ms p=0.043 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 72ms (± 0.88%) 72ms (± 0.57%) ~ 71ms 72ms p=0.673 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,524ms (± 0.70%) 2,497ms (± 0.90%) -27ms (- 1.06%) 2,480ms 2,542ms p=0.044 n=6
Req 2 - geterr 4,038ms (± 0.56%) 4,065ms (± 0.57%) ~ 4,028ms 4,087ms p=0.066 n=6
Req 3 - references 353ms (± 0.44%) 351ms (± 0.63%) ~ 348ms 353ms p=0.357 n=6
Req 4 - navto 288ms (± 0.49%) 287ms (± 0.75%) ~ 285ms 290ms p=0.514 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 69ms (± 4.86%) 71ms (± 9.83%) ~ 67ms 85ms p=0.285 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,202ms (± 0.34%) 3,190ms (± 0.49%) ~ 3,166ms 3,209ms p=0.128 n=6
Req 2 - geterr 1,646ms (± 0.65%) 1,681ms (± 0.82%) +35ms (+ 2.13%) 1,666ms 1,698ms p=0.005 n=6
Req 3 - references 104ms (± 1.01%) 105ms (± 1.00%) ~ 103ms 106ms p=0.160 n=6
Req 4 - navto 357ms (± 0.46%) 358ms (± 0.78%) ~ 354ms 361ms p=0.513 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 428ms (± 1.65%) 431ms (± 0.83%) ~ 427ms 436ms p=0.520 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,529ms (± 0.50%) 2,531ms (± 0.68%) ~ 2,510ms 2,550ms p=0.936 n=6
Req 2 - geterr 5,775ms (± 0.63%) 5,746ms (± 0.62%) ~ 5,697ms 5,799ms p=0.173 n=6
Req 3 - references 354ms (± 1.38%) 355ms (± 1.59%) ~ 350ms 364ms p=0.936 n=6
Req 4 - navto 280ms (± 0.84%) 281ms (± 0.30%) ~ 280ms 282ms p=0.405 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 81ms (± 5.30%) 81ms (± 4.61%) ~ 77ms 85ms p=0.743 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,705ms (± 0.85%) 2,700ms (± 0.51%) ~ 2,677ms 2,716ms p=0.810 n=6
Req 2 - geterr 4,390ms (± 0.40%) 4,395ms (± 0.45%) ~ 4,365ms 4,415ms p=0.575 n=6
Req 3 - references 367ms (± 0.42%) 366ms (± 1.18%) ~ 361ms 371ms p=1.000 n=6
Req 4 - navto 283ms (± 0.80%) 282ms (± 0.86%) ~ 278ms 285ms p=0.568 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 73ms (± 1.42%) 74ms (± 1.11%) ~ 73ms 75ms p=0.121 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,375ms (± 0.39%) 3,380ms (± 0.49%) ~ 3,359ms 3,398ms p=0.423 n=6
Req 2 - geterr 1,823ms (± 1.23%) 1,882ms (± 3.49%) +59ms (+ 3.23%) 1,844ms 2,015ms p=0.020 n=6
Req 3 - references 113ms (± 1.33%) 113ms (± 1.84%) ~ 110ms 115ms p=0.871 n=6
Req 4 - navto 346ms (± 1.36%) 344ms (± 0.85%) ~ 341ms 348ms p=0.293 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 433ms (± 0.74%) 438ms (± 0.93%) ~ 430ms 442ms p=0.088 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,618ms (± 0.77%) 2,605ms (± 0.72%) ~ 2,584ms 2,636ms p=0.228 n=6
Req 2 - geterr 6,087ms (± 0.44%) 6,087ms (± 0.31%) ~ 6,058ms 6,107ms p=1.000 n=6
Req 3 - references 367ms (± 0.47%) 365ms (± 0.39%) ~ 363ms 367ms p=0.089 n=6
Req 4 - navto 278ms (± 0.54%) 277ms (± 0.29%) ~ 276ms 278ms p=0.235 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 101ms (± 0.51%) 101ms (± 0.40%) ~ 100ms 101ms p=0.114 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,849ms (± 0.92%) 2,840ms (± 0.63%) ~ 2,808ms 2,857ms p=0.128 n=6
Req 2 - geterr 4,625ms (± 2.45%) 4,518ms (± 1.91%) ~ 4,443ms 4,686ms p=0.199 n=6
Req 3 - references 381ms (± 0.51%) 387ms (± 5.00%) ~ 374ms 426ms p=0.803 n=6
Req 4 - navto 293ms (± 1.11%) 294ms (± 1.25%) ~ 288ms 297ms p=0.515 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 88ms (±11.12%) 92ms (±10.24%) ~ 83ms 102ms p=0.168 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,698ms (± 0.42%) 3,684ms (± 0.49%) ~ 3,660ms 3,713ms p=0.230 n=6
Req 2 - geterr 1,862ms (± 2.04%) 1,819ms (± 1.63%) ~ 1,784ms 1,857ms p=0.109 n=6
Req 3 - references 125ms (± 0.84%) 129ms (± 2.22%) +5ms (+ 3.88%) 125ms 132ms p=0.012 n=6
Req 4 - navto 373ms (± 2.01%) 374ms (± 0.55%) ~ 370ms 376ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 444ms (± 0.98%) 457ms (± 2.01%) +13ms (+ 2.96%) 448ms 473ms p=0.010 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

Startup

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.13ms (± 0.22%) 142.29ms (± 0.22%) +0.16ms (+ 0.11%) 141.60ms 151.49ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.14ms (± 0.13%) 226.58ms (± 0.13%) +0.44ms (+ 0.20%) 225.73ms 230.53ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.03ms (± 0.15%) 228.41ms (± 0.15%) +0.38ms (+ 0.16%) 227.48ms 232.58ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 208.94ms (± 0.17%) 209.33ms (± 0.15%) +0.40ms (+ 0.19%) 208.52ms 214.21ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

Developer Information:

Download Benchmark

@DanielRosenwasser
Copy link
Member

DanielRosenwasser commented Feb 21, 2023

Nice job finding other possible wins here - the "fast path" I described in our chat was actually in someTypeRelatedToType.

That function has some code that can now take advantage of intersections being sorted as well:

- if (source.flags & TypeFlags.Union && containsType(sourceTypes, target)) {
+ if (containsType(sourceTypes, target)) {
      return Ternary.True;
  }

@fatcerberus
Copy link

The question is: is the sorting itself a perf issue? I recall it being mentioned that perf was the primary reason unions aren't sorted, though to be fair intersections are much less common than unions.

Also wasn't there an issue where stuff like {} & string is treated differently from string & {} that this might exacerbate?

@jakebailey
Copy link
Member Author

jakebailey commented Feb 21, 2023

To the former point, I would think unions are more common and therefore the fact that this PR doesn't seem to cause a massive regression is a good sign. I haven't gone through and "enabled" all of the other wins.

For the latter, yes, I need to figure that out. But, all of the tests (except one) fail just because this PR doesn't have the origin type thing to preserve the "looks" of intersections. So I'm hopeful I can make everything consistent.

@fatcerberus
Copy link

To the former point, I would think unions are more common

Yep, hence my "to be fair" caveat.

// TODO(jakebailey): we already have insertSorted and should use it here (adding the perf optimization?)
const len = types.length;
// Perf optimization (measure?); check the last element first as we often insert in order.
const index = len && type.id > types[len - 1].id ? ~len : binarySearch(types, type, getTypeId, compareValues);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this perf optimization specifically and I don't think it actually helps...

@jakebailey
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 21, 2023

Heya @jakebailey, I've started to run the perf test suite on this PR at 56c9459. You can monitor the build here.

Update: The results are in!

@jakebailey
Copy link
Member Author

jakebailey commented Feb 21, 2023

RE: #51188 this PR with the suggestion above turns into a huge win, not only fixing the problem I'm looking into but making it 40% faster than TS 4.6. Very interested in what the perf test is going to report.

@DanielRosenwasser
Copy link
Member

Sweet! I'll also mention - even if you don't end up sorting intersection types by their IDs due to other concerns, you can still add a linear walk over every type. That'll provide earlier bail-outs without having to deeply explore every preceding type.

@jakebailey
Copy link
Member Author

Sweet! I'll also mention - even if you don't end up sorting intersection types by their IDs due to other concerns, you can still add a linear walk over every type. That'll provide earlier bail-outs without having to deeply explore every preceding type.

Oh, that's a good idea. I'll have to try that for #51188. We have to go over the intersection's types anyway so another linear iteration seems fine.

@jakebailey
Copy link
Member Author

Ugh nevermind I screwed up; I had commented out the slow code in my example...

There's still a benefit, but it goes from 40s to 30s. I mean, still good.

@DanielRosenwasser
Copy link
Member

I will happily take a 25% speed-up 😄

Still, sounds like we can do better for that issue.

@jakebailey
Copy link
Member Author

Hm, not sure where my 40s number came from anymore, because now it's 30 without the last commit too. I'm going to stop giving updates before I make myself look any sillier.

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,660k (± 0.01%) 359,656k (± 0.01%) ~ 359,619k 359,708k p=0.810 n=6
Parse Time 3.48s (± 0.83%) 3.48s (± 1.11%) ~ 3.45s 3.55s p=1.000 n=6
Bind Time 1.18s (± 0.69%) 1.18s (± 0.69%) ~ 1.17s 1.19s p=1.000 n=6
Check Time 8.75s (± 0.22%) 8.81s (± 0.67%) +0.06s (+ 0.70%) 8.75s 8.90s p=0.035 n=6
Emit Time 7.59s (± 0.69%) 7.63s (± 0.66%) ~ 7.56s 7.70s p=0.199 n=6
Total Time 20.99s (± 0.25%) 21.10s (± 0.59%) ~ 20.94s 21.27s p=0.126 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 190,827k (± 1.20%) 190,157k (± 1.19%) -671k (- 0.35%) 189,171k 194,789k p=0.045 n=6
Parse Time 1.48s (± 0.79%) 1.49s (± 0.99%) ~ 1.47s 1.51s p=0.324 n=6
Bind Time 0.80s (± 0.65%) 0.79s (± 0.69%) ~ 0.79s 0.80s p=0.640 n=6
Check Time 9.44s (± 0.73%) 9.45s (± 0.33%) ~ 9.42s 9.50s p=0.419 n=6
Emit Time 2.81s (± 1.06%) 2.80s (± 0.50%) ~ 2.78s 2.82s p=0.517 n=6
Total Time 14.52s (± 0.52%) 14.53s (± 0.32%) ~ 14.49s 14.59s p=0.629 n=6
Monaco - node (v18.10.0, x64)
Memory used 344,041k (± 0.01%) 344,074k (± 0.01%) ~ 344,018k 344,135k p=0.149 n=6
Parse Time 2.64s (± 0.94%) 2.62s (± 0.88%) ~ 2.59s 2.65s p=0.375 n=6
Bind Time 1.04s (± 0.61%) 1.04s (± 0.86%) ~ 1.03s 1.05s p=1.000 n=6
Check Time 7.13s (± 0.27%) 7.16s (± 0.80%) ~ 7.09s 7.24s p=0.627 n=6
Emit Time 4.31s (± 0.63%) 4.35s (± 0.96%) ~ 4.28s 4.40s p=0.148 n=6
Total Time 15.12s (± 0.26%) 15.16s (± 0.39%) ~ 15.08s 15.22s p=0.198 n=6
TFS - node (v18.10.0, x64)
Memory used 300,073k (± 0.00%) 300,077k (± 0.00%) ~ 300,067k 300,102k p=0.936 n=6
Parse Time 2.06s (± 1.35%) 2.05s (± 0.72%) ~ 2.03s 2.07s p=0.684 n=6
Bind Time 1.17s (± 0.54%) 1.18s (± 1.04%) ~ 1.17s 1.20s p=0.599 n=6
Check Time 6.57s (± 0.34%) 6.57s (± 0.41%) ~ 6.54s 6.60s p=0.935 n=6
Emit Time 3.95s (± 0.67%) 3.94s (± 0.78%) ~ 3.90s 3.97s p=0.420 n=6
Total Time 13.74s (± 0.40%) 13.73s (± 0.37%) ~ 13.66s 13.79s p=0.688 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,418k (± 0.01%) 474,542k (± 0.01%) -1,875k (- 0.39%) 474,496k 474,576k p=0.005 n=6
Parse Time 3.16s (± 0.59%) 3.17s (± 0.76%) ~ 3.15s 3.21s p=0.254 n=6
Bind Time 0.97s (± 0.42%) 0.97s (± 0.77%) ~ 0.96s 0.98s p=0.389 n=6
Check Time 17.25s (± 0.23%) 17.20s (± 0.52%) ~ 17.09s 17.34s p=0.294 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.38s (± 0.22%) 21.35s (± 0.50%) ~ 21.21s 21.52s p=0.470 n=6
xstate - node (v18.10.0, x64)
Memory used 548,528k (± 0.03%) 548,216k (± 0.01%) -312k (- 0.06%) 548,129k 548,300k p=0.005 n=6
Parse Time 4.07s (± 0.57%) 4.08s (± 0.92%) ~ 4.03s 4.12s p=0.629 n=6
Bind Time 1.72s (± 1.02%) 1.73s (± 0.73%) ~ 1.71s 1.74s p=0.187 n=6
Check Time 2.82s (± 0.59%) 2.82s (± 0.83%) ~ 2.78s 2.84s p=1.000 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 6.19%) ~ 0.08s 0.09s p=0.176 n=6
Total Time 8.69s (± 0.43%) 8.71s (± 0.56%) ~ 8.65s 8.76s p=0.572 n=6
Angular - node (v16.17.1, x64)
Memory used 359,039k (± 0.01%) 359,048k (± 0.01%) ~ 359,004k 359,075k p=0.689 n=6
Parse Time 3.74s (± 0.37%) 3.74s (± 0.55%) ~ 3.70s 3.76s p=0.801 n=6
Bind Time 1.23s (± 0.33%) 1.23s (± 0.61%) ~ 1.22s 1.24s p=1.000 n=6
Check Time 9.56s (± 0.79%) 9.60s (± 0.46%) ~ 9.54s 9.64s p=0.335 n=6
Emit Time 8.06s (± 0.54%) 8.07s (± 0.62%) ~ 7.98s 8.13s p=1.000 n=6
Total Time 22.59s (± 0.45%) 22.64s (± 0.35%) ~ 22.53s 22.76s p=0.469 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 191,533k (± 0.03%) 190,951k (± 0.02%) -582k (- 0.30%) 190,876k 191,007k p=0.005 n=6
Parse Time 1.57s (± 0.88%) 1.55s (± 1.13%) ~ 1.54s 1.58s p=0.366 n=6
Bind Time 0.84s (± 0.00%) 0.84s (± 0.00%) ~ 0.84s 0.84s p=1.000 n=6
Check Time 10.12s (± 0.64%) 10.08s (± 0.71%) ~ 10.02s 10.19s p=0.229 n=6
Emit Time 3.05s (± 0.56%) 3.05s (± 0.38%) ~ 3.04s 3.07s p=1.000 n=6
Total Time 15.57s (± 0.44%) 15.53s (± 0.47%) ~ 15.44s 15.65s p=0.335 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,346k (± 0.00%) 343,333k (± 0.00%) ~ 343,318k 343,347k p=0.173 n=6
Parse Time 2.81s (± 0.65%) 2.81s (± 0.95%) ~ 2.77s 2.85s p=0.627 n=6
Bind Time 1.12s (± 0.56%) 1.12s (± 0.36%) ~ 1.11s 1.12s p=0.673 n=6
Check Time 7.80s (± 0.32%) 7.81s (± 0.35%) ~ 7.78s 7.84s p=0.743 n=6
Emit Time 4.54s (± 0.66%) 4.52s (± 0.91%) ~ 4.48s 4.59s p=0.574 n=6
Total Time 16.27s (± 0.05%) 16.25s (± 0.54%) ~ 16.18s 16.40s p=0.375 n=6
TFS - node (v16.17.1, x64)
Memory used 299,418k (± 0.00%) 299,420k (± 0.01%) ~ 299,396k 299,446k p=0.630 n=6
Parse Time 2.19s (± 0.50%) 2.19s (± 0.65%) ~ 2.17s 2.21s p=1.000 n=6
Bind Time 1.26s (± 1.19%) 1.26s (± 0.66%) ~ 1.26s 1.28s p=0.607 n=6
Check Time 7.25s (± 0.51%) 7.23s (± 0.45%) ~ 7.18s 7.26s p=0.334 n=6
Emit Time 4.25s (± 1.22%) 4.23s (± 0.81%) ~ 4.18s 4.27s p=0.686 n=6
Total Time 14.95s (± 0.24%) 14.91s (± 0.39%) ~ 14.81s 14.97s p=0.332 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,716k (± 0.00%) 473,839k (± 0.01%) -1,877k (- 0.39%) 473,806k 473,883k p=0.005 n=6
Parse Time 3.34s (± 0.29%) 3.33s (± 0.29%) ~ 3.32s 3.34s p=0.242 n=6
Bind Time 1.02s (± 0.40%) 1.03s (± 1.06%) ~ 1.02s 1.05s p=0.100 n=6
Check Time 18.19s (± 0.51%) 18.27s (± 0.96%) ~ 18.12s 18.52s p=0.518 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.55s (± 0.42%) 22.63s (± 0.78%) ~ 22.46s 22.88s p=0.574 n=6
xstate - node (v16.17.1, x64)
Memory used 546,090k (± 0.02%) 545,809k (± 0.02%) -282k (- 0.05%) 545,683k 545,987k p=0.005 n=6
Parse Time 4.25s (± 0.25%) 4.26s (± 0.45%) ~ 4.24s 4.29s p=0.742 n=6
Bind Time 1.81s (± 0.67%) 1.81s (± 0.64%) ~ 1.80s 1.83s p=0.563 n=6
Check Time 3.07s (± 0.44%) 3.03s (± 1.38%) ~ 2.98s 3.10s p=0.065 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 4.45%) ~ 0.09s 0.10s p=0.405 n=6
Total Time 9.23s (± 0.18%) 9.19s (± 0.67%) ~ 9.14s 9.31s p=0.065 n=6
Angular - node (v14.15.1, x64)
Memory used 352,583k (± 0.01%) 352,561k (± 0.00%) ~ 352,551k 352,569k p=0.128 n=6
Parse Time 3.72s (± 0.71%) 3.73s (± 0.52%) ~ 3.70s 3.75s p=0.568 n=6
Bind Time 1.28s (± 0.32%) 1.28s (± 0.40%) ~ 1.28s 1.29s p=0.595 n=6
Check Time 9.87s (± 0.29%) 9.87s (± 0.39%) ~ 9.82s 9.93s p=0.936 n=6
Emit Time 8.44s (± 0.30%) 8.42s (± 0.70%) ~ 8.34s 8.49s p=0.810 n=6
Total Time 23.32s (± 0.34%) 23.30s (± 0.25%) ~ 23.20s 23.38s p=0.872 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 186,691k (± 0.01%) 186,570k (± 0.71%) ~ 185,992k 189,261k p=0.066 n=6
Parse Time 1.58s (± 0.26%) 1.58s (± 0.65%) ~ 1.57s 1.60s p=0.390 n=6
Bind Time 0.85s (± 0.60%) 0.85s (± 0.64%) ~ 0.85s 0.86s p=0.640 n=6
Check Time 10.24s (± 0.65%) 10.27s (± 0.37%) ~ 10.22s 10.32s p=0.521 n=6
Emit Time 3.20s (± 0.67%) 3.17s (± 0.86%) -0.03s (- 1.04%) 3.14s 3.22s p=0.043 n=6
Total Time 15.88s (± 0.51%) 15.88s (± 0.35%) ~ 15.81s 15.96s p=0.936 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,187k (± 0.01%) 338,197k (± 0.00%) ~ 338,185k 338,214k p=0.575 n=6
Parse Time 2.90s (± 0.64%) 2.89s (± 0.31%) ~ 2.88s 2.90s p=0.459 n=6
Bind Time 1.12s (± 0.73%) 1.12s (± 0.46%) ~ 1.11s 1.12s p=0.929 n=6
Check Time 8.13s (± 0.59%) 8.14s (± 0.53%) ~ 8.10s 8.22s p=0.418 n=6
Emit Time 4.81s (± 1.02%) 4.79s (± 0.49%) ~ 4.75s 4.82s p=0.416 n=6
Total Time 16.94s (± 0.57%) 16.93s (± 0.41%) ~ 16.84s 17.04s p=1.000 n=6
TFS - node (v14.15.1, x64)
Memory used 294,356k (± 0.01%) 294,358k (± 0.01%) ~ 294,331k 294,377k p=0.689 n=6
Parse Time 2.39s (± 0.53%) 2.39s (± 0.98%) ~ 2.36s 2.43s p=0.549 n=6
Bind Time 1.10s (± 0.94%) 1.10s (± 0.74%) ~ 1.09s 1.11s p=0.270 n=6
Check Time 7.57s (± 0.56%) 7.56s (± 0.29%) ~ 7.52s 7.58s p=0.686 n=6
Emit Time 4.62s (± 0.69%) 4.65s (± 0.99%) ~ 4.60s 4.71s p=0.376 n=6
Total Time 15.68s (± 0.45%) 15.69s (± 0.54%) ~ 15.56s 15.80s p=0.810 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,246k (± 0.00%) 469,372k (± 0.00%) -1,874k (- 0.40%) 469,349k 469,403k p=0.005 n=6
Parse Time 3.50s (± 0.21%) 3.48s (± 0.43%) ~ 3.46s 3.50s p=0.078 n=6
Bind Time 1.04s (± 0.72%) 1.04s (± 0.53%) ~ 1.03s 1.04s p=0.137 n=6
Check Time 19.23s (± 0.72%) 19.19s (± 0.47%) ~ 19.05s 19.30s p=0.810 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.77s (± 0.60%) 23.71s (± 0.39%) ~ 23.56s 23.80s p=0.748 n=6
xstate - node (v14.15.1, x64)
Memory used 534,494k (± 0.00%) 534,223k (± 0.01%) -271k (- 0.05%) 534,178k 534,268k p=0.005 n=6
Parse Time 4.58s (± 0.30%) 4.58s (± 0.21%) ~ 4.57s 4.59s p=0.801 n=6
Bind Time 1.73s (± 0.48%) 1.73s (± 0.44%) ~ 1.72s 1.74s p=0.432 n=6
Check Time 3.18s (± 0.50%) 3.20s (± 1.01%) ~ 3.15s 3.23s p=0.334 n=6
Emit Time 0.10s (± 0.00%) 0.10s (± 0.00%) ~ 0.10s 0.10s p=1.000 n=6
Total Time 9.59s (± 0.32%) 9.61s (± 0.39%) ~ 9.56s 9.67s p=0.261 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

TSServer

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,391ms (± 1.04%) 2,397ms (± 0.74%) ~ 2,364ms 2,417ms p=0.423 n=6
Req 2 - geterr 5,387ms (± 0.38%) 5,376ms (± 0.70%) ~ 5,343ms 5,439ms p=0.575 n=6
Req 3 - references 339ms (± 1.39%) 339ms (± 0.81%) ~ 334ms 341ms p=0.936 n=6
Req 4 - navto 282ms (± 0.62%) 283ms (± 0.98%) ~ 280ms 287ms p=0.513 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 74ms (± 8.40%) 75ms (± 8.98%) ~ 70ms 88ms p=0.803 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,523ms (± 0.51%) 2,511ms (± 0.81%) ~ 2,486ms 2,540ms p=0.261 n=6
Req 2 - geterr 4,040ms (± 0.78%) 4,052ms (± 0.57%) ~ 4,025ms 4,078ms p=0.574 n=6
Req 3 - references 353ms (± 0.58%) 351ms (± 1.03%) ~ 346ms 355ms p=0.371 n=6
Req 4 - navto 290ms (± 0.48%) 290ms (± 0.55%) ~ 288ms 292ms p=0.456 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 67ms (± 1.21%) 68ms (± 0.81%) ~ 67ms 68ms p=0.859 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,206ms (± 0.55%) 3,190ms (± 0.72%) ~ 3,158ms 3,213ms p=0.468 n=6
Req 2 - geterr 1,647ms (± 1.10%) 1,687ms (± 1.52%) +40ms (+ 2.45%) 1,664ms 1,733ms p=0.008 n=6
Req 3 - references 105ms (± 1.11%) 104ms (± 1.89%) ~ 101ms 107ms p=0.222 n=6
Req 4 - navto 361ms (± 1.86%) 359ms (± 0.67%) ~ 356ms 362ms p=0.871 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 426ms (± 0.74%) 431ms (± 1.06%) ~ 422ms 435ms p=0.064 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,535ms (± 0.30%) 2,522ms (± 0.59%) ~ 2,501ms 2,536ms p=0.199 n=6
Req 2 - geterr 5,764ms (± 0.23%) 5,752ms (± 0.45%) ~ 5,728ms 5,797ms p=0.230 n=6
Req 3 - references 352ms (± 0.55%) 354ms (± 1.33%) ~ 349ms 362ms p=0.746 n=6
Req 4 - navto 280ms (± 0.53%) 279ms (± 0.66%) ~ 276ms 281ms p=0.743 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 82ms (± 4.83%) 79ms (± 4.52%) ~ 76ms 84ms p=0.289 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,690ms (± 0.73%) 2,698ms (± 0.39%) ~ 2,690ms 2,718ms p=0.872 n=6
Req 2 - geterr 4,382ms (± 0.80%) 4,399ms (± 0.58%) ~ 4,359ms 4,427ms p=0.298 n=6
Req 3 - references 365ms (± 0.78%) 366ms (± 0.91%) ~ 361ms 371ms p=0.746 n=6
Req 4 - navto 285ms (± 1.41%) 283ms (± 0.83%) ~ 280ms 287ms p=0.326 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 73ms (± 1.03%) 73ms (± 0.71%) ~ 72ms 73ms p=0.241 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,372ms (± 0.39%) 3,382ms (± 0.37%) ~ 3,363ms 3,398ms p=0.230 n=6
Req 2 - geterr 1,826ms (± 0.65%) 1,899ms (± 4.34%) +73ms (+ 4.00%) 1,833ms 2,032ms p=0.013 n=6
Req 3 - references 112ms (± 1.68%) 112ms (± 1.60%) ~ 109ms 114ms p=0.685 n=6
Req 4 - navto 346ms (± 1.19%) 347ms (± 1.85%) ~ 336ms 354ms p=0.809 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 436ms (± 1.10%) 437ms (± 1.02%) ~ 431ms 444ms p=0.630 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,619ms (± 0.51%) 2,618ms (± 0.66%) ~ 2,596ms 2,642ms p=1.000 n=6
Req 2 - geterr 6,091ms (± 0.38%) 6,089ms (± 0.21%) ~ 6,072ms 6,107ms p=0.748 n=6
Req 3 - references 367ms (± 0.94%) 367ms (± 0.48%) ~ 365ms 369ms p=0.868 n=6
Req 4 - navto 281ms (± 1.78%) 280ms (± 1.66%) ~ 276ms 287ms p=0.462 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 100ms (± 3.86%) 99ms (± 2.33%) ~ 95ms 101ms p=0.935 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,836ms (± 0.81%) 2,843ms (± 0.26%) ~ 2,831ms 2,853ms p=0.128 n=6
Req 2 - geterr 4,668ms (± 1.97%) 4,620ms (± 2.67%) ~ 4,437ms 4,721ms p=0.471 n=6
Req 3 - references 381ms (± 0.39%) 381ms (± 0.59%) ~ 378ms 383ms p=0.685 n=6
Req 4 - navto 292ms (± 0.70%) 293ms (± 1.17%) ~ 290ms 298ms p=0.935 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 85ms (± 9.62%) 86ms (±10.10%) ~ 81ms 103ms p=1.000 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,687ms (± 0.34%) 3,692ms (± 0.39%) ~ 3,674ms 3,709ms p=0.688 n=6
Req 2 - geterr 1,894ms (± 0.69%) 1,803ms (± 1.07%) 🟩-91ms (- 4.81%) 1,781ms 1,838ms p=0.005 n=6
Req 3 - references 125ms (± 2.50%) 130ms (± 3.88%) ~ 125ms 136ms p=0.064 n=6
Req 4 - navto 374ms (± 0.96%) 374ms (± 0.82%) ~ 368ms 376ms p=0.870 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 450ms (± 1.94%) 461ms (± 1.68%) +12ms (+ 2.59%) 454ms 472ms p=0.030 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

Startup

Comparison Report - main..52891
Metric main 52891 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.33ms (± 0.23%) 142.36ms (± 0.18%) ~ 141.69ms 145.30ms p=0.275 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.60ms (± 0.17%) 226.81ms (± 0.17%) +0.21ms (+ 0.09%) 225.77ms 232.21ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.50ms (± 0.17%) 228.52ms (± 0.17%) ~ 227.55ms 234.35ms p=0.125 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.16ms (± 0.13%) 209.44ms (± 0.18%) +0.28ms (+ 0.13%) 208.38ms 214.15ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 52891 6
Baseline main 6

Developer Information:

Download Benchmark

@jakebailey
Copy link
Member Author

Yeah, this is the diff I expected; the fast paths mentioned aren't actually that fast because isRelatedTo already checks equality. But still, the perf benchmarks appear to indicate that this sorting itself isn't catastrophic, so I'm going to continue with it and get origin types working.

@jakebailey
Copy link
Member Author

My hopes for this went away via standup; I completely forgot that intersection ordering determines overload order, and therefore we can't sort intersections at all.

@jakebailey jakebailey closed this Feb 21, 2023
@jakebailey jakebailey reopened this Mar 28, 2024
@jakebailey
Copy link
Member Author

@typescript-bot test it

for fun

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 28, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started 👀 Results
user test this ✅ Started 👀 Results
run dt ✅ Started 👀 Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @jakebailey, the results of running the DT tests are ready.

There were interesting changes:

Changes are too big to display here, please check the log.

You can check the log here.

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Angular - node (v18.15.0, x64)
Memory used 295,684k (± 0.01%) 295,671k (± 0.00%) ~ 295,656k 295,684k p=0.377 n=6
Parse Time 2.66s (± 0.15%) 2.66s (± 0.41%) ~ 2.64s 2.67s p=1.000 n=6
Bind Time 0.83s (± 1.00%) 0.83s (± 0.49%) ~ 0.82s 0.83s p=0.115 n=6
Check Time 8.24s (± 0.18%) 8.22s (± 0.33%) ~ 8.18s 8.26s p=0.168 n=6
Emit Time 7.03s (± 0.19%) 7.03s (± 0.23%) ~ 7.01s 7.05s p=0.797 n=6
Total Time 18.76s (± 0.14%) 18.74s (± 0.18%) ~ 18.70s 18.78s p=0.685 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 193,882k (± 0.96%) 193,091k (± 1.02%) ~ 191,268k 194,960k p=0.173 n=6
Parse Time 1.36s (± 1.21%) 1.36s (± 1.23%) ~ 1.35s 1.39s p=0.932 n=6
Bind Time 0.73s (± 0.56%) 0.73s (± 0.71%) ~ 0.72s 0.73s p=0.595 n=6
Check Time 9.53s (± 0.53%) 9.57s (± 0.62%) ~ 9.47s 9.65s p=0.229 n=6
Emit Time 2.63s (± 0.34%) 2.63s (± 0.68%) ~ 2.60s 2.65s p=0.804 n=6
Total Time 14.24s (± 0.40%) 14.29s (± 0.40%) ~ 14.19s 14.35s p=0.147 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,394k (± 0.00%) 347,410k (± 0.01%) ~ 347,380k 347,441k p=0.471 n=6
Parse Time 2.48s (± 0.30%) 2.49s (± 0.41%) ~ 2.47s 2.50s p=0.351 n=6
Bind Time 0.93s (± 0.44%) 0.93s (± 0.56%) ~ 0.92s 0.93s p=0.595 n=6
Check Time 7.02s (± 0.23%) 7.03s (± 0.59%) ~ 6.97s 7.09s p=0.519 n=6
Emit Time 4.08s (± 0.52%) 4.08s (± 0.30%) ~ 4.06s 4.09s p=1.000 n=6
Total Time 14.51s (± 0.22%) 14.52s (± 0.40%) ~ 14.45s 14.61s p=1.000 n=6
TFS - node (v18.15.0, x64)
Memory used 302,766k (± 0.01%) 302,763k (± 0.01%) ~ 302,725k 302,791k p=0.810 n=6
Parse Time 2.95s (± 1.31%) 2.97s (± 0.65%) ~ 2.94s 3.00s p=0.417 n=6
Bind Time 1.47s (± 0.51%) 1.47s (± 0.57%) ~ 1.47s 1.49s p=0.652 n=6
Check Time 9.27s (± 0.54%) 9.24s (± 0.49%) ~ 9.20s 9.32s p=0.520 n=6
Emit Time 5.30s (± 0.66%) 5.32s (± 0.32%) ~ 5.30s 5.35s p=0.250 n=6
Total Time 18.99s (± 0.43%) 19.00s (± 0.30%) ~ 18.94s 19.08s p=0.575 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,038k (± 0.01%) 507,579k (± 0.00%) -2,459k (- 0.48%) 507,550k 507,597k p=0.005 n=6
Parse Time 2.66s (± 0.15%) 2.67s (± 0.28%) ~ 2.66s 2.68s p=0.100 n=6
Bind Time 0.99s (± 1.11%) 0.99s (± 1.11%) ~ 0.97s 1.00s p=1.000 n=6
Check Time 17.34s (± 0.29%) 17.35s (± 0.32%) ~ 17.28s 17.43s p=0.936 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.00s (± 0.22%) 21.01s (± 0.29%) ~ 20.93s 21.10s p=1.000 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,744,650k (± 0.00%) 1,719,445k (± 0.00%) -25,205k (- 1.44%) 1,719,411k 1,719,475k p=0.005 n=6
Parse Time 7.80s (± 0.21%) 7.84s (± 0.45%) +0.05s (+ 0.60%) 7.81s 7.91s p=0.010 n=6
Bind Time 2.82s (± 0.70%) 2.83s (± 0.66%) ~ 2.79s 2.84s p=1.000 n=6
Check Time 66.81s (± 0.32%) 67.54s (± 0.39%) +0.73s (+ 1.09%) 67.17s 67.89s p=0.005 n=6
Emit Time 0.16s (± 3.29%) 0.16s (± 3.29%) ~ 0.15s 0.16s p=1.000 n=6
Total Time 77.58s (± 0.32%) 78.36s (± 0.34%) +0.78s (+ 1.00%) 77.96s 78.73s p=0.005 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,397,002k (± 0.03%) 2,393,513k (± 0.02%) -3,489k (- 0.15%) 2,392,775k 2,394,055k p=0.005 n=6
Parse Time 6.01s (± 0.39%) 6.02s (± 1.06%) ~ 5.89s 6.07s p=0.334 n=6
Bind Time 2.25s (± 1.34%) 2.27s (± 0.86%) ~ 2.25s 2.30s p=0.126 n=6
Check Time 39.82s (± 0.30%) 39.85s (± 0.31%) ~ 39.70s 40.04s p=0.688 n=6
Emit Time 3.17s (± 0.93%) 3.15s (± 0.58%) ~ 3.13s 3.18s p=0.229 n=6
Total Time 51.27s (± 0.33%) 51.31s (± 0.25%) ~ 51.19s 51.52s p=0.936 n=6
self-compiler - node (v18.15.0, x64)
Memory used 415,851k (± 0.01%) 413,223k (± 0.02%) -2,628k (- 0.63%) 413,173k 413,342k p=0.005 n=6
Parse Time 3.33s (± 0.94%) 3.34s (± 0.41%) ~ 3.33s 3.36s p=0.685 n=6
Bind Time 1.30s (± 0.58%) 1.29s (± 0.76%) ~ 1.28s 1.30s p=0.109 n=6
Check Time 18.21s (± 0.27%) 18.14s (± 0.39%) ~ 18.01s 18.20s p=0.064 n=6
Emit Time 1.36s (± 1.52%) 1.37s (± 1.01%) ~ 1.35s 1.39s p=0.678 n=6
Total Time 24.21s (± 0.20%) 24.14s (± 0.33%) ~ 23.99s 24.22s p=0.172 n=6
vscode - node (v18.15.0, x64)
Memory used 2,898,211k (± 0.00%) 2,897,750k (± 0.00%) -461k (- 0.02%) 2,897,700k 2,897,781k p=0.005 n=6
Parse Time 10.84s (± 0.28%) 10.87s (± 0.29%) ~ 10.82s 10.91s p=0.253 n=6
Bind Time 3.47s (± 0.70%) 3.46s (± 0.50%) ~ 3.44s 3.49s p=0.514 n=6
Check Time 62.14s (± 0.63%) 62.15s (± 0.19%) ~ 61.96s 62.26s p=0.936 n=6
Emit Time 17.09s (± 8.28%) 16.49s (± 0.57%) ~ 16.41s 16.67s p=0.574 n=6
Total Time 93.53s (± 1.79%) 92.96s (± 0.17%) ~ 92.66s 93.08s p=0.689 n=6
webpack - node (v18.15.0, x64)
Memory used 408,927k (± 0.03%) 408,898k (± 0.01%) ~ 408,817k 408,973k p=0.378 n=6
Parse Time 4.81s (± 0.74%) 4.79s (± 0.88%) ~ 4.73s 4.85s p=0.687 n=6
Bind Time 2.07s (± 0.73%) 2.05s (± 0.84%) ~ 2.03s 2.08s p=0.157 n=6
Check Time 20.89s (± 0.41%) 20.83s (± 0.38%) ~ 20.72s 20.93s p=0.226 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 27.77s (± 0.36%) 27.68s (± 0.27%) ~ 27.60s 27.78s p=0.090 n=6
xstate - node (v18.15.0, x64)
Memory used 513,390k (± 0.01%) 513,033k (± 0.01%) -357k (- 0.07%) 512,936k 513,160k p=0.005 n=6
Parse Time 3.28s (± 0.31%) 3.28s (± 0.47%) ~ 3.25s 3.29s p=0.397 n=6
Bind Time 1.57s (± 0.48%) 1.57s (± 0.48%) ~ 1.56s 1.58s p=0.487 n=6
Check Time 2.89s (± 0.71%) 2.91s (± 0.88%) ~ 2.86s 2.93s p=0.094 n=6
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) ~ 0.07s 0.07s p=1.000 n=6
Total Time 7.81s (± 0.24%) 7.83s (± 0.37%) ~ 7.78s 7.86s p=0.227 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the user tests comparing main and refs/pull/52891/merge:

Something interesting changed - please have a look.

Details

adonis-framework

/mnt/ts_downloads/_/m/adonis-framework/tsconfig.json

  • [NEW] error TS2322: Type 'string' is not assignable to type 'string & Buffer'.
    • /mnt/ts_downloads/_/m/adonis-framework/node_modules/adonis-framework/src/Encryption/index.js(102,5)
  • [MISSING] error TS2322: Type 'string' is not assignable to type 'Buffer & string'.
    • /mnt/ts_downloads/_/m/adonis-framework/node_modules/adonis-framework/src/Encryption/index.js(102,5)

bluebird

/mnt/ts_downloads/_/m/bluebird/tsconfig.json

  • [NEW] error TS2339: Property 'cordova' does not exist on type 'typeof globalThis & Window'.
    • /mnt/ts_downloads/_/m/bluebird/node_modules/bluebird/js/release/schedule.js(23,52)
  • [MISSING] error TS2339: Property 'cordova' does not exist on type 'Window & typeof globalThis'.
    • /mnt/ts_downloads/_/m/bluebird/node_modules/bluebird/js/release/schedule.js(23,52)

TypeScript-Node-Starter

tsconfig.json

uglify-js

/mnt/ts_downloads/_/m/uglify-js/tsconfig.json

  • [NEW] error TS2339: Property 'directives' does not exist on type 'TreeTransformer & this'.
    • /mnt/ts_downloads/_/m/uglify-js/node_modules/uglify-js/lib/compress.js(134,38)
  • [MISSING] error TS2339: Property 'directives' does not exist on type 'this & TreeTransformer'.
    • /mnt/ts_downloads/_/m/uglify-js/node_modules/uglify-js/lib/compress.js(134,38)

webpack

tsconfig.types.json

  • [NEW] error TS2345: Argument of type '{ chunk: Chunk | undefined; filename: string; contentHash: string | false; } & { url: string; }' is not assignable to parameter of type 'PathData | undefined'.
  • [NEW] error TS2322: Type 'ParserOptions | AssetParserOptions | (ParserOptions & AssetParserOptions) | undefined' is not assignable to type 'ParserOptions'.
  • [MISSING] error TS2345: Argument of type '{ url: string; } & { chunk: Chunk | undefined; filename: string; contentHash: string | false; }' is not assignable to parameter of type 'PathData | undefined'.
  • [MISSING] error TS2322: Type 'ParserOptions | AssetParserOptions | (AssetParserOptions & ParserOptions) | undefined' is not assignable to type 'ParserOptions'.

xterm.js

src/tsconfig-library-base.json

@jakebailey
Copy link
Member Author

fun is over, it's not really faster

@jakebailey jakebailey closed this Mar 28, 2024
@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the top 400 repos comparing main and refs/pull/52891/merge:

Something interesting changed - please have a look.

Details

caprover/caprover

tsconfig.json

desktop/desktop

1 of 4 projects failed to build with the old tsc and were ignored

tsconfig.json

script/tsconfig.json

Eugeny/tabby

11 of 29 projects failed to build with the old tsc and were ignored

tabby-web-demo/tsconfig.json

tabby-terminal/tsconfig.json

tabby-telnet/tsconfig.json

tabby-ssh/tsconfig.json

tabby-settings/tsconfig.json

tabby-serial/tsconfig.json

tabby-plugin-manager/tsconfig.json

tabby-local/tsconfig.json

tabby-linkifier/tsconfig.json

tabby-electron/tsconfig.json

tabby-community-color-schemes/tsconfig.json

facebook/lexical

2 of 6 projects failed to build with the old tsc and were ignored

tsconfig.json

tsconfig.build.json

illacloud/illa-builder

31 of 94 projects failed to build with the old tsc and were ignored

packages/statistic/tsconfig.json

packages/notification/tsconfig.json

packages/message/tsconfig.json

apps/cloud/tsconfig.json

invoke-ai/InvokeAI

invokeai/frontend/web/tsconfig.json

jhipster/generator-jhipster

1 of 3 projects failed to build with the old tsc and were ignored

tsconfig.types.json

tsconfig.json

@typescript-bot
Copy link
Collaborator

@jakebailey Here are some more interesting changes from running the top 400 repos suite

Details

jupyterlab/jupyterlab

34 of 60 projects failed to build with the old tsc and were ignored

packages/vega5-extension/tsconfig.test.json

packages/ui-components/examples/simple-windowed-list/tsconfig.json

packages/toc/tsconfig.test.json

packages/statusbar/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/statusbar.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/statusbar.ts'.
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/tokens.ts'.
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/components/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/components/index.ts'.
  • error TS2307: Cannot find module '@jupyterlab/statusbar' or its corresponding type declarations.

packages/settingeditor/tsconfig.test.json

packages/services/examples/typescript-browser-with-output/tsconfig.json

packages/rendermime/tsconfig.test.json

packages/mermaid/tsconfig.test.json

packages/mainmenu/tsconfig.test.json

packages/logconsole/tsconfig.test.json

packages/inspector/tsconfig.test.json

packages/imageviewer/tsconfig.test.json

packages/csvviewer/tsconfig.test.json

packages/codeeditor/tsconfig.test.json

@typescript-bot
Copy link
Collaborator

@jakebailey Here are some more interesting changes from running the top 400 repos suite

Details

lyswhut/lx-music-desktop

2 of 6 projects failed to build with the old tsc and were ignored

src/renderer-lyric/tsconfig.json

src/common/tsconfig.json

mattermost/mattermost

1 of 4 projects failed to build with the old tsc and were ignored

webapp/channels/tsconfig.json

microsoft/vscode

4 of 54 projects failed to build with the old tsc and were ignored

src/tsconfig.tsec.json

src/tsconfig.json

mswjs/msw

12 of 15 projects failed to build with the old tsc and were ignored

src/tsconfig.core.build.json

mui/material-ui

30 of 87 projects failed to build with the old tsc and were ignored

docs/tsconfig.json

pmndrs/jotai

tsconfig.json

  • error TS2379: Argument of type 'AnyWritableAtom & Atom<Value>' is not assignable to parameter of type 'WritableAtom<Value, unknown[], unknown>' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.

react-bootstrap/react-bootstrap

2 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

react-navigation/react-navigation

9 of 14 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2322: Type 'ActionHelpers & { addListener: () => () => void; removeListener: () => void; dispatch: () => never; getParent: (id?: string | undefined) => T | (ActionHelpers & Omit<...> & { ...; } & EventConsumer<...> & PrivateValueStore<...>); ... 11 more ...; setParams: ((params: Partial<...>) => void) & (<RouteName extends stri...' is not assignable to type 'ActionHelpers & Omit<NavigationHelpersCommon<ParamListBase, State>, "getParent"> & { getParent<T = NavigationProp<...> | undefined>(id?: string | undefined): T; setParams(params: Partial<...>): void; setOptions(options: Partial<...>): void; } & EventConsumer<...> & PrivateValueStore<...>'.
  • error TS2344: Type 'keyof HomeDrawerParamList' does not satisfy the constraint '"Expected: literal string: Feed, Actual: literal string: Popular" | "Expected: literal string: Feed, Actual: literal string: Latest" | "Expected: literal string: Account, Actual: literal string: Popular" | "Expected: literal string: Account, Actual: literal string: Latest"'.

packages/core/tsconfig.build.json

  • error TS2322: Type 'ActionHelpers & { addListener: () => () => void; removeListener: () => void; dispatch: () => never; getParent: (id?: string | undefined) => T | (ActionHelpers & Omit<...> & { ...; } & EventConsumer<...> & PrivateValueStore<...>); ... 11 more ...; setParams: ((params: Partial<...>) => void) & (<RouteName extends stri...' is not assignable to type 'ActionHelpers & Omit<NavigationHelpersCommon<ParamListBase, State>, "getParent"> & { getParent<T = NavigationProp<...> | undefined>(id?: string | undefined): T; setParams(params: Partial<...>): void; setOptions(options: Partial<...>): void; } & EventConsumer<...> & PrivateValueStore<...>'.

reactjs/react.dev

tsconfig.json

recharts/recharts

tsconfig.json

test/tsconfig.json

storybook/tsconfig.json

demo/tsconfig.json

shoelace-style/shoelace

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.prod.json

signalapp/Signal-Desktop

1 of 2 projects failed to build with the old tsc and were ignored

sticker-creator/tsconfig.json

supabase/supabase

27 of 33 projects failed to build with the old tsc and were ignored

apps/www/tsconfig.json

apps/studio/tsconfig.json

apps/docs/tsconfig.json

szimek/signature\_pad

tsconfig.json

tremorlabs/tremor

tsconfig.json

trpc/trpc

25 of 32 projects failed to build with the old tsc and were ignored

packages/server/tsconfig.json

packages/server/tsconfig.benchmark.json

ueberdosis/tiptap

3 of 8 projects failed to build with the old tsc and were ignored

tests/cypress/tsconfig.json

demos/tsconfig.vue-3.json

demos/tsconfig.vue-2.json

demos/tsconfig.react.json

demos/tsconfig.base.json

umijs/umi

40 of 65 projects failed to build with the old tsc and were ignored

packages/bundler-utils/tsconfig.json

usablica/intro.js

1 of 3 projects failed to build with the old tsc and were ignored

tsconfig.release.json

tsconfig.json

vercel/hyper

2 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2502: 'array' is referenced directly or indirectly in its own type annotation.
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L175 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L179 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L189 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L197 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L206 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L214 in app/tsconfig.json
  • error TS2577: Return type annotation circularly references itself.
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L180 in app/tsconfig.json
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L183 in app/tsconfig.json
  • error TS2502: 'arr' is referenced directly or indirectly in its own type annotation.
    • file:///mnt/ts_downloads/_/m/hyper/node_modules/@types/seamless-immutable/index.d.ts#L183 in app/tsconfig.json

vuetifyjs/vuetify

3 of 7 projects failed to build with the old tsc and were ignored

packages/vuetify/tsconfig.json

packages/vuetify/tsconfig.dist.json

packages/vuetify/tsconfig.checks.json

whyour/qinglong

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.back.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants