Skip to content

Add new option "libReplacement" - #60829

Merged
jakebailey merged 5 commits into
microsoft:mainfrom
jakebailey:lib-replacement
Jan 24, 2025
Merged

Add new option "libReplacement"#60829
jakebailey merged 5 commits into
microsoft:mainfrom
jakebailey:lib-replacement

Conversation

@jakebailey

@jakebaileyjakebailey commented Dec 19, 2024

Copy link
Copy Markdown
Member

Lib replacement (https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#supporting-lib-from-node_modules) allows specially-named packages in node_modules to replace TypeScript's bundled lib.d.ts files. This feature is always on, so we always perform resolution to look for it in case it exists. This can have a negative perf impact; it's extra watchers, extra CPU time, extra IO, etc.

This PR adds a new compiler option libReplacement to control the feature; by default, it's enabled. In TS 6.0, it will be disabled by default.

@typescript-bottypescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Dec 19, 2024
@jakebailey

Copy link
Copy Markdown
MemberAuthor

@typescript-bot test it

@typescript-bot

typescript-bot commented Dec 19, 2024

Copy link
Copy Markdown
Contributor

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

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

@typescript-bot

Copy link
Copy Markdown
Contributor

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.

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks the same!

You can check the log here.

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Here they are:

tsc

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-Unions - node (v18.15.0, x64)
Errors3434~~~p=1.000 n=6
Symbols62,36362,363~~~p=1.000 n=6
Types50,39550,395~~~p=1.000 n=6
Memory used193,620k (± 0.76%)193,000k (± 0.10%)~192,861k193,244kp=0.230 n=6
Parse Time1.32s (± 0.42%)1.30s (± 0.93%)~1.29s1.32sp=0.090 n=6
Bind Time0.72s0.71s-0.01s (- 1.39%)~~p=0.001 n=6
Check Time9.76s (± 0.34%)9.79s (± 0.20%)+0.04s (+ 0.36%)9.76s9.81sp=0.043 n=6
Emit Time2.73s (± 0.73%)2.73s (± 0.28%)~2.72s2.74sp=0.869 n=6
Total Time14.52s (± 0.36%)14.54s (± 0.17%)~14.50s14.56sp=0.628 n=6
angular-1 - node (v18.15.0, x64)
Errors3737~~~p=1.000 n=6
Symbols947,936947,936~~~p=1.000 n=6
Types410,955410,955~~~p=1.000 n=6
Memory used1,225,783k (± 0.00%)1,224,782k (± 0.00%)-1,001k (- 0.08%)1,224,709k1,224,835kp=0.005 n=6
Parse Time6.65s (± 0.62%)6.55s (± 0.56%)-0.10s (- 1.48%)6.51s6.60sp=0.006 n=6
Bind Time1.89s (± 0.29%)1.88s (± 1.28%)~1.86s1.93sp=0.228 n=6
Check Time31.99s (± 0.37%)31.96s (± 0.41%)~31.80s32.13sp=0.810 n=6
Emit Time15.19s (± 0.25%)15.12s (± 0.65%)~14.93s15.21sp=0.126 n=6
Total Time55.71s (± 0.17%)55.52s (± 0.35%)-0.19s (- 0.34%)55.21s55.75sp=0.045 n=6
mui-docs - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,449,1722,449,172~~~p=1.000 n=6
Types896,410896,410~~~p=1.000 n=6
Memory used2,320,766k (± 0.00%)2,319,699k (± 0.00%)-1,067k (- 0.05%)2,319,654k2,319,791kp=0.005 n=6
Parse Time9.40s (± 0.20%)9.39s (± 0.13%)~9.37s9.40sp=0.406 n=6
Bind Time2.24s (± 0.18%)2.24s (± 0.37%)~2.23s2.25sp=0.285 n=6
Check Time73.51s (± 0.49%)73.73s (± 0.64%)~72.92s74.18sp=0.298 n=6
Emit Time0.27s (± 1.89%)0.28s+0.01s (+ 2.44%)~~p=0.025 n=6
Total Time85.42s (± 0.43%)85.63s (± 0.54%)~84.83s86.08sp=0.298 n=6
self-build-src - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,226,8801,226,965+85 (+ 0.01%)~~p=0.001 n=6
Types266,745266,768+23 (+ 0.01%)~~p=0.001 n=6
Memory used2,357,644k (± 0.02%)2,457,134k (± 7.64%)~2,335,833k2,699,767kp=0.378 n=6
Parse Time5.22s (± 1.19%)5.21s (± 1.33%)~5.16s5.34sp=0.689 n=6
Bind Time1.75s (± 0.86%)1.76s (± 1.04%)~1.73s1.78sp=0.510 n=6
Check Time35.23s (± 0.15%)35.03s (± 0.65%)~34.76s35.39sp=0.066 n=6
Emit Time2.96s (± 1.03%)3.01s (± 0.98%)+0.05s (+ 1.63%)2.96s3.04sp=0.043 n=6
Total Time45.18s (± 0.25%)45.01s (± 0.42%)~44.81s45.37sp=0.066 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,226,8801,226,965+85 (+ 0.01%)~~p=0.001 n=6
Types266,745266,768+23 (+ 0.01%)~~p=0.001 n=6
Memory used2,911,942k (±12.86%)3,131,439k (± 0.02%)~3,130,166k3,132,105kp=0.378 n=6
Parse Time6.96s (± 1.31%)6.91s (± 0.77%)~6.84s6.99sp=0.336 n=6
Bind Time2.17s (± 1.65%)2.18s (± 0.69%)~2.16s2.19sp=0.747 n=6
Check Time42.81s (± 0.71%)42.86s (± 0.50%)~42.54s43.08sp=0.936 n=6
Emit Time3.52s (± 2.51%)3.53s (± 1.36%)~3.46s3.59sp=1.000 n=6
Total Time55.46s (± 0.54%)55.50s (± 0.43%)~55.14s55.84sp=1.000 n=6
self-compiler - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols262,439262,468+29 (+ 0.01%)~~p=0.001 n=6
Types106,628106,646+18 (+ 0.02%)~~p=0.001 n=6
Memory used440,204k (± 0.01%)439,119k (± 0.01%)-1,085k (- 0.25%)439,031k439,167kp=0.005 n=6
Parse Time3.53s (± 1.33%)3.44s (± 0.65%)-0.09s (- 2.41%)3.41s3.48sp=0.005 n=6
Bind Time1.31s (± 1.63%)1.29s (± 1.30%)~1.27s1.32sp=0.106 n=6
Check Time18.94s (± 0.25%)18.94s (± 0.30%)~18.87s19.02sp=0.872 n=6
Emit Time1.53s (± 0.76%)1.54s (± 1.27%)~1.51s1.56sp=0.222 n=6
Total Time25.31s (± 0.30%)25.22s (± 0.14%)~25.16s25.26sp=0.065 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors7070~~~p=1.000 n=6
Symbols226,062226,062~~~p=1.000 n=6
Types94,48894,488~~~p=1.000 n=6
Memory used371,627k (± 0.01%)370,508k (± 0.03%)-1,119k (- 0.30%)370,451k370,717kp=0.005 n=6
Parse Time2.90s (± 1.17%)2.87s (± 1.64%)~2.78s2.92sp=0.227 n=6
Bind Time1.59s (± 0.97%)1.58s (± 1.35%)~1.56s1.61sp=0.465 n=6
Check Time16.44s (± 0.20%)16.48s (± 0.34%)~16.40s16.55sp=0.261 n=6
Emit Time0.00s (±244.70%)0.00s (±244.70%)~0.00s0.01sp=1.000 n=6
Total Time20.93s (± 0.21%)20.93s (± 0.41%)~20.79s21.00sp=0.687 n=6
vscode - node (v18.15.0, x64)
Errors33~~~p=1.000 n=6
Symbols3,224,4683,224,468~~~p=1.000 n=6
Types1,109,1871,109,187~~~p=1.000 n=6
Memory used3,290,008k (± 0.01%)3,288,983k (± 0.01%)-1,026k (- 0.03%)3,288,586k3,289,252kp=0.005 n=6
Parse Time14.14s (± 0.38%)14.19s (± 0.62%)~14.09s14.34sp=0.227 n=6
Bind Time4.56s (± 0.42%)4.52s (± 0.23%)-0.04s (- 0.80%)4.51s4.54sp=0.007 n=6
Check Time88.49s (± 3.32%)89.01s (± 1.88%)~86.76s90.41sp=0.748 n=6
Emit Time27.80s (± 8.64%)28.00s (± 2.67%)~27.40s29.00sp=0.298 n=6
Total Time134.98s (± 0.73%)135.73s (± 0.71%)~134.37s136.56sp=0.230 n=6
webpack - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols291,562291,562~~~p=1.000 n=6
Types118,971118,971~~~p=1.000 n=6
Memory used445,402k (± 0.01%)444,426k (± 0.03%)-977k (- 0.22%)444,239k444,607kp=0.005 n=6
Parse Time4.08s (± 0.65%)4.04s (± 1.05%)~3.99s4.09sp=0.106 n=6
Bind Time1.79s (± 0.55%)1.78s (± 1.26%)~1.76s1.82sp=0.391 n=6
Check Time18.81s (± 0.33%)18.84s (± 0.63%)~18.64s18.96sp=0.225 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time24.70s (± 0.35%)24.66s (± 0.64%)~24.41s24.84sp=1.000 n=6
xstate-main - node (v18.15.0, x64)
Errors55~~~p=1.000 n=6
Symbols552,233552,233~~~p=1.000 n=6
Types184,971184,971~~~p=1.000 n=6
Memory used492,410k (± 0.01%)491,348k (± 0.03%)-1,062k (- 0.22%)491,069k491,470kp=0.005 n=6
Parse Time4.25s (± 0.24%)4.20s (± 0.28%)-0.05s (- 1.14%)4.18s4.21sp=0.005 n=6
Bind Time1.46s (± 0.35%)1.47s (± 1.43%)~1.44s1.49sp=0.459 n=6
Check Time24.11s (± 0.40%)24.16s (± 0.95%)~24.00s24.61sp=1.000 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time29.81s (± 0.35%)29.83s (± 0.76%)~29.67s30.28sp=0.471 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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks good!

@jakebailey

Copy link
Copy Markdown
MemberAuthor

I guess nobody in our extended test suite uses this feature, or at least, their use of it does not actually "help" anything. Which all is a good thing.

@jakebailey
jakebailey marked this pull request as ready for review January 8, 2025 22:19
@jakebailey

jakebailey commented Jan 8, 2025

Copy link
Copy Markdown
MemberAuthor

I am tentatively marking this as ready for review; it doesn't really seem like anyone is using lib replacement at all in our extended suite, and this is IMO a good optimization which avoids setting up a load of failed resolution watchers. But, maybe this just needs to wait for 6.0.

The only thing this PR is probably missing are unit tests / some verification of the options I set on it, which I believe are probably wrong (should be more than affectsSemanticDiagnostics? I can never get these right.).

@jakebailey

Copy link
Copy Markdown
MemberAuthor

@typescript-bot perf test tsserver-only

@typescript-bot

typescript-bot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

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

CommandStatusResults
perf test tsserver-only✅ Started👀 Results

@jakebailey

Copy link
Copy Markdown
MemberAuthor

Consensus in the design meeting was to default this to "true" (do lib replacement) until 6.0 where we default it to "false" (don't do lib replacement).

Also, name can be bikeshedded.

@jakebailey
jakebailey marked this pull request as draft January 10, 2025 19:24
@typescript-bot

Copy link
Copy Markdown
Contributor

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

Here they are:

tsserver

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,325ms (± 0.27%)2,293ms (± 0.69%)-32ms (- 1.36%)2,273ms2,314msp=0.005 n=6
Req 2 - geterr5,313ms (± 0.23%)5,314ms (± 0.35%)~5,288ms5,336msp=0.936 n=6
Req 3 - references264ms (± 1.64%)267ms (± 1.12%)~263ms269msp=0.209 n=6
Req 4 - navto225ms (± 0.59%)217ms (± 0.39%)🟩-9ms (- 3.85%)216ms218msp=0.004 n=6
Req 5 - completionInfo count1,3571,357~~~p=1.000 n=6
Req 5 - completionInfo77ms (± 2.81%)75ms (± 0.54%)-2ms (- 2.39%)74ms75msp=0.009 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,440ms (± 0.94%)2,400ms (± 0.57%)-40ms (- 1.64%)2,386ms2,422msp=0.008 n=6
Req 2 - geterr4,007ms (± 0.42%)3,995ms (± 0.58%)~3,973ms4,029msp=0.298 n=6
Req 3 - references279ms (± 1.12%)279ms (± 1.69%)~273ms285msp=0.742 n=6
Req 4 - navto227ms223ms (± 0.18%)-4ms (- 1.84%)222ms223msp=0.002 n=6
Req 5 - completionInfo count1,5191,519~~~p=1.000 n=6
Req 5 - completionInfo83ms (± 5.11%)83ms (± 6.78%)~75ms87msp=1.000 n=6
xstate-main-1-tsserver - node (v18.15.0, x64)
Req 1 - updateOpen5,280ms (± 0.63%)5,257ms (± 0.35%)~5,224ms5,275msp=0.378 n=6
Req 2 - geterr1,149ms (± 0.32%)1,153ms (± 1.07%)~1,142ms1,176msp=0.872 n=6
Req 3 - references77ms (± 4.19%)83ms (± 5.61%)🔻+6ms (+ 7.84%)77ms87msp=0.018 n=6
Req 4 - navto451ms (± 0.75%)449ms (± 0.53%)~446ms451msp=0.568 n=6
Req 5 - completionInfo count3,4503,450~~~p=1.000 n=6
Req 5 - completionInfo828ms (± 1.36%)832ms (± 1.85%)~806ms850msp=0.575 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • CompilerTSServer - node (v18.15.0, x64)
  • Compiler-UnionsTSServer - node (v18.15.0, x64)
  • xstate-main-1-tsserver - node (v18.15.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@jakebaileyjakebailey changed the title Add new option "libReplacement", disable by defaultAdd new option "libReplacement"Jan 11, 2025
@jakebailey
jakebailey marked this pull request as ready for review January 11, 2025 01:00
@@ -0,0 +1 @@
[] No newline at end of file

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Compare to tests/baselines/reference/libReplacement(libreplacement=true).trace.json below, which has 1003 lines of traces for an empty file with lib=esnext.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Now 1,016 after we added more lib.d.ts files 😄

@jakebailey

Copy link
Copy Markdown
MemberAuthor

@typescript-bot test it

@typescript-bot

typescript-bot commented Jan 13, 2025

Copy link
Copy Markdown
Contributor

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

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

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks the same!

You can check the log here.

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Here they are:

tsc

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-Unions - node (v18.15.0, x64)
Errors3434~~~p=1.000 n=6
Symbols62,39062,390~~~p=1.000 n=6
Types50,39550,395~~~p=1.000 n=6
Memory used193,176k (± 0.08%)194,923k (± 1.02%)~193,032k196,774kp=0.230 n=6
Parse Time1.30s (± 0.79%)1.30s (± 0.75%)~1.29s1.31sp=0.784 n=6
Bind Time0.73s0.73s~~~p=1.000 n=6
Check Time9.78s (± 0.31%)9.75s (± 0.21%)~9.71s9.77sp=0.165 n=6
Emit Time2.73s (± 0.43%)2.73s (± 1.10%)~2.71s2.78sp=0.741 n=6
Total Time14.54s (± 0.18%)14.51s (± 0.34%)~14.46s14.57sp=0.518 n=6
angular-1 - node (v18.15.0, x64)
Errors3737~~~p=1.000 n=6
Symbols947,969947,969~~~p=1.000 n=6
Types410,955410,955~~~p=1.000 n=6
Memory used1,225,658k (± 0.00%)1,225,670k (± 0.00%)~1,225,593k1,225,743kp=0.470 n=6
Parse Time6.65s (± 0.86%)6.64s (± 0.65%)~6.58s6.68sp=0.746 n=6
Bind Time1.90s (± 0.27%)1.89s (± 0.64%)~1.87s1.90sp=0.070 n=6
Check Time32.07s (± 0.38%)32.01s (± 0.48%)~31.83s32.29sp=0.229 n=6
Emit Time15.18s (± 0.39%)15.18s (± 0.33%)~15.11s15.24sp=0.936 n=6
Total Time55.81s (± 0.24%)55.71s (± 0.37%)~55.49s56.10sp=0.065 n=6
mui-docs - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,445,9912,445,991~~~p=1.000 n=6
Types896,571896,571~~~p=1.000 n=6
Memory used2,309,665k (± 0.00%)2,309,664k (± 0.00%)~2,309,597k2,309,697kp=0.689 n=6
Parse Time8.92s (± 0.50%)8.92s (± 0.56%)~8.88s8.99sp=0.871 n=6
Bind Time2.12s (± 0.91%)2.13s (± 0.49%)~2.11s2.14sp=0.869 n=6
Check Time73.39s (± 0.66%)73.25s (± 0.58%)~72.78s74.00sp=0.471 n=6
Emit Time0.28s (± 2.67%)0.29s (± 3.68%)~0.27s0.30sp=0.611 n=6
Total Time84.72s (± 0.58%)84.58s (± 0.54%)~84.09s85.39sp=0.470 n=6
self-build-src - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,228,3771,228,460+83 (+ 0.01%)~~p=0.001 n=6
Types266,839266,863+24 (+ 0.01%)~~p=0.001 n=6
Memory used2,359,670k (± 0.01%)2,360,211k (± 0.01%)+540k (+ 0.02%)2,359,700k2,360,638kp=0.020 n=6
Parse Time5.22s (± 0.48%)5.18s (± 0.52%)-0.04s (- 0.70%)5.15s5.23sp=0.037 n=6
Bind Time1.79s (± 0.58%)1.78s (± 1.00%)~1.76s1.81sp=0.255 n=6
Check Time35.22s (± 0.21%)35.26s (± 0.31%)~35.14s35.43sp=0.521 n=6
Emit Time3.00s (± 1.09%)3.01s (± 0.94%)~2.98s3.05sp=0.748 n=6
Total Time45.23s (± 0.13%)45.24s (± 0.26%)~45.08s45.37sp=0.936 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,228,3771,228,460+83 (+ 0.01%)~~p=0.001 n=6
Types266,839266,863+24 (+ 0.01%)~~p=0.001 n=6
Memory used3,036,025k (± 9.75%)2,914,614k (±12.86%)~2,429,441k3,158,263kp=0.378 n=6
Parse Time6.98s (± 1.80%)6.93s (± 1.50%)~6.79s7.02sp=0.261 n=6
Bind Time2.16s (± 2.14%)2.16s (± 1.16%)~2.13s2.19sp=1.000 n=6
Check Time42.91s (± 0.66%)42.88s (± 0.44%)~42.63s43.18sp=0.689 n=6
Emit Time3.49s (± 2.52%)3.51s (± 2.26%)~3.38s3.63sp=0.629 n=6
Total Time55.55s (± 0.48%)55.48s (± 0.42%)~55.10s55.82sp=0.471 n=6
self-compiler - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols262,624262,651+27 (+ 0.01%)~~p=0.001 n=6
Types106,695106,714+19 (+ 0.02%)~~p=0.001 n=6
Memory used440,803k (± 0.01%)440,854k (± 0.02%)~440,703k440,925kp=0.128 n=6
Parse Time3.55s (± 1.13%)3.54s (± 0.75%)~3.51s3.59sp=0.629 n=6
Bind Time1.31s (± 1.01%)1.32s (± 1.00%)~1.31s1.34sp=0.366 n=6
Check Time19.03s (± 0.40%)19.00s (± 0.67%)~18.84s19.15sp=0.748 n=6
Emit Time1.54s (± 0.92%)1.53s (± 0.55%)~1.51s1.53sp=0.067 n=6
Total Time25.44s (± 0.43%)25.39s (± 0.46%)~25.25s25.53sp=0.521 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors7070~~~p=1.000 n=6
Symbols226,095226,095~~~p=1.000 n=6
Types94,48894,488~~~p=1.000 n=6
Memory used371,770k (± 0.05%)371,735k (± 0.05%)~371,595k372,090kp=0.575 n=6
Parse Time2.92s (± 1.26%)2.90s (± 0.70%)~2.87s2.93sp=0.466 n=6
Bind Time1.60s (± 1.55%)1.60s (± 1.52%)~1.56s1.62sp=0.935 n=6
Check Time16.50s (± 0.23%)16.52s (± 0.33%)~16.46s16.61sp=0.688 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time21.02s (± 0.24%)21.01s (± 0.41%)~20.90s21.14sp=1.000 n=6
vscode - node (v18.15.0, x64)
Errors33~~~p=1.000 n=6
Symbols3,238,9573,238,957~~~p=1.000 n=6
Types1,115,4911,115,491~~~p=1.000 n=6
Memory used3,306,788k (± 0.01%)3,306,726k (± 0.01%)~3,306,272k3,307,061kp=0.689 n=6
Parse Time14.20s (± 0.59%)14.15s (± 0.43%)~14.10s14.25sp=0.226 n=6
Bind Time4.60s (± 2.16%)4.59s (± 2.22%)~4.54s4.80sp=0.681 n=6
Check Time87.96s (± 1.14%)89.04s (± 3.08%)~87.25s94.15sp=0.873 n=6
Emit Time27.61s (± 1.01%)27.99s (± 2.78%)~27.28s29.10sp=0.471 n=6
Total Time134.37s (± 0.71%)135.77s (± 2.39%)~133.31s141.96sp=0.936 n=6
webpack - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols291,595291,595~~~p=1.000 n=6
Types118,971118,971~~~p=1.000 n=6
Memory used445,402k (± 0.02%)445,310k (± 0.04%)~444,956k445,486kp=0.575 n=6
Parse Time5.06s (± 1.31%)5.08s (± 0.92%)~5.03s5.15sp=0.421 n=6
Bind Time2.20s (± 1.32%)2.20s (± 1.30%)~2.17s2.25sp=1.000 n=6
Check Time23.34s (± 0.37%)23.52s (± 2.00%)~23.22s24.47sp=0.689 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time30.60s (± 0.45%)30.81s (± 1.50%)~30.45s31.72sp=0.688 n=6
xstate-main - node (v18.15.0, x64)
Errors55~~~p=1.000 n=6
Symbols555,050555,050~~~p=1.000 n=6
Types186,115186,115~~~p=1.000 n=6
Memory used494,008k (± 0.01%)493,958k (± 0.02%)~493,748k494,079kp=0.471 n=6
Parse Time3.40s (± 0.48%)3.40s (± 0.61%)~3.39s3.44sp=1.000 n=6
Bind Time1.18s (± 0.87%)1.19s (± 1.24%)~1.17s1.20sp=0.562 n=6
Check Time19.58s (± 0.41%)19.66s (± 1.22%)~19.53s20.15sp=0.936 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time24.17s (± 0.35%)24.26s (± 0.93%)~24.11s24.71sp=0.810 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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@typescript-bot

Copy link
Copy Markdown
Contributor

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

Everything looks good!

@jakebailey

Copy link
Copy Markdown
MemberAuthor

The only other thing I'm looking for is a bikeshed on the name; there are tests in the repo that call this "lib redirection", which is making me question this name.

`,
"/home/src/workspace/projects/project1/tsconfig.json": jsonToReadableText({
compilerOptions: { composite: true, typeRoots: ["./typeroot1"], lib: ["es5", "dom"], traceResolution: true },
compilerOptions: { composite: true, typeRoots: ["./typeroot1"], lib: ["es5", "dom"], traceResolution: true, libReplacement: libRedirection },

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Note libRedirection here.....

@jakebailey

Copy link
Copy Markdown
MemberAuthor

The PR which added this, #45771, uses the term "override"...

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: TeamFor Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jakebailey@typescript-bot@andrewbranch@RyanCavanaugh