Set impliedNodeFormat based on redirectedReference options
Fixes #57553
@typescript-bot test it
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 |
Hey @andrewbranch, the results of running the DT tests are ready.
Everything looks the same!
@andrewbranch Here are the results of running the user tests with tsc comparing main and refs/pull/60039/merge:
Everything looks good!
@andrewbranch 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 |
|---|---|---|---|---|---|---|
| Compiler-Unions - node (v18.15.0, x64) | ||||||
| Errors | 30 | 30 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 62,153 | 62,153 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 50,242 | 50,242 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 194,850k (± 0.97%) | 192,487k (± 0.07%) | ~ | 192,367k | 192,751k | p=0.128 n=6 |
| Parse Time | 1.57s (± 0.48%) | 1.57s (± 0.52%) | ~ | 1.56s | 1.58s | p=0.306 n=6 |
| Bind Time | 0.86s (± 1.27%) | 0.86s (± 1.04%) | ~ | 0.85s | 0.87s | p=1.000 n=6 |
| Check Time | 11.35s (± 0.31%) | 11.38s (± 0.54%) | ~ | 11.28s | 11.45s | p=0.226 n=6 |
| Emit Time | 3.24s (± 0.98%) | 3.22s (± 0.95%) | ~ | 3.17s | 3.24s | p=0.280 n=6 |
| Total Time | 17.02s (± 0.38%) | 17.03s (± 0.52%) | ~ | 16.87s | 17.11s | p=0.810 n=6 |
| angular-1 - node (v18.15.0, x64) | ||||||
| Errors | 7 | 7 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 945,734 | 945,734 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 410,049 | 410,049 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 1,222,792k (± 0.00%) | 1,222,786k (± 0.00%) | ~ | 1,222,730k | 1,222,824k | p=0.748 n=6 |
| Parse Time | 6.67s (± 0.27%) | 6.64s (± 0.37%) | ~ | 6.61s | 6.67s | p=0.120 n=6 |
| Bind Time | 1.86s (± 0.40%) | 1.86s (± 0.40%) | ~ | 1.85s | 1.87s | p=1.000 n=6 |
| Check Time | 31.25s (± 0.44%) | 31.26s (± 0.41%) | ~ | 31.12s | 31.47s | p=0.810 n=6 |
| Emit Time | 15.02s (± 0.40%) | 15.06s (± 0.30%) | ~ | 14.98s | 15.11s | p=0.228 n=6 |
| Total Time | 54.79s (± 0.27%) | 54.83s (± 0.25%) | ~ | 54.68s | 55.07s | p=0.419 n=6 |
| mui-docs - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 2,521,513 | 2,521,513 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 936,002 | 936,002 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 2,351,490k (± 0.00%) | 2,351,526k (± 0.00%) | ~ | 2,351,421k | 2,351,569k | p=0.066 n=6 |
| Parse Time | 9.28s (± 0.34%) | 9.29s (± 0.23%) | ~ | 9.26s | 9.31s | p=0.567 n=6 |
| Bind Time | 2.13s (± 0.49%) | 2.13s (± 0.46%) | ~ | 2.12s | 2.14s | p=0.315 n=6 |
| Check Time | 73.53s (± 0.64%) | 73.63s (± 0.23%) | ~ | 73.44s | 73.88s | p=0.810 n=6 |
| Emit Time | 0.28s (± 1.47%) | 0.28s (± 1.47%) | ~ | 0.27s | 0.28s | p=1.000 n=6 |
| Total Time | 85.22s (± 0.58%) | 85.32s (± 0.18%) | ~ | 85.14s | 85.55s | p=0.810 n=6 |
| self-build-src - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 1,246,933 | 1,246,934 | +1 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 264,605 | 264,605 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 2,399,827k (± 0.04%) | 2,399,584k (± 0.02%) | ~ | 2,398,990k | 2,399,941k | p=0.810 n=6 |
| Parse Time | 5.04s (± 1.01%) | 5.10s (± 0.68%) | ~ | 5.06s | 5.15s | p=0.092 n=6 |
| Bind Time | 1.91s (± 0.61%) | 1.91s (± 0.63%) | ~ | 1.89s | 1.92s | p=0.933 n=6 |
| Check Time | 34.86s (± 0.14%) | 34.81s (± 0.30%) | ~ | 34.69s | 34.99s | p=0.148 n=6 |
| Emit Time | 3.03s (± 4.84%) | 3.23s (± 5.20%) | 🔻+0.21s (+ 6.88%) | 3.02s | 3.42s | p=0.037 n=6 |
| Total Time | 44.86s (± 0.31%) | 45.06s (± 0.18%) | +0.20s (+ 0.44%) | 44.96s | 45.18s | p=0.045 n=6 |
| self-build-src-public-api - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 1,246,933 | 1,246,934 | +1 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 264,605 | 264,605 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 2,474,586k (± 0.02%) | 2,474,130k (± 0.02%) | ~ | 2,473,691k | 2,474,898k | p=0.128 n=6 |
| Parse Time | 5.26s (± 0.37%) | 5.28s (± 1.45%) | ~ | 5.18s | 5.37s | p=0.423 n=6 |
| Bind Time | 1.72s (± 1.20%) | 1.73s (± 0.99%) | ~ | 1.70s | 1.75s | p=0.216 n=6 |
| Check Time | 35.34s (± 0.33%) | 35.24s (± 0.27%) | ~ | 35.14s | 35.40s | p=0.149 n=6 |
| Emit Time | 2.99s (± 1.03%) | 3.08s (± 5.16%) | ~ | 2.94s | 3.35s | p=0.574 n=6 |
| Total Time | 45.34s (± 0.18%) | 45.33s (± 0.39%) | ~ | 45.07s | 45.57s | p=0.936 n=6 |
| self-compiler - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 260,157 | 260,158 | +1 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 106,293 | 106,293 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 436,080k (± 0.03%) | 435,980k (± 0.02%) | ~ | 435,901k | 436,108k | p=0.378 n=6 |
| Parse Time | 3.45s (± 0.85%) | 3.44s (± 0.66%) | ~ | 3.42s | 3.48s | p=0.746 n=6 |
| Bind Time | 1.29s (± 1.24%) | 1.30s (± 0.42%) | ~ | 1.30s | 1.31s | p=0.055 n=6 |
| Check Time | 18.12s (± 0.31%) | 18.14s (± 0.35%) | ~ | 18.07s | 18.26s | p=0.520 n=6 |
| Emit Time | 1.52s (± 0.99%) | 1.52s (± 1.40%) | ~ | 1.49s | 1.54s | p=0.413 n=6 |
| Total Time | 24.37s (± 0.25%) | 24.41s (± 0.13%) | ~ | 24.36s | 24.46s | p=0.226 n=6 |
| ts-pre-modules - node (v18.15.0, x64) | ||||||
| Errors | 68 | 68 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 225,018 | 225,018 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 94,249 | 94,249 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 370,282k (± 0.02%) | 370,303k (± 0.02%) | ~ | 370,199k | 370,397k | p=0.689 n=6 |
| Parse Time | 3.44s (± 1.21%) | 3.44s (± 0.81%) | ~ | 3.40s | 3.47s | p=1.000 n=6 |
| Bind Time | 1.94s (± 1.97%) | 1.93s (± 2.02%) | ~ | 1.87s | 1.99s | p=0.518 n=6 |
| Check Time | 19.49s (± 0.29%) | 19.49s (± 0.54%) | ~ | 19.38s | 19.62s | p=1.000 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 24.88s (± 0.43%) | 24.86s (± 0.60%) | ~ | 24.66s | 25.05s | p=0.629 n=6 |
| vscode - node (v18.15.0, x64) | ||||||
| Errors | 1 | 1 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 3,094,498 | 3,094,498 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 1,066,739 | 1,066,739 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 3,192,396k (± 0.00%) | 3,192,389k (± 0.00%) | ~ | 3,192,355k | 3,192,447k | p=0.630 n=6 |
| Parse Time | 13.92s (± 0.25%) | 13.97s (± 0.40%) | ~ | 13.89s | 14.02s | p=0.168 n=6 |
| Bind Time | 4.42s (± 2.20%) | 4.36s (± 0.28%) | ~ | 4.34s | 4.37s | p=0.360 n=6 |
| Check Time | 82.44s (± 0.46%) | 82.15s (± 0.40%) | ~ | 81.72s | 82.67s | p=0.128 n=6 |
| Emit Time | 22.38s (± 0.35%) | 22.49s (± 0.94%) | ~ | 22.28s | 22.87s | p=0.575 n=6 |
| Total Time | 123.17s (± 0.26%) | 122.97s (± 0.30%) | ~ | 122.54s | 123.49s | p=0.378 n=6 |
| webpack - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 277,129 | 277,129 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 113,106 | 113,106 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 426,977k (± 0.01%) | 426,996k (± 0.02%) | ~ | 426,936k | 427,104k | p=1.000 n=6 |
| Parse Time | 3.95s (± 0.37%) | 3.93s (± 0.30%) | ~ | 3.91s | 3.94s | p=0.079 n=6 |
| Bind Time | 1.72s (± 1.13%) | 1.72s (± 0.44%) | ~ | 1.71s | 1.73s | p=0.396 n=6 |
| Check Time | 17.53s (± 0.35%) | 17.54s (± 0.20%) | ~ | 17.48s | 17.58s | p=0.747 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 23.20s (± 0.28%) | 23.20s (± 0.13%) | ~ | 23.14s | 23.23s | p=0.872 n=6 |
| xstate-main - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 539,981 | 539,981 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 181,270 | 181,270 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 483,418k (± 0.02%) | 483,397k (± 0.01%) | ~ | 483,358k | 483,439k | p=0.521 n=6 |
| Parse Time | 3.21s (± 0.58%) | 3.23s (± 0.51%) | ~ | 3.21s | 3.25s | p=0.462 n=6 |
| Bind Time | 1.16s (± 0.85%) | 1.16s (± 1.09%) | ~ | 1.14s | 1.18s | p=0.801 n=6 |
| Check Time | 18.63s (± 0.27%) | 18.62s (± 0.26%) | ~ | 18.54s | 18.67s | p=0.628 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 23.01s (± 0.29%) | 23.00s (± 0.25%) | ~ | 22.93s | 23.07s | p=0.687 n=6 |
- node (v18.15.0, x64)
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - 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)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
| Benchmark | Name | Iterations |
|---|---|---|
| Current | pr | 6 |
| Baseline | baseline | 6 |
Developer Information:
@andrewbranch Here are the results of running the top 400 repos with tsc comparing main and refs/pull/60039/merge:
Everything looks good!
I have a strong suspicion that redirected references and impliedNodeFormat are behind crashes like this one. In the cal.com's case, we can bisect the crash to https://github.com/microsoft/TypeScript/pull/59479 but those kind of crashes were present way before that PR.
I'm still trying to reduce that repro case but I figured out it might be an interesting info to you. I have confirmed that this PR doesn't fix that issue right now.
I think our strategy here is going to have to change significantly. The fix in this PR as it stands breaks the scenario tested in https://github.com/microsoft/TypeScript/pull/60039/commits/100f939c532a397c41293462cdf7613cec11dcb3. We can’t actually skip setting impliedNodeFormat on source files in any case; we can only choose how to interpret the value there.
I feel like this value should be in program instead of on sourceFile because sourceFiles are shared across programs. Eg thats what we did for module resolution as it causes issues otherwise. Otherwise sourceFile with given options "OptionsAffectingSourceFile" need to handle these cases and then it starts depending on ModuleResolution options again? (we removed that dependency)
That’s one option I thought about. moduleResolution is already correctly marked as affecting source files. Unfortunately, impliedNodeFormat is public on SourceFile. But internally, most if not all accesses happen through Program now, so I think we could just always set impliedNodeFormat on source files and let the Program-based accesses decide whether to return anything.
I can confirm that this now fixes https://github.com/microsoft/TypeScript/issues/60029#issuecomment-2367003008 . I'm still working on creating a test based on that crash though.
@typescript-bot test it
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 |
Hey @andrewbranch, the results of running the DT tests are ready.
Everything looks the same!
@andrewbranch Here are the results of running the user tests with tsc comparing main and refs/pull/60039/merge:
Everything looks good!
Looks like you're introducing a change to the public API surface area. If this includes breaking changes, please document them on our wiki's API Breaking Changes page.
Also, please make sure @DanielRosenwasser and @RyanCavanaugh are aware of the changes, just as a heads up.
@andrewbranch 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 |
|---|---|---|---|---|---|---|
| Compiler-Unions - node (v18.15.0, x64) | ||||||
| Errors | 30 | 30 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 62,340 | 62,340 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 50,378 | 50,378 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 194,485k (± 1.00%) | 194,026k (± 0.94%) | ~ | 192,698k | 196,426k | p=0.575 n=6 |
| Parse Time | 1.30s (± 1.52%) | 1.30s (± 0.97%) | ~ | 1.29s | 1.32s | p=0.934 n=6 |
| Bind Time | 0.71s | 0.71s (± 0.57%) | ~ | 0.71s | 0.72s | p=0.405 n=6 |
| Check Time | 9.49s (± 0.37%) | 9.54s (± 0.26%) | +0.04s (+ 0.46%) | 9.50s | 9.57s | p=0.044 n=6 |
| Emit Time | 2.72s (± 0.49%) | 2.73s (± 0.52%) | ~ | 2.71s | 2.75s | p=0.180 n=6 |
| Total Time | 14.22s (± 0.31%) | 14.28s (± 0.28%) | +0.06s (+ 0.45%) | 14.22s | 14.34s | p=0.030 n=6 |
| angular-1 - node (v18.15.0, x64) | ||||||
| Errors | 7 | 7 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 947,102 | 947,100 | -2 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 410,738 | 410,736 | -2 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 1,224,022k (± 0.00%) | 1,226,017k (± 0.00%) | +1,995k (+ 0.16%) | 1,225,985k | 1,226,081k | p=0.005 n=6 |
| Parse Time | 6.59s (± 0.41%) | 6.71s (± 0.33%) | +0.12s (+ 1.77%) | 6.69s | 6.75s | p=0.005 n=6 |
| Bind Time | 1.87s (± 0.22%) | 1.86s (± 0.28%) | ~ | 1.86s | 1.87s | p=0.112 n=6 |
| Check Time | 31.41s (± 0.36%) | 31.39s (± 0.65%) | ~ | 31.12s | 31.59s | p=1.000 n=6 |
| Emit Time | 15.04s (± 0.48%) | 15.42s (± 0.43%) | +0.38s (+ 2.53%) | 15.31s | 15.50s | p=0.005 n=6 |
| Total Time | 54.91s (± 0.31%) | 55.38s (± 0.34%) | +0.47s (+ 0.86%) | 55.09s | 55.61s | p=0.008 n=6 |
| mui-docs - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 2,521,651 | 2,524,911 | +3,260 (+ 0.13%) | ~ | ~ | p=0.001 n=6 |
| Types | 936,037 | 939,429 | +3,392 (+ 0.36%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 2,351,711k (± 0.00%) | 2,451,724k (± 0.00%) | 🔻+100,014k (+ 4.25%) | 2,451,612k | 2,451,780k | p=0.005 n=6 |
| Parse Time | 9.28s (± 0.16%) | 9.60s (± 0.27%) | +0.32s (+ 3.45%) | 9.56s | 9.64s | p=0.005 n=6 |
| Bind Time | 2.13s (± 0.38%) | 2.14s (± 0.38%) | ~ | 2.13s | 2.15s | p=0.666 n=6 |
| Check Time | 73.47s (± 0.49%) | 74.43s (± 0.77%) | +0.96s (+ 1.30%) | 73.59s | 75.13s | p=0.013 n=6 |
| Emit Time | 0.28s | 0.28s (± 2.26%) | ~ | 0.27s | 0.29s | p=1.000 n=6 |
| Total Time | 85.17s (± 0.43%) | 86.45s (± 0.65%) | +1.28s (+ 1.50%) | 85.59s | 87.10s | p=0.010 n=6 |
| self-build-src - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 1,250,056 | 1,250,052 | -4 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 264,970 | 264,969 | -1 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 2,404,460k (± 0.01%) | 2,404,510k (± 0.01%) | ~ | 2,404,182k | 2,404,942k | p=0.810 n=6 |
| Parse Time | 5.13s (± 0.81%) | 5.16s (± 0.36%) | ~ | 5.13s | 5.18s | p=0.199 n=6 |
| Bind Time | 1.91s (± 0.72%) | 1.91s (± 0.51%) | ~ | 1.90s | 1.92s | p=0.677 n=6 |
| Check Time | 34.93s (± 0.22%) | 34.98s (± 0.25%) | ~ | 34.87s | 35.09s | p=0.423 n=6 |
| Emit Time | 2.97s (± 1.32%) | 2.99s (± 0.98%) | ~ | 2.96s | 3.03s | p=0.748 n=6 |
| Total Time | 44.95s (± 0.27%) | 45.06s (± 0.20%) | ~ | 44.91s | 45.15s | p=0.128 n=6 |
| self-build-src-public-api - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 1,250,056 | 1,250,052 | -4 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 264,970 | 264,969 | -1 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 2,479,136k (± 0.02%) | 2,479,235k (± 0.03%) | ~ | 2,478,452k | 2,480,713k | p=0.936 n=6 |
| Parse Time | 6.34s (± 0.93%) | 6.34s (± 0.38%) | ~ | 6.31s | 6.38s | p=0.688 n=6 |
| Bind Time | 2.06s (± 0.53%) | 2.06s (± 0.86%) | ~ | 2.03s | 2.08s | p=0.454 n=6 |
| Check Time | 41.59s (± 0.19%) | 41.86s (± 0.65%) | ~ | 41.57s | 42.23s | p=0.066 n=6 |
| Emit Time | 3.80s (± 5.51%) | 3.55s (± 2.30%) | ~ | 3.41s | 3.62s | p=0.109 n=6 |
| Total Time | 53.83s (± 0.35%) | 53.83s (± 0.60%) | ~ | 53.47s | 54.26s | p=0.936 n=6 |
| self-compiler - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 260,936 | 260,932 | -4 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 106,385 | 106,384 | -1 (- 0.00%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 436,643k (± 0.03%) | 436,625k (± 0.03%) | ~ | 436,496k | 436,844k | p=0.470 n=6 |
| Parse Time | 3.45s (± 0.68%) | 3.44s (± 0.98%) | ~ | 3.40s | 3.49s | p=0.571 n=6 |
| Bind Time | 1.31s (± 0.64%) | 1.30s (± 0.49%) | ~ | 1.29s | 1.31s | p=0.226 n=6 |
| Check Time | 18.23s (± 0.25%) | 18.14s (± 0.49%) | ~ | 18.04s | 18.26s | p=0.108 n=6 |
| Emit Time | 1.53s (± 1.06%) | 1.52s (± 1.73%) | ~ | 1.48s | 1.56s | p=0.212 n=6 |
| Total Time | 24.51s (± 0.21%) | 24.41s (± 0.42%) | ~ | 24.28s | 24.55s | p=0.065 n=6 |
| ts-pre-modules - node (v18.15.0, x64) | ||||||
| Errors | 68 | 68 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 225,916 | 225,916 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 94,414 | 94,414 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 370,906k (± 0.01%) | 371,019k (± 0.01%) | +113k (+ 0.03%) | 370,942k | 371,087k | p=0.008 n=6 |
| Parse Time | 2.77s (± 0.82%) | 2.79s (± 0.77%) | ~ | 2.76s | 2.81s | p=0.258 n=6 |
| Bind Time | 1.57s (± 1.48%) | 1.56s (± 0.66%) | ~ | 1.55s | 1.58s | p=0.162 n=6 |
| Check Time | 15.79s (± 0.23%) | 15.85s (± 0.40%) | +0.06s (+ 0.37%) | 15.80s | 15.94s | p=0.044 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 20.14s (± 0.31%) | 20.21s (± 0.22%) | ~ | 20.16s | 20.26s | p=0.053 n=6 |
| vscode - node (v18.15.0, x64) | ||||||
| Errors | 1 | 1 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 3,099,752 | 3,099,796 | +44 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
| Types | 1,068,965 | 1,068,870 | -95 (- 0.01%) | ~ | ~ | p=0.001 n=6 |
| Memory used | 3,196,791k (± 0.00%) | 3,201,832k (± 0.00%) | +5,040k (+ 0.16%) | 3,201,774k | 3,201,888k | p=0.005 n=6 |
| Parse Time | 13.90s (± 0.36%) | 14.13s (± 0.41%) | +0.23s (+ 1.68%) | 14.04s | 14.20s | p=0.005 n=6 |
| Bind Time | 4.34s (± 0.24%) | 4.36s (± 1.93%) | ~ | 4.31s | 4.53s | p=0.617 n=6 |
| Check Time | 81.85s (± 0.18%) | 81.97s (± 0.37%) | ~ | 81.57s | 82.31s | p=0.688 n=6 |
| Emit Time | 22.34s (± 0.31%) | 23.27s (± 0.43%) | 🔻+0.94s (+ 4.19%) | 23.17s | 23.45s | p=0.005 n=6 |
| Total Time | 122.43s (± 0.17%) | 123.73s (± 0.18%) | +1.31s (+ 1.07%) | 123.37s | 123.94s | p=0.005 n=6 |
| webpack - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 278,920 | 278,920 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 113,837 | 113,837 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 428,434k (± 0.01%) | 428,845k (± 0.02%) | +411k (+ 0.10%) | 428,740k | 428,961k | p=0.005 n=6 |
| Parse Time | 4.89s (± 0.38%) | 4.92s (± 0.59%) | ~ | 4.89s | 4.97s | p=0.075 n=6 |
| Bind Time | 2.13s (± 0.65%) | 2.15s (± 0.38%) | +0.03s (+ 1.33%) | 2.14s | 2.16s | p=0.011 n=6 |
| Check Time | 21.89s (± 0.46%) | 21.91s (± 0.33%) | ~ | 21.84s | 22.02s | p=0.573 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 28.91s (± 0.40%) | 28.99s (± 0.30%) | ~ | 28.89s | 29.14s | p=0.230 n=6 |
| xstate-main - node (v18.15.0, x64) | ||||||
| Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
| Symbols | 540,027 | 540,027 | ~ | ~ | ~ | p=1.000 n=6 |
| Types | 181,292 | 181,292 | ~ | ~ | ~ | p=1.000 n=6 |
| Memory used | 483,541k (± 0.01%) | 483,566k (± 0.01%) | ~ | 483,518k | 483,621k | p=0.471 n=6 |
| Parse Time | 4.01s (± 0.34%) | 4.01s (± 0.32%) | ~ | 4.00s | 4.03s | p=0.510 n=6 |
| Bind Time | 1.43s (± 0.72%) | 1.42s (± 0.72%) | ~ | 1.41s | 1.44s | p=0.134 n=6 |
| Check Time | 22.89s (± 0.32%) | 22.88s (± 0.15%) | ~ | 22.84s | 22.94s | p=1.000 n=6 |
| Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
| Total Time | 28.33s (± 0.21%) | 28.31s (± 0.15%) | ~ | 28.26s | 28.39s | p=0.685 n=6 |
- node (v18.15.0, x64)
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - 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)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
| Benchmark | Name | Iterations |
|---|---|---|
| Current | pr | 6 |
| Baseline | baseline | 6 |
Developer Information:
Pretty sure what I have works, though moving the storage to Program would be more efficient, though also a public API break... I don’t think I’ll have time to get this into 5.7 as I’ll be out on vacation starting tomorrow and returning past the beta deadline.
@andrewbranch Here are the results of running the top 400 repos with tsc comparing main and refs/pull/60039/merge:
Something interesting changed - please have a look.
Details
blakeblackshear/frigate
web/tsconfig.json
error TS2322: Type 'IconType | typeof import("/mnt/ts_downloads/_/m/frigate/web/node_modules/react-icons/lu/index")' is not assignable to type 'IconType'.error TS2322: Type 'IconType | typeof import("/mnt/ts_downloads/_/m/frigate/web/node_modules/react-icons/lu/index") | undefined' is not assignable to type 'IconType | undefined'.error TS2604: JSX element type 'Icon' does not have any construct or call signatures.error TS2786: 'Icon' cannot be used as a JSX component.error TS2322: Type 'IconType | typeof import("/mnt/ts_downloads/_/m/frigate/web/node_modules/react-icons/lu/index")' is not assignable to type 'IconType | undefined'.
openai-translator/openai-translator
tsconfig.json
error TS2352: Conversion of type 'typeof import("/mnt/ts_downloads/_/m/openai-translator/node_modules/.pnpm/[email protected][email protected]/node_modules/react-icons/md/index")' to type 'Record<string, IconType>' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.error TS2769: No overload matches this call.
It took me a while to reduce this 🥵 but here's a test case for the crash I mentioned in my previous comments here: https://github.com/andrewbranch/TypeScript/pull/3
@jakebailey could you build this one? :) a user would like to test effect of this PR on the VS Code crashes they experience: https://github.com/microsoft/TypeScript/issues/60243#issuecomment-2513273068
Unfortunately not, as the PR has merge conflicts.
@typescript-bot pack this
Starting jobs; this comment will be updated as builds start and complete.
| Command | Status | Results |
|---|---|---|
pack this |
✅ Started | ✅ Results |
Hey @andrewbranch, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:
{
"devDependencies": {
"typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/164262/artifacts?artifactName=tgz&fileId=5C36B3AB96C551B2F152060199F6CA1288F88DF0A9038EE0C59713D67D1C98DE02&fileName=/typescript-5.8.0-insiders.20241203.tgz"
}
}
and then running npm install.
There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/[email protected]".;