Skip to content

Check resolution of tslib per file #58654

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

Merged
merged 5 commits into from
May 28, 2024
Merged

Check resolution of tslib per file #58654

merged 5 commits into from
May 28, 2024

Conversation

gabritto
Copy link
Member

@gabritto gabritto commented May 24, 2024

This issue was raised by @andrewbranch during design meeting.

When the compiler option importHelpers is on, when we emit a module file, we will insert an appropriate import from tslib when an emit helper is needed.
To make sure this emitted import will be valid, during type checking, we try to resolve tslib whenever we detect we will need an emit helper, and error if we can't resolve it.
However, that resolution and respective error is currently not done per every file that will need the emit helper during emit, it is only done once per type checker and the resolution result is cached. This means that we could be missing errors in situations where for the first file we check tslib resolution, it resolves, but for a future file it would not resolve.

The newly added test case tslibNotFoundDifferentModules illustrates this: we have two packages in a project, one of them (package1) that has tslib in its node_modules/, and the other (package2) that doesn't. We first check the file in project1, and there we are able to resolve tslib, and so when we go and check the file in project2, we don't error saying tslib is missing, but we should.

This PR fixes this problem by making this tslib resolution check for every file an emit helper will be used.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels May 24, 2024
@gabritto gabritto requested review from andrewbranch and rbuckton May 24, 2024 22:03
@gabritto
Copy link
Member Author

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 24, 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

@gabritto gabritto marked this pull request as ready for review May 24, 2024 22:08
Comment on lines 49516 to 49517
const uncheckedHelpers = helpers & ~requestedExternalEmitHelpers;
const uncheckedHelpers = helpers & ~links.requestedExternalEmitHelpers;
for (let helper = ExternalEmitHelpers.FirstEmitHelper; helper <= ExternalEmitHelpers.LastEmitHelper; helper <<= 1) {
Copy link
Member

@andrewbranch andrewbranch May 24, 2024

Choose a reason for hiding this comment

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

If I’m understanding this correctly, this checking is now happening once for every source file that needs to access helpers, but the checking itself only depends on the helpersModule. Maybe requestedExternalEmitHelpers could be stored on getSymbolLinks(helpersModule) instead of getNodeLinks(sourceFile) and only happen once per instance of helpers.

However, the error reporting does reference the location being passed in, and maybe that matters for your region-based diagnostics work? Although, we’re still only doing this once per requested helper function per source file, so the location of the errors could be check order dependent both before and after this PR, as it currently is 🤔

Copy link
Member Author

@gabritto gabritto May 24, 2024

Choose a reason for hiding this comment

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

If I’m understanding this correctly, this checking is now happening once for every source file that needs to access helpers, but the checking itself only depends on the helpersModule. Maybe requestedExternalEmitHelpers could be stored on getSymbolLinks(helpersModule) instead of getNodeLinks(sourceFile) and only happen once per instance of helpers.

Good point. So then requestedExternalEmitHelperNames would be irrelevant.

However, the error reporting does reference the location being passed in, and maybe that matters for your region-based diagnostics work? Although, we’re still only doing this once per requested helper function per source file, so the location of the errors could be check order dependent both before and after this PR, as it currently is 🤔

Yeah, I'm planning on dealing with the error location varying in a future PR. But with this PR, we already address the problem of this error possibly jumping to a different, unopened file and never showing up for the user in the editor.

Copy link
Member

Choose a reason for hiding this comment

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

So then requestedExternalEmitHelperNames would be irrelevant.

Hmm, would it? A given instance of a helpers module might have checked __extends in one call, and then the same instance needs to check __assign in a later call, and ought to be able to skip checking __extends again.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ah, I mean requestedExternalEmitHelperNames and requestedExternalEmitHelpers should represent the same set, if requestedExternalEmitHelpers is now stored at the symbol level, so we only need one or the other.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, so I think I confused myself again.

Say we have two different typescript files that need the emit helper called __awaiter. Say those two files share the same tslib. Should we have an error on both typescript files saying their tslib is missing the emit helper called __awaiter? Or only on one of the files?

Copy link
Member

Choose a reason for hiding this comment

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

I think it would be annoying on the CLI, or in any list of project-wide diagnostics, to get tslib-related errors duplicated across many/all files. I’m not sure how we might want to handle that in an editor scenario, though.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it would be annoying on the CLI, or in any list of project-wide diagnostics, to get tslib-related errors duplicated across many/all files.

That, at least, matches what we currently do (i.e., only error on the first occurrence).

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 added test tslibMultipleMissingHelper.ts that shows the specific helper checking behavior.

@typescript-bot
Copy link
Collaborator

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

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

@gabritto
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,154 62,154 ~ ~ ~ p=1.000 n=6
Types 50,248 50,248 ~ ~ ~ p=1.000 n=6
Memory used 193,495k (± 0.96%) 193,544k (± 0.93%) ~ 192,254k 195,886k p=0.936 n=6
Parse Time 1.57s (± 0.62%) 1.57s (± 0.77%) ~ 1.55s 1.58s p=0.720 n=6
Bind Time 0.87s (± 1.34%) 0.86s (± 0.87%) ~ 0.85s 0.87s p=0.279 n=6
Check Time 11.29s (± 0.55%) 11.29s (± 0.56%) ~ 11.21s 11.36s p=0.810 n=6
Emit Time 3.13s (± 0.77%) 3.14s (± 0.52%) ~ 3.12s 3.16s p=0.515 n=6
Total Time 16.86s (± 0.32%) 16.87s (± 0.24%) ~ 16.81s 16.91s p=1.000 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,110 944,110 ~ ~ ~ p=1.000 n=6
Types 407,140 407,140 ~ ~ ~ p=1.000 n=6
Memory used 1,222,104k (± 0.00%) 1,222,096k (± 0.01%) ~ 1,221,959k 1,222,169k p=0.936 n=6
Parse Time 6.81s (± 0.44%) 6.81s (± 0.44%) ~ 6.76s 6.85s p=0.935 n=6
Bind Time 1.87s (± 0.71%) 1.88s (± 0.58%) ~ 1.86s 1.89s p=0.247 n=6
Check Time 31.33s (± 0.28%) 31.39s (± 0.50%) ~ 31.20s 31.61s p=0.630 n=6
Emit Time 14.84s (± 0.58%) 14.85s (± 0.66%) ~ 14.75s 15.03s p=0.936 n=6
Total Time 54.84s (± 0.34%) 54.92s (± 0.37%) ~ 54.72s 55.20s p=0.630 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,982,513 1,982,513 ~ ~ ~ p=1.000 n=6
Types 882,101 882,101 ~ ~ ~ p=1.000 n=6
Memory used 1,886,175k (± 0.00%) 1,886,206k (± 0.00%) ~ 1,886,171k 1,886,247k p=0.173 n=6
Parse Time 6.80s (± 0.16%) 6.80s (± 0.22%) ~ 6.78s 6.82s p=0.805 n=6
Bind Time 2.29s (± 0.43%) 2.29s (± 0.90%) ~ 2.28s 2.33s p=1.000 n=6
Check Time 60.65s (± 0.45%) 60.58s (± 0.32%) ~ 60.36s 60.92s p=0.689 n=6
Emit Time 0.14s (± 4.05%) 0.14s (± 2.95%) ~ 0.13s 0.14s p=0.282 n=6
Total Time 69.88s (± 0.38%) 69.82s (± 0.26%) ~ 69.58s 70.12s p=0.630 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,340 1,226,364 +24 (+ 0.00%) ~ ~ p=0.001 n=6
Types 260,977 260,977 ~ ~ ~ p=1.000 n=6
Memory used 2,343,912k (± 0.06%) 2,394,524k (± 3.26%) ~ 2,342,907k 2,495,812k p=0.378 n=6
Parse Time 7.45s (± 0.77%) 7.48s (± 1.12%) ~ 7.35s 7.54s p=0.423 n=6
Bind Time 2.78s (± 1.01%) 2.80s (± 0.74%) ~ 2.78s 2.83s p=0.064 n=6
Check Time 49.20s (± 0.30%) 49.47s (± 0.41%) ~ 49.27s 49.78s p=0.066 n=6
Emit Time 3.84s (± 6.51%) 3.78s (± 3.58%) ~ 3.63s 3.92s p=1.000 n=6
Total Time 63.26s (± 0.32%) 63.53s (± 0.48%) ~ 63.19s 64.01s 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,226,340 1,226,364 +24 (+ 0.00%) ~ ~ p=0.001 n=6
Types 260,977 260,977 ~ ~ ~ p=1.000 n=6
Memory used 2,420,347k (± 0.02%) 2,420,093k (± 0.03%) ~ 2,419,003k 2,420,940k p=0.471 n=6
Parse Time 6.20s (± 0.62%) 6.22s (± 0.74%) ~ 6.14s 6.28s p=0.520 n=6
Bind Time 2.04s (± 0.88%) 2.05s (± 0.82%) ~ 2.02s 2.07s p=0.280 n=6
Check Time 40.27s (± 0.38%) 40.26s (± 0.25%) ~ 40.14s 40.39s p=1.000 n=6
Emit Time 3.01s (± 3.72%) 3.06s (± 2.91%) ~ 2.91s 3.13s p=0.229 n=6
Total Time 51.52s (± 0.44%) 51.60s (± 0.27%) ~ 51.40s 51.77s p=0.298 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 258,038 258,040 +2 (+ 0.00%) ~ ~ p=0.001 n=6
Types 104,984 104,984 ~ ~ ~ p=1.000 n=6
Memory used 426,963k (± 0.01%) 426,979k (± 0.00%) ~ 426,949k 426,999k p=0.261 n=6
Parse Time 3.33s (± 0.73%) 3.35s (± 0.61%) ~ 3.31s 3.37s p=0.168 n=6
Bind Time 1.32s (± 1.14%) 1.32s (± 1.27%) ~ 1.30s 1.34s p=0.737 n=6
Check Time 18.06s (± 0.26%) 18.02s (± 0.66%) ~ 17.91s 18.25s p=0.149 n=6
Emit Time 1.35s (± 1.21%) 1.34s (± 1.02%) ~ 1.32s 1.36s p=0.677 n=6
Total Time 24.06s (± 0.25%) 24.04s (± 0.47%) ~ 23.93s 24.25s p=0.374 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,575 224,575 ~ ~ ~ p=1.000 n=6
Types 93,785 93,785 ~ ~ ~ p=1.000 n=6
Memory used 369,828k (± 0.02%) 369,869k (± 0.02%) ~ 369,731k 369,989k p=0.471 n=6
Parse Time 3.51s (± 0.64%) 3.50s (± 1.34%) ~ 3.45s 3.56s p=1.000 n=6
Bind Time 1.93s (± 1.77%) 1.92s (± 1.08%) ~ 1.89s 1.95s p=0.936 n=6
Check Time 19.26s (± 0.33%) 19.32s (± 0.22%) ~ 19.26s 19.36s p=0.126 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.70s (± 0.30%) 24.74s (± 0.24%) ~ 24.67s 24.84s p=0.370 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,837,735 2,837,735 ~ ~ ~ p=1.000 n=6
Types 961,558 961,558 ~ ~ ~ p=1.000 n=6
Memory used 3,010,292k (± 0.00%) 3,010,346k (± 0.00%) ~ 3,010,269k 3,010,428k p=0.230 n=6
Parse Time 13.84s (± 0.26%) 13.83s (± 0.38%) ~ 13.77s 13.91s p=0.687 n=6
Bind Time 4.16s (± 0.20%) 4.15s (± 0.25%) ~ 4.14s 4.17s p=0.546 n=6
Check Time 74.14s (± 1.90%) 74.65s (± 2.54%) ~ 73.26s 77.13s p=0.936 n=6
Emit Time 22.87s (± 6.89%) 22.30s (± 8.62%) ~ 19.75s 23.73s p=0.936 n=6
Total Time 115.01s (± 0.33%) 114.93s (± 0.24%) ~ 114.47s 115.28s p=1.000 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 266,087 266,087 ~ ~ ~ p=1.000 n=6
Types 108,518 108,518 ~ ~ ~ p=1.000 n=6
Memory used 410,923k (± 0.01%) 410,942k (± 0.02%) ~ 410,850k 411,092k p=1.000 n=6
Parse Time 4.78s (± 0.53%) 4.77s (± 0.36%) ~ 4.75s 4.79s p=0.466 n=6
Bind Time 2.06s (± 1.42%) 2.05s (± 1.61%) ~ 1.99s 2.09s p=0.871 n=6
Check Time 21.08s (± 0.22%) 21.10s (± 0.27%) ~ 21.03s 21.20s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 27.93s (± 0.15%) 27.92s (± 0.12%) ~ 27.87s 27.96s p=0.687 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 535,745 535,745 ~ ~ ~ p=1.000 n=6
Types 182,753 182,753 ~ ~ ~ p=1.000 n=6
Memory used 470,404k (± 0.01%) 470,430k (± 0.01%) ~ 470,369k 470,494k p=0.378 n=6
Parse Time 3.18s (± 0.56%) 3.16s (± 0.33%) ~ 3.15s 3.18s p=0.104 n=6
Bind Time 1.20s (± 0.86%) 1.20s (± 0.34%) ~ 1.20s 1.21s p=0.924 n=6
Check Time 18.38s (± 0.40%) 18.33s (± 0.38%) ~ 18.23s 18.41s p=0.261 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.77s (± 0.35%) 22.70s (± 0.33%) ~ 22.60s 22.80s p=0.226 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • 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:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@gabritto
Copy link
Member Author

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 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

@gabritto gabritto requested review from andrewbranch and rbuckton May 28, 2024 18:12
@typescript-bot
Copy link
Collaborator

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

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

@gabritto
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,025k (± 1.00%) 194,046k (± 1.02%) ~ 192,179k 195,925k p=0.936 n=6
Parse Time 1.57s (± 1.32%) 1.57s (± 0.87%) ~ 1.55s 1.59s p=0.514 n=6
Bind Time 0.86s (± 1.58%) 0.87s (± 1.03%) ~ 0.86s 0.88s p=0.359 n=6
Check Time 11.36s (± 0.31%) 11.34s (± 0.48%) ~ 11.26s 11.41s p=0.628 n=6
Emit Time 3.16s (± 0.86%) 3.14s (± 1.27%) ~ 3.09s 3.19s p=0.518 n=6
Total Time 16.94s (± 0.17%) 16.92s (± 0.48%) ~ 16.82s 17.03s p=0.630 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,105 944,105 ~ ~ ~ p=1.000 n=6
Types 407,032 407,032 ~ ~ ~ p=1.000 n=6
Memory used 1,222,028k (± 0.00%) 1,222,017k (± 0.00%) ~ 1,221,929k 1,222,096k p=0.748 n=6
Parse Time 8.10s (± 0.58%) 8.12s (± 0.70%) ~ 8.08s 8.23s p=0.808 n=6
Bind Time 2.24s (± 0.67%) 2.24s (± 0.52%) ~ 2.22s 2.25s p=0.730 n=6
Check Time 36.54s (± 0.43%) 36.45s (± 0.50%) ~ 36.19s 36.63s p=0.335 n=6
Emit Time 17.53s (± 0.36%) 17.59s (± 0.38%) ~ 17.48s 17.66s p=0.128 n=6
Total Time 64.41s (± 0.24%) 64.39s (± 0.36%) ~ 63.99s 64.62s p=1.000 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 1,983,122 1,983,122 ~ ~ ~ p=1.000 n=6
Types 881,307 881,307 ~ ~ ~ p=1.000 n=6
Memory used 1,888,343k (± 0.00%) 1,888,348k (± 0.00%) ~ 1,888,318k 1,888,367k p=0.689 n=6
Parse Time 6.83s (± 0.39%) 6.81s (± 0.34%) ~ 6.77s 6.84s p=0.288 n=6
Bind Time 2.30s (± 0.55%) 2.28s (± 0.53%) -0.02s (- 1.01%) 2.26s 2.29s p=0.022 n=6
Check Time 60.74s (± 0.27%) 60.69s (± 0.50%) ~ 60.37s 61.06s p=0.688 n=6
Emit Time 0.14s (± 2.95%) 0.14s (± 2.88%) ~ 0.14s 0.15s p=0.218 n=6
Total Time 70.01s (± 0.21%) 69.92s (± 0.44%) ~ 69.56s 70.30s p=0.521 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,317 1,226,340 +23 (+ 0.00%) ~ ~ p=0.001 n=6
Types 260,840 260,840 ~ ~ ~ p=1.000 n=6
Memory used 2,342,605k (± 0.05%) 2,393,520k (± 3.28%) ~ 2,341,270k 2,495,217k p=0.230 n=6
Parse Time 4.97s (± 1.27%) 4.96s (± 0.84%) ~ 4.91s 5.03s p=1.000 n=6
Bind Time 1.91s (± 0.54%) 1.91s (± 0.71%) ~ 1.89s 1.93s p=0.867 n=6
Check Time 33.85s (± 0.27%) 33.85s (± 0.43%) ~ 33.66s 34.09s p=0.936 n=6
Emit Time 2.58s (± 2.89%) 2.55s (± 3.56%) ~ 2.45s 2.69s p=0.575 n=6
Total Time 43.32s (± 0.30%) 43.29s (± 0.37%) ~ 43.06s 43.47s p=0.936 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,317 1,226,340 +23 (+ 0.00%) ~ ~ p=0.001 n=6
Types 260,840 260,840 ~ ~ ~ p=1.000 n=6
Memory used 2,470,114k (± 3.17%) 2,420,120k (± 0.04%) ~ 2,418,794k 2,421,104k p=1.000 n=6
Parse Time 7.68s (± 0.78%) 7.70s (± 1.01%) ~ 7.61s 7.84s p=0.688 n=6
Bind Time 2.51s (± 0.56%) 2.50s (± 0.33%) ~ 2.49s 2.51s p=0.466 n=6
Check Time 49.79s (± 0.26%) 49.99s (± 0.61%) ~ 49.69s 50.47s p=0.298 n=6
Emit Time 3.79s (± 3.86%) 3.79s (± 3.67%) ~ 3.61s 3.98s p=0.936 n=6
Total Time 63.75s (± 0.31%) 63.98s (± 0.74%) ~ 63.65s 64.74s p=0.810 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 258,026 258,027 +1 (+ 0.00%) ~ ~ p=0.001 n=6
Types 104,904 104,904 ~ ~ ~ p=1.000 n=6
Memory used 426,955k (± 0.02%) 426,878k (± 0.01%) ~ 426,825k 426,939k p=0.066 n=6
Parse Time 4.12s (± 0.48%) 4.11s (± 0.43%) ~ 4.09s 4.14s p=0.567 n=6
Bind Time 1.62s (± 1.77%) 1.62s (± 0.84%) ~ 1.60s 1.64s p=0.566 n=6
Check Time 22.36s (± 0.31%) 22.30s (± 0.29%) ~ 22.21s 22.39s p=0.148 n=6
Emit Time 1.70s (± 1.10%) 1.66s (± 1.30%) -0.03s (- 1.96%) 1.63s 1.69s p=0.030 n=6
Total Time 29.80s (± 0.30%) 29.69s (± 0.20%) ~ 29.61s 29.77s p=0.053 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,565 224,565 ~ ~ ~ p=1.000 n=6
Types 93,734 93,734 ~ ~ ~ p=1.000 n=6
Memory used 369,849k (± 0.03%) 369,822k (± 0.03%) ~ 369,668k 369,951k p=0.575 n=6
Parse Time 3.52s (± 0.51%) 3.49s (± 0.87%) ~ 3.45s 3.54s p=0.106 n=6
Bind Time 1.93s (± 0.53%) 1.94s (± 0.62%) ~ 1.92s 1.95s p=0.675 n=6
Check Time 19.34s (± 0.36%) 19.30s (± 0.40%) ~ 19.19s 19.39s p=0.422 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.79s (± 0.26%) 24.72s (± 0.37%) ~ 24.62s 24.82s p=0.199 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,840,560 2,840,560 ~ ~ ~ p=1.000 n=6
Types 962,642 962,642 ~ ~ ~ p=1.000 n=6
Memory used 3,013,626k (± 0.00%) 3,013,642k (± 0.00%) ~ 3,013,566k 3,013,729k p=0.575 n=6
Parse Time 11.57s (± 0.25%) 11.56s (± 0.36%) ~ 11.52s 11.62s p=0.685 n=6
Bind Time 3.51s (± 2.15%) 3.60s (± 2.61%) ~ 3.46s 3.67s p=0.225 n=6
Check Time 65.13s (± 2.90%) 64.01s (± 2.10%) ~ 63.17s 66.72s p=0.375 n=6
Emit Time 18.46s (± 9.85%) 19.62s (± 7.20%) ~ 16.75s 20.35s p=0.298 n=6
Total Time 98.67s (± 0.10%) 98.79s (± 0.30%) ~ 98.52s 99.18s p=1.000 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 266,048 266,048 ~ ~ ~ p=1.000 n=6
Types 108,470 108,470 ~ ~ ~ p=1.000 n=6
Memory used 410,913k (± 0.02%) 410,922k (± 0.03%) ~ 410,809k 411,050k p=1.000 n=6
Parse Time 4.75s (± 0.75%) 4.78s (± 0.76%) ~ 4.74s 4.84s p=0.198 n=6
Bind Time 2.08s (± 0.66%) 2.07s (± 0.95%) ~ 2.04s 2.10s p=0.867 n=6
Check Time 21.07s (± 0.37%) 21.07s (± 0.31%) ~ 20.99s 21.16s p=0.936 n=6
Emit Time 0.00s 0.00s (±244.70%) ~ 0.00s 0.01s p=0.405 n=6
Total Time 27.90s (± 0.23%) 27.94s (± 0.23%) ~ 27.87s 28.02s p=0.376 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 535,743 535,743 ~ ~ ~ p=1.000 n=6
Types 182,738 182,738 ~ ~ ~ p=1.000 n=6
Memory used 470,402k (± 0.00%) 470,434k (± 0.01%) ~ 470,383k 470,502k p=0.128 n=6
Parse Time 3.17s (± 0.61%) 3.16s (± 0.28%) ~ 3.15s 3.17s p=0.222 n=6
Bind Time 1.20s 1.21s (± 0.86%) ~ 1.20s 1.22s p=0.174 n=6
Check Time 18.31s (± 0.23%) 18.38s (± 0.56%) ~ 18.28s 18.54s p=0.261 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.68s (± 0.22%) 22.74s (± 0.45%) ~ 22.65s 22.88s p=0.422 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • 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:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@gabritto gabritto requested a review from rbuckton May 28, 2024 22:12
@gabritto gabritto merged commit 8f408cc into main May 28, 2024
28 checks passed
@gabritto gabritto deleted the gabritto/tslibCheck branch May 28, 2024 23:45
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