TypeScript icon indicating copy to clipboard operation
TypeScript copied to clipboard

Don't exempt late bound symbols from EPC in presence of string index signature

Open Andarist opened this issue 1 year ago • 11 comments

fixes https://github.com/microsoft/TypeScript/issues/44794

Andarist avatar Apr 14 '24 20:04 Andarist

@typescript-bot test it

jakebailey avatar Apr 14 '24 20:04 jakebailey

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 avatar Apr 14 '24 20:04 typescript-bot

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

Everything looks the same!

You can check the log here.

typescript-bot avatar Apr 14 '24 21:04 typescript-bot

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

Everything looks good!

typescript-bot avatar Apr 14 '24 21:04 typescript-bot

@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 296,977k (± 0.01%) 296,984k (± 0.01%) ~ 296,928k 297,007k p=0.261 n=6
Parse Time 2.70s (± 0.51%) 2.71s (± 0.56%) ~ 2.68s 2.72s p=0.187 n=6
Bind Time 0.82s (± 0.77%) 0.82s (± 0.63%) ~ 0.81s 0.82s p=0.386 n=6
Check Time 8.31s (± 0.20%) 8.33s (± 0.30%) ~ 8.29s 8.36s p=0.331 n=6
Emit Time 7.07s (± 0.42%) 7.06s (± 0.32%) ~ 7.04s 7.10s p=0.625 n=6
Total Time 18.90s (± 0.13%) 18.91s (± 0.26%) ~ 18.84s 18.97s p=0.520 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 192,974k (± 0.94%) 192,401k (± 0.74%) ~ 191,794k 195,323k p=0.936 n=6
Parse Time 1.35s (± 0.30%) 1.37s (± 1.10%) ~ 1.35s 1.38s p=0.071 n=6
Bind Time 0.72s (± 0.00%) 0.72s (± 0.00%) ~ 0.72s 0.72s p=1.000 n=6
Check Time 9.59s (± 0.45%) 9.58s (± 0.23%) ~ 9.54s 9.60s p=0.936 n=6
Emit Time 2.61s (± 0.95%) 2.62s (± 0.31%) ~ 2.61s 2.63s p=0.181 n=6
Total Time 14.27s (± 0.40%) 14.29s (± 0.15%) ~ 14.26s 14.31s p=0.418 n=6
Monaco - node (v18.15.0, x64)
Memory used 348,866k (± 0.00%) 348,851k (± 0.00%) ~ 348,837k 348,875k p=0.109 n=6
Parse Time 2.54s (± 0.39%) 2.55s (± 0.41%) ~ 2.53s 2.56s p=0.343 n=6
Bind Time 0.89s (± 0.71%) 0.89s (± 0.46%) ~ 0.88s 0.89s p=0.673 n=6
Check Time 7.07s (± 0.41%) 7.04s (± 0.51%) ~ 7.00s 7.08s p=0.147 n=6
Emit Time 4.07s (± 0.26%) 4.06s (± 0.33%) ~ 4.04s 4.08s p=0.358 n=6
Total Time 14.57s (± 0.13%) 14.53s (± 0.17%) -0.04s (- 0.24%) 14.50s 14.56s p=0.030 n=6
TFS - node (v18.15.0, x64)
Memory used 302,960k (± 0.01%) 302,951k (± 0.00%) ~ 302,940k 302,961k p=0.335 n=6
Parse Time 2.94s (± 0.90%) 2.95s (± 0.90%) ~ 2.92s 2.99s p=0.570 n=6
Bind Time 1.43s (± 0.93%) 1.44s (± 0.95%) ~ 1.43s 1.47s p=0.176 n=6
Check Time 9.37s (± 0.25%) 9.37s (± 0.34%) ~ 9.33s 9.41s p=1.000 n=6
Emit Time 5.29s (± 0.57%) 5.28s (± 0.65%) ~ 5.24s 5.34s p=0.936 n=6
Total Time 19.03s (± 0.29%) 19.05s (± 0.25%) ~ 18.99s 19.12s p=0.572 n=6
material-ui - node (v18.15.0, x64)
Memory used 511,588k (± 0.00%) 511,594k (± 0.00%) ~ 511,565k 511,609k p=0.378 n=6
Parse Time 2.72s (± 0.68%) 2.71s (± 0.64%) ~ 2.69s 2.73s p=0.451 n=6
Bind Time 0.99s (± 0.76%) 0.99s (± 1.74%) ~ 0.96s 1.01s p=0.867 n=6
Check Time 17.25s (± 0.44%) 17.17s (± 0.33%) ~ 17.09s 17.25s p=0.126 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.95s (± 0.39%) 20.86s (± 0.33%) ~ 20.76s 20.96s p=0.127 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,748,639k (± 0.00%) 1,748,684k (± 0.00%) ~ 1,748,637k 1,748,737k p=0.065 n=6
Parse Time 9.96s (± 0.58%) 9.97s (± 1.29%) ~ 9.84s 10.20s p=0.688 n=6
Bind Time 3.35s (± 0.99%) 3.34s (± 1.05%) ~ 3.31s 3.41s p=0.868 n=6
Check Time 81.38s (± 0.35%) 81.57s (± 0.43%) ~ 81.10s 82.12s p=0.378 n=6
Emit Time 0.20s (± 3.79%) 0.20s (± 5.89%) ~ 0.19s 0.22s p=0.796 n=6
Total Time 94.89s (± 0.30%) 95.08s (± 0.35%) ~ 94.71s 95.54s p=0.470 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,306,741k (± 0.01%) 2,307,007k (± 0.03%) ~ 2,306,333k 2,307,799k p=0.689 n=6
Parse Time 6.02s (± 1.12%) 6.02s (± 0.82%) ~ 5.96s 6.11s p=0.872 n=6
Bind Time 2.25s (± 0.87%) 2.24s (± 1.26%) ~ 2.20s 2.27s p=0.872 n=6
Check Time 39.84s (± 0.33%) 39.80s (± 0.36%) ~ 39.55s 39.95s p=0.689 n=6
Emit Time 3.22s (± 1.81%) 3.17s (± 3.69%) ~ 3.02s 3.32s p=0.630 n=6
Total Time 51.35s (± 0.15%) 51.27s (± 0.26%) ~ 51.04s 51.44s p=0.298 n=6
self-build-src-public-api - node (v18.15.0, x64)
Memory used 2,381,607k (± 0.03%) 2,381,639k (± 0.04%) ~ 2,380,104k 2,383,043k p=0.689 n=6
Parse Time 7.68s (± 0.80%) 7.65s (± 0.35%) ~ 7.61s 7.68s p=0.468 n=6
Bind Time 2.51s (± 0.87%) 2.52s (± 0.82%) ~ 2.49s 2.54s p=0.747 n=6
Check Time 49.77s (± 0.33%) 49.69s (± 0.91%) ~ 49.31s 50.29s p=0.423 n=6
Emit Time 3.95s (± 3.75%) 3.92s (± 2.03%) ~ 3.76s 3.97s p=1.000 n=6
Total Time 63.93s (± 0.32%) 63.80s (± 0.66%) ~ 63.43s 64.35s p=0.378 n=6
self-compiler - node (v18.15.0, x64)
Memory used 419,105k (± 0.01%) 419,077k (± 0.01%) ~ 419,041k 419,098k p=0.423 n=6
Parse Time 4.28s (± 3.84%) 4.20s (± 0.36%) ~ 4.18s 4.22s p=0.357 n=6
Bind Time 1.58s (± 1.44%) 1.59s (± 1.93%) ~ 1.56s 1.64s p=0.462 n=6
Check Time 22.28s (± 0.18%) 22.31s (± 0.49%) ~ 22.20s 22.49s p=0.629 n=6
Emit Time 1.71s (± 0.96%) 1.72s (± 1.51%) ~ 1.69s 1.75s p=1.000 n=6
Total Time 29.85s (± 0.57%) 29.82s (± 0.40%) ~ 29.67s 30.03s p=0.873 n=6
vscode - node (v18.15.0, x64)
Memory used 2,913,590k (± 0.00%) 2,913,480k (± 0.00%) -110k (- 0.00%) 2,913,292k 2,913,629k p=0.045 n=6
Parse Time 16.55s (± 0.52%) 16.54s (± 0.48%) ~ 16.45s 16.64s p=0.936 n=6
Bind Time 4.95s (± 0.64%) 5.02s (± 2.53%) ~ 4.90s 5.18s p=0.627 n=6
Check Time 88.26s (± 0.48%) 88.20s (± 0.23%) ~ 87.94s 88.41s p=1.000 n=6
Emit Time 23.88s (± 0.75%) 24.57s (± 7.73%) ~ 23.67s 28.44s p=0.688 n=6
Total Time 133.64s (± 0.30%) 134.34s (± 1.33%) ~ 133.27s 137.96s p=0.575 n=6
webpack - node (v18.15.0, x64)
Memory used 409,368k (± 0.01%) 409,383k (± 0.01%) ~ 409,323k 409,464k p=0.936 n=6
Parse Time 3.93s (± 1.02%) 3.92s (± 1.16%) ~ 3.84s 3.97s p=0.574 n=6
Bind Time 1.65s (± 0.25%) 1.65s (± 0.91%) ~ 1.63s 1.67s p=0.498 n=6
Check Time 16.94s (± 0.37%) 16.99s (± 0.24%) ~ 16.93s 17.04s p=0.199 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.53s (± 0.39%) 22.56s (± 0.27%) ~ 22.48s 22.62s p=0.572 n=6
xstate - node (v18.15.0, x64)
Memory used 672,049k (± 0.03%) 672,003k (± 0.02%) ~ 671,884k 672,184k p=0.689 n=6
Parse Time 4.11s (± 0.60%) 4.14s (± 0.32%) ~ 4.13s 4.16s p=0.056 n=6
Bind Time 1.88s (± 0.78%) 1.88s (± 0.93%) ~ 1.85s 1.89s p=1.000 n=6
Check Time 3.45s (± 0.54%) 3.45s (± 0.57%) ~ 3.42s 3.47s p=1.000 n=6
Emit Time 0.03s (±14.39%) 0.03s (±12.88%) ~ 0.03s 0.04s p=0.218 n=6
Total Time 9.47s (± 0.30%) 9.49s (± 0.39%) ~ 9.45s 9.54s p=0.332 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-build-src-public-api - 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 avatar Apr 14 '24 21:04 typescript-bot

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

Everything looks good!

typescript-bot avatar Apr 14 '24 22:04 typescript-bot

Shocking

@typescript-bot test top800

jakebailey avatar Apr 14 '24 23:04 jakebailey

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

Command Status Results
test top800 ✅ Started ✅ Results

typescript-bot avatar Apr 14 '24 23:04 typescript-bot

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

Everything looks good!

typescript-bot avatar Apr 15 '24 01:04 typescript-bot

Symbols are not that popular in the wild and often might not even be used directly so I'm not that shocked ;p

Andarist avatar Apr 15 '24 06:04 Andarist

Symbols are not that popular in the wild

Given that you either write something ugly like foo[Symbol.someBuiltInSymbol] = whatever or else foo[localSymVar] = bar which is syntactically indistinguishable from a string key access (and therefore potentially confusing), people shying away from symbols isn't that surprising. IMO symbols were a cool concept but they really needed specialized syntax.

fatcerberus avatar Apr 17 '24 03:04 fatcerberus