Skip to content

Fix conditional type type parameter leak - #31455

Merged
Wesley Wigham (weswigham) merged 8 commits into
microsoft:mainfrom
weswigham:fix-conditional-param-leak
Mar 9, 2022
Merged

Fix conditional type type parameter leak#31455
Wesley Wigham (weswigham) merged 8 commits into
microsoft:mainfrom
weswigham:fix-conditional-param-leak

Conversation

@weswigham

Copy link
Copy Markdown
Member

Fixes#31402

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Some high-level questions.

Comment threadsrc/compiler/checker.ts Outdated
Comment threadsrc/compiler/checker.ts Outdated
const freshParams = map(root.inferTypeParameters, cloneTypeParameter);
const freshMapper = createTypeMapper(root.inferTypeParameters, freshParams);
const context = createInferenceContext(freshParams, /*signature*/ undefined, InferenceFlags.None);
// We have three mappers that need applying:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is there a more concise way to write this whole block? This right here is "here be dragons" commenting level Double Dragon. I expect demons to fly out of my nose after reading it.

Comment threadsrc/compiler/checker.ts Outdated
// * Clone the type parameters so their constraints can be instantiated in the context of `mapper`
// * Set the clones to both map the context and the original params
// * instantiate the extends type with the clones
// * incorporate all of the component mappers into the combined mapper for the members

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

oh no it happened
👃
👿

Comment threadsrc/compiler/checker.ts Outdated
Comment threadsrc/compiler/checker.ts Outdated
Comment threadsrc/compiler/checker.ts Outdated
@weswigham

Copy link
Copy Markdown
MemberAuthor

Nathan Shively-Sanders (@sandersn) comment order and informational content altered~

Comment threadsrc/compiler/checker.ts Outdated
// * The original `mapper` used to create this conditional
// * The mapper that maps the old root type parameter to the clone (`freshMapper`)
// * The mapper that maps the clone to its inference result (`context.mapper`)
const freshParams = map(root.inferTypeParameters, cloneTypeParameter);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm concerned about all the new type identities created by always cloning the type parameters here. Fresh type parameters mean more work and more bloat in relationship caches. I'm wondering if we can somehow realize that we don't need to clone as that clearly covers the vast majority of cases.

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.

We could avoid clone type parameters which aren't constrained to an instantiable type, for what that'd give us.

@weswigham

Copy link
Copy Markdown
MemberAuthor

@typescript-bot

TypeScript Bot (typescript-bot) commented May 23, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the perf test suite on this PR at 9133ec5. You can monitor the build here. It should now contribute to this PR's status checks.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented May 23, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized Definitely Typed test suite on this PR at 9133ec5. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented May 23, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the extended test suite on this PR at 9133ec5. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

Copy link
Copy Markdown
Contributor

Wesley Wigham (@weswigham)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..31455

Metricmaster31455DeltaBestWorst
Angular - node (v12.1.0, x64)
Memory used314,986k (± 0.02%)314,969k (± 0.03%)-17k (- 0.01%)314,832k315,235k
Parse Time1.38s (± 0.55%)1.38s (± 0.72%)+0.01s (+ 0.51%)1.36s1.41s
Bind Time0.73s (± 0.50%)0.73s (± 0.65%)+0.00s (+ 0.14%)0.72s0.74s
Check Time4.06s (± 0.44%)4.06s (± 0.39%)+0.00s (+ 0.12%)4.04s4.10s
Emit Time5.13s (± 0.66%)5.19s (± 0.83%)+0.07s (+ 1.29%)5.07s5.27s
Total Time11.29s (± 0.27%)11.36s (± 0.44%)+0.08s (+ 0.69%)11.22s11.44s
Monaco - node (v12.1.0, x64)
Memory used343,694k (± 0.01%)343,706k (± 0.01%)+12k (+ 0.00%)343,642k343,781k
Parse Time1.18s (± 0.58%)1.18s (± 0.75%)0.00s ( 0.00%)1.16s1.20s
Bind Time0.68s (± 0.74%)0.67s (± 0.70%)-0.01s (- 0.74%)0.66s0.68s
Check Time4.17s (± 0.51%)4.17s (± 0.54%)-0.01s (- 0.12%)4.12s4.22s
Emit Time2.78s (± 0.96%)2.78s (± 0.55%)-0.00s (- 0.18%)2.74s2.80s
Total Time8.81s (± 0.45%)8.80s (± 0.37%)-0.02s (- 0.20%)8.73s8.86s
TFS - node (v12.1.0, x64)
Memory used300,757k (± 0.02%)300,781k (± 0.02%)+24k (+ 0.01%)300,703k300,914k
Parse Time0.91s (± 0.74%)0.90s (± 1.05%)-0.00s (- 0.33%)0.89s0.93s
Bind Time0.62s (± 0.90%)0.61s (± 0.81%)-0.00s (- 0.49%)0.61s0.63s
Check Time3.74s (± 0.36%)3.72s (± 0.51%)-0.01s (- 0.29%)3.69s3.76s
Emit Time2.88s (± 1.11%)2.84s (± 0.73%)-0.03s (- 1.15%)2.81s2.88s
Total Time8.13s (± 0.52%)8.09s (± 0.42%)-0.04s (- 0.54%)8.01s8.15s
Angular - node (v8.9.0, x64)
Memory used332,901k (± 0.02%)332,904k (± 0.02%)+3k (+ 0.00%)332,718k333,025k
Parse Time1.77s (± 0.46%)1.78s (± 0.57%)+0.01s (+ 0.45%)1.75s1.80s
Bind Time0.79s (± 1.07%)0.79s (± 0.94%)-0.00s (- 0.13%)0.77s0.80s
Check Time4.76s (± 1.50%)4.75s (± 1.25%)-0.01s (- 0.13%)4.65s4.84s
Emit Time5.81s (± 2.79%)5.83s (± 2.88%)+0.03s (+ 0.48%)5.54s6.22s
Total Time13.13s (± 1.00%)13.16s (± 1.11%)+0.03s (+ 0.19%)12.90s13.48s
Monaco - node (v8.9.0, x64)
Memory used360,827k (± 0.02%)360,813k (± 0.02%)-14k (- 0.00%)360,641k361,108k
Parse Time1.43s (± 0.16%)1.43s (± 0.31%)+0.00s (+ 0.07%)1.42s1.44s
Bind Time0.91s (± 2.49%)0.91s (± 1.84%)+0.00s (+ 0.33%)0.87s0.94s
Check Time4.98s (± 2.11%)4.95s (± 2.00%)-0.03s (- 0.56%)4.79s5.20s
Emit Time3.18s (± 6.24%)3.25s (± 5.75%)+0.07s (+ 2.14%)2.86s3.46s
Total Time10.49s (± 1.19%)10.54s (± 1.11%)+0.04s (+ 0.41%)10.27s10.69s
TFS - node (v8.9.0, x64)
Memory used316,306k (± 0.02%)316,239k (± 0.02%)-67k (- 0.02%)316,160k316,348k
Parse Time1.14s (± 0.53%)1.13s (± 0.29%)-0.01s (- 0.44%)1.12s1.14s
Bind Time0.66s (± 0.51%)0.66s (± 0.67%)-0.00s (- 0.15%)0.65s0.67s
Check Time4.35s (± 0.54%)4.35s (± 0.43%)-0.00s (- 0.07%)4.29s4.38s
Emit Time3.12s (± 0.99%)3.13s (± 0.40%)+0.01s (+ 0.26%)3.10s3.15s
Total Time9.26s (± 0.45%)9.27s (± 0.23%)+0.00s (+ 0.04%)9.23s9.32s
Angular - node (v8.9.0, x86)
Memory used188,600k (± 0.03%)188,554k (± 0.02%)-46k (- 0.02%)188,467k188,635k
Parse Time1.72s (± 0.76%)1.73s (± 0.70%)+0.01s (+ 0.41%)1.70s1.75s
Bind Time0.93s (± 1.62%)0.93s (± 1.24%)+0.00s (+ 0.43%)0.91s0.97s
Check Time4.39s (± 0.44%)4.40s (± 0.64%)+0.01s (+ 0.18%)4.33s4.44s
Emit Time5.62s (± 1.12%)5.66s (± 0.90%)+0.05s (+ 0.82%)5.51s5.77s
Total Time12.65s (± 0.51%)12.72s (± 0.47%)+0.07s (+ 0.52%)12.62s12.88s
Monaco - node (v8.9.0, x86)
Memory used201,313k (± 0.02%)201,350k (± 0.02%)+37k (+ 0.02%)201,270k201,418k
Parse Time1.50s (± 0.89%)1.49s (± 0.68%)-0.00s (- 0.33%)1.47s1.52s
Bind Time0.72s (± 1.37%)0.71s (± 1.16%)-0.00s (- 0.56%)0.70s0.74s
Check Time4.73s (± 0.37%)4.73s (± 0.72%)+0.00s (+ 0.02%)4.64s4.80s
Emit Time3.10s (± 0.87%)3.08s (± 0.59%)-0.02s (- 0.58%)3.04s3.12s
Total Time10.04s (± 0.33%)10.02s (± 0.49%)-0.03s (- 0.25%)9.86s10.10s
TFS - node (v8.9.0, x86)
Memory used177,377k (± 0.02%)177,395k (± 0.02%)+18k (+ 0.01%)177,279k177,478k
Parse Time1.20s (± 0.75%)1.18s (± 0.93%)-0.01s (- 1.09%)1.16s1.22s
Bind Time0.63s (± 1.29%)0.63s (± 0.88%)-0.00s (- 0.16%)0.62s0.65s
Check Time4.16s (± 0.32%)4.16s (± 0.74%)-0.00s (- 0.02%)4.09s4.23s
Emit Time2.77s (± 1.11%)2.78s (± 1.28%)+0.01s (+ 0.32%)2.67s2.87s
Total Time8.76s (± 0.49%)8.75s (± 0.60%)-0.00s (- 0.05%)8.59s8.85s
Angular - node (v9.0.0, x64)
Memory used332,552k (± 0.01%)332,502k (± 0.02%)-50k (- 0.02%)332,377k332,604k
Parse Time1.62s (± 0.43%)1.62s (± 0.64%)+0.00s (+ 0.19%)1.61s1.65s
Bind Time0.74s (± 0.95%)0.74s (± 0.95%)-0.00s (- 0.27%)0.73s0.76s
Check Time4.40s (± 0.69%)4.42s (± 0.60%)+0.02s (+ 0.43%)4.35s4.46s
Emit Time5.66s (± 1.19%)5.68s (± 1.47%)+0.02s (+ 0.28%)5.59s5.94s
Total Time12.42s (± 0.54%)12.45s (± 0.70%)+0.03s (+ 0.26%)12.32s12.73s
Monaco - node (v9.0.0, x64)
Memory used360,607k (± 0.03%)360,570k (± 0.03%)-37k (- 0.01%)360,286k360,766k
Parse Time1.29s (± 0.78%)1.28s (± 0.68%)-0.00s (- 0.39%)1.26s1.30s
Bind Time0.85s (± 0.72%)0.85s (± 0.00%)-0.00s (- 0.12%)0.85s0.85s
Check Time4.79s (± 0.68%)4.79s (± 0.47%)-0.00s (- 0.04%)4.75s4.84s
Emit Time3.29s (± 0.72%)3.27s (± 0.39%)-0.02s (- 0.67%)3.23s3.30s
Total Time10.21s (± 0.42%)10.19s (± 0.35%)-0.02s (- 0.24%)10.13s10.27s
TFS - node (v9.0.0, x64)
Memory used316,132k (± 0.02%)316,114k (± 0.01%)-18k (- 0.01%)316,030k316,172k
Parse Time1.01s (± 0.90%)1.00s (± 0.67%)-0.01s (- 0.79%)0.99s1.02s
Bind Time0.61s (± 1.35%)0.61s (± 0.66%)-0.01s (- 0.98%)0.60s0.62s
Check Time4.35s (± 1.58%)4.25s (± 1.83%)-0.10s (- 2.28%)4.16s4.47s
Emit Time2.96s (± 3.31%)3.03s (± 2.96%)+0.07s (+ 2.54%)2.79s3.14s
Total Time8.94s (± 0.58%)8.90s (± 0.43%)-0.04s (- 0.40%)8.84s9.01s
Angular - node (v9.0.0, x86)
Memory used188,693k (± 0.03%)188,684k (± 0.02%)-9k (- 0.00%)188,626k188,756k
Parse Time1.53s (± 0.78%)1.53s (± 0.47%)-0.00s (- 0.07%)1.52s1.55s
Bind Time0.86s (± 0.55%)0.86s (± 1.19%)-0.00s (- 0.12%)0.84s0.88s
Check Time4.08s (± 0.59%)4.08s (± 0.79%)+0.00s (+ 0.12%)4.03s4.19s
Emit Time5.34s (± 0.34%)5.33s (± 0.62%)-0.01s (- 0.15%)5.27s5.42s
Total Time11.81s (± 0.19%)11.81s (± 0.54%)-0.00s (- 0.03%)11.68s11.97s
Monaco - node (v9.0.0, x86)
Memory used201,353k (± 0.03%)201,343k (± 0.02%)-10k (- 0.00%)201,223k201,404k
Parse Time1.31s (± 0.51%)1.30s (± 0.58%)-0.01s (- 0.69%)1.29s1.32s
Bind Time0.64s (± 1.16%)0.64s (± 1.09%)-0.00s (- 0.31%)0.63s0.66s
Check Time4.57s (± 0.65%)4.58s (± 0.71%)+0.01s (+ 0.31%)4.52s4.67s
Emit Time3.03s (± 0.93%)3.00s (± 0.64%)-0.03s (- 0.96%)2.96s3.05s
Total Time9.55s (± 0.44%)9.52s (± 0.39%)-0.03s (- 0.29%)9.44s9.62s
TFS - node (v9.0.0, x86)
Memory used177,501k (± 0.03%)177,428k (± 0.02%)-73k (- 0.04%)177,371k177,501k
Parse Time1.02s (± 0.46%)1.03s (± 1.20%)+0.01s (+ 0.78%)1.01s1.06s
Bind Time0.58s (± 0.82%)0.57s (± 0.70%)-0.01s (- 1.04%)0.56s0.58s
Check Time3.99s (± 0.53%)3.99s (± 0.62%)-0.00s (- 0.05%)3.94s4.05s
Emit Time2.71s (± 1.82%)2.68s (± 0.96%)-0.03s (- 1.00%)2.61s2.72s
Total Time8.29s (± 0.78%)8.26s (± 0.37%)-0.03s (- 0.34%)8.22s8.35s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-142-generic
Architecturex64
Available Memory16 GB
Available Memory1 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
BenchmarkNameIterations
Current3145510
Baselinemaster10

@weswigham

Copy link
Copy Markdown
MemberAuthor

RWC failed because there was a small diff in master that needed accepting and is clean, DT is likewise as clean as master.

Anders Hejlsberg (@ahejlsberg) ?

Comment threadsrc/compiler/checker.ts Outdated
@weswigham

Copy link
Copy Markdown
MemberAuthor

@typescript-bot

TypeScript Bot (typescript-bot) commented Sep 24, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the perf test suite on this PR at 6c86917. You can monitor the build here. It should now contribute to this PR's status checks.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Sep 24, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized community code test suite on this PR at 6c86917. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented Sep 24, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized Definitely Typed test suite on this PR at 6c86917. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented Sep 24, 2019

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the extended test suite on this PR at 6c86917. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

Copy link
Copy Markdown
Contributor

The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master.

@typescript-bot

Copy link
Copy Markdown
Contributor

Wesley Wigham (@weswigham)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..31455

Metricmaster31455DeltaBestWorst
Angular - node (v12.1.0, x64)
Memory used331,733k (± 0.02%)332,075k (± 0.01%)+343k (+ 0.10%)332,000k332,182k
Parse Time1.56s (± 0.44%)1.56s (± 0.68%)+0.00s (+ 0.06%)1.53s1.59s
Bind Time0.80s (± 0.77%)0.80s (± 0.59%)+0.00s (+ 0.13%)0.79s0.81s
Check Time4.38s (± 0.68%)4.37s (± 0.46%)-0.01s (- 0.18%)4.34s4.42s
Emit Time5.28s (± 0.74%)5.28s (± 0.93%)-0.00s (- 0.08%)5.21s5.45s
Total Time12.02s (± 0.46%)12.00s (± 0.45%)-0.02s (- 0.13%)11.91s12.16s
Monaco - node (v12.1.0, x64)
Memory used346,979k (± 0.02%)346,948k (± 0.01%)-32k (- 0.01%)346,839k347,055k
Parse Time1.22s (± 0.43%)1.22s (± 0.53%)-0.00s (- 0.25%)1.20s1.23s
Bind Time0.69s (± 0.83%)0.69s (± 0.69%)-0.00s (- 0.43%)0.68s0.70s
Check Time4.38s (± 0.62%)4.37s (± 0.32%)-0.00s (- 0.07%)4.34s4.41s
Emit Time2.87s (± 0.50%)2.86s (± 0.61%)-0.01s (- 0.28%)2.82s2.90s
Total Time9.15s (± 0.42%)9.14s (± 0.24%)-0.01s (- 0.15%)9.09s9.20s
TFS - node (v12.1.0, x64)
Memory used303,630k (± 0.02%)303,649k (± 0.02%)+19k (+ 0.01%)303,515k303,842k
Parse Time0.95s (± 0.50%)0.95s (± 0.55%)+0.00s (+ 0.21%)0.94s0.96s
Bind Time0.64s (± 1.14%)0.64s (± 1.20%)-0.00s (- 0.47%)0.62s0.66s
Check Time3.98s (± 0.64%)3.99s (± 0.40%)+0.01s (+ 0.28%)3.94s4.01s
Emit Time2.96s (± 0.86%)2.97s (± 0.74%)+0.01s (+ 0.20%)2.91s3.01s
Total Time8.52s (± 0.51%)8.54s (± 0.23%)+0.02s (+ 0.19%)8.48s8.57s
Angular - node (v8.9.0, x64)
Memory used350,372k (± 0.01%)350,755k (± 0.02%)+383k (+ 0.11%)350,619k350,858k
Parse Time2.11s (± 0.38%)2.11s (± 0.48%)+0.00s (+ 0.14%)2.09s2.13s
Bind Time0.85s (± 0.94%)0.85s (± 0.53%)-0.00s (- 0.47%)0.84s0.86s
Check Time5.26s (± 0.60%)5.25s (± 0.50%)-0.02s (- 0.34%)5.19s5.31s
Emit Time5.95s (± 0.41%)6.00s (± 0.93%)+0.05s (+ 0.77%)5.90s6.12s
Total Time14.17s (± 0.37%)14.20s (± 0.50%)+0.03s (+ 0.20%)14.08s14.41s
Monaco - node (v8.9.0, x64)
Memory used364,614k (± 0.01%)364,617k (± 0.01%)+3k (+ 0.00%)364,561k364,686k
Parse Time1.56s (± 0.44%)1.56s (± 0.38%)+0.01s (+ 0.51%)1.55s1.58s
Bind Time0.90s (± 0.85%)0.89s (± 1.00%)-0.00s (- 0.11%)0.88s0.91s
Check Time5.21s (± 0.92%)5.27s (± 1.35%)+0.06s (+ 1.13%)5.18s5.46s
Emit Time3.28s (± 2.77%)3.21s (± 4.00%)-0.07s (- 2.19%)2.94s3.35s
Total Time10.94s (± 0.54%)10.94s (± 0.69%)-0.00s (- 0.05%)10.71s11.04s
TFS - node (v8.9.0, x64)
Memory used319,831k (± 0.01%)319,871k (± 0.01%)+40k (+ 0.01%)319,787k319,935k
Parse Time1.26s (± 0.47%)1.27s (± 0.60%)+0.00s (+ 0.16%)1.25s1.29s
Bind Time0.73s (± 7.05%)0.75s (± 6.89%)+0.01s (+ 1.90%)0.65s0.82s
Check Time4.51s (± 1.30%)4.50s (± 1.51%)-0.01s (- 0.20%)4.38s4.64s
Emit Time3.08s (± 0.77%)3.08s (± 0.71%)-0.00s (- 0.06%)3.03s3.14s
Total Time9.59s (± 0.29%)9.59s (± 0.52%)+0.00s (+ 0.05%)9.47s9.71s
Angular - node (v8.9.0, x86)
Memory used198,388k (± 0.02%)198,529k (± 0.02%)+142k (+ 0.07%)198,411k198,646k
Parse Time2.03s (± 0.59%)2.03s (± 0.59%)-0.01s (- 0.39%)2.01s2.06s
Bind Time0.97s (± 0.86%)0.96s (± 0.50%)-0.01s (- 0.83%)0.95s0.97s
Check Time4.78s (± 0.68%)4.78s (± 0.65%)-0.00s (- 0.08%)4.71s4.86s
Emit Time5.73s (± 0.73%)5.71s (± 0.58%)-0.02s (- 0.30%)5.65s5.78s
Total Time13.50s (± 0.53%)13.47s (± 0.37%)-0.03s (- 0.25%)13.37s13.61s
Monaco - node (v8.9.0, x86)
Memory used203,732k (± 0.01%)203,754k (± 0.01%)+22k (+ 0.01%)203,685k203,777k
Parse Time1.61s (± 0.36%)1.62s (± 0.66%)+0.00s (+ 0.19%)1.59s1.64s
Bind Time0.72s (± 0.69%)0.72s (± 0.72%)+0.00s (+ 0.42%)0.71s0.73s
Check Time5.09s (± 2.15%)5.07s (± 1.68%)-0.02s (- 0.47%)4.99s5.40s
Emit Time3.05s (± 3.50%)3.11s (± 2.50%)+0.06s (+ 1.97%)2.81s3.19s
Total Time10.47s (± 0.29%)10.51s (± 0.31%)+0.04s (+ 0.39%)10.44s10.58s
TFS - node (v8.9.0, x86)
Memory used179,732k (± 0.01%)179,742k (± 0.02%)+10k (+ 0.01%)179,630k179,823k
Parse Time1.31s (± 0.36%)1.32s (± 1.11%)+0.01s (+ 0.46%)1.29s1.37s
Bind Time0.63s (± 1.19%)0.64s (± 0.70%)+0.00s (+ 0.63%)0.63s0.65s
Check Time4.40s (± 0.41%)4.38s (± 0.36%)-0.02s (- 0.48%)4.36s4.42s
Emit Time2.88s (± 1.71%)2.88s (± 0.92%)+0.00s (+ 0.07%)2.83s2.94s
Total Time9.22s (± 0.57%)9.21s (± 0.32%)-0.01s (- 0.09%)9.15s9.28s
Angular - node (v9.0.0, x64)
Memory used349,964k (± 0.01%)350,292k (± 0.01%)+328k (+ 0.09%)350,177k350,400k
Parse Time1.82s (± 0.38%)1.82s (± 0.46%)0.00s ( 0.00%)1.80s1.84s
Bind Time0.79s (± 0.70%)0.79s (± 0.95%)-0.00s (- 0.63%)0.77s0.80s
Check Time5.03s (± 0.57%)5.00s (± 0.50%)-0.04s (- 0.74%)4.95s5.05s
Emit Time5.78s (± 0.77%)5.77s (± 0.86%)-0.01s (- 0.17%)5.64s5.82s
Total Time13.43s (± 0.34%)13.37s (± 0.57%)-0.05s (- 0.39%)13.19s13.48s
Monaco - node (v9.0.0, x64)
Memory used364,316k (± 0.02%)364,278k (± 0.02%)-38k (- 0.01%)364,092k364,444k
Parse Time1.32s (± 0.46%)1.32s (± 0.63%)0.00s ( 0.00%)1.30s1.33s
Bind Time0.85s (± 1.49%)0.85s (± 1.54%)0.00s ( 0.00%)0.83s0.87s
Check Time5.17s (± 1.79%)5.18s (± 1.81%)+0.01s (+ 0.23%)5.02s5.32s
Emit Time3.17s (± 5.23%)3.12s (± 5.14%)-0.05s (- 1.58%)2.88s3.37s
Total Time10.51s (± 0.88%)10.47s (± 0.84%)-0.04s (- 0.39%)10.31s10.64s
TFS - node (v9.0.0, x64)
Memory used319,544k (± 0.01%)319,554k (± 0.01%)+10k (+ 0.00%)319,481k319,611k
Parse Time1.04s (± 0.43%)1.04s (± 0.85%)+0.01s (+ 0.48%)1.03s1.07s
Bind Time0.63s (± 0.63%)0.63s (± 0.98%)-0.00s (- 0.32%)0.62s0.65s
Check Time4.56s (± 0.32%)4.57s (± 0.49%)+0.01s (+ 0.18%)4.53s4.62s
Emit Time3.24s (± 0.65%)3.22s (± 0.60%)-0.01s (- 0.37%)3.18s3.28s
Total Time9.46s (± 0.20%)9.46s (± 0.40%)-0.00s (- 0.03%)9.37s9.56s
Angular - node (v9.0.0, x86)
Memory used198,496k (± 0.02%)198,649k (± 0.03%)+153k (+ 0.08%)198,473k198,772k
Parse Time1.72s (± 0.38%)1.72s (± 0.28%)+0.00s (+ 0.06%)1.71s1.73s
Bind Time0.91s (± 0.52%)0.91s (± 0.57%)-0.00s (- 0.44%)0.90s0.92s
Check Time4.44s (± 0.55%)4.44s (± 0.47%)-0.00s (- 0.02%)4.39s4.50s
Emit Time5.55s (± 0.86%)5.54s (± 0.82%)-0.01s (- 0.23%)5.45s5.66s
Total Time12.63s (± 0.43%)12.61s (± 0.41%)-0.02s (- 0.15%)12.49s12.72s
Monaco - node (v9.0.0, x86)
Memory used203,770k (± 0.03%)203,771k (± 0.02%)+1k (+ 0.00%)203,695k203,872k
Parse Time1.34s (± 0.44%)1.35s (± 0.64%)+0.00s (+ 0.30%)1.33s1.37s
Bind Time0.66s (± 0.91%)0.66s (± 1.13%)+0.01s (+ 0.76%)0.65s0.68s
Check Time4.84s (± 0.44%)4.85s (± 0.63%)+0.01s (+ 0.12%)4.80s4.91s
Emit Time3.07s (± 0.60%)3.07s (± 0.52%)0.00s ( 0.00%)3.05s3.13s
Total Time9.91s (± 0.34%)9.93s (± 0.41%)+0.01s (+ 0.14%)9.87s10.04s
TFS - node (v9.0.0, x86)
Memory used179,658k (± 0.02%)179,696k (± 0.02%)+38k (+ 0.02%)179,613k179,754k
Parse Time1.06s (± 0.56%)1.06s (± 0.89%)-0.00s (- 0.09%)1.05s1.09s
Bind Time0.59s (± 0.81%)0.59s (± 1.13%)+0.00s (+ 0.51%)0.58s0.61s
Check Time4.29s (± 0.41%)4.29s (± 0.58%)+0.01s (+ 0.19%)4.23s4.33s
Emit Time2.80s (± 1.17%)2.78s (± 0.55%)-0.03s (- 0.89%)2.73s2.81s
Total Time8.74s (± 0.36%)8.73s (± 0.39%)-0.01s (- 0.15%)8.64s8.80s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-161-generic
Architecturex64
Available Memory16 GB
Available Memory9 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
BenchmarkNameIterations
Current3145510
Baselinemaster10

@weswigham

Copy link
Copy Markdown
MemberAuthor

@typescript-bot

TypeScript Bot (typescript-bot) commented Feb 10, 2020

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized community code test suite on this PR at 76ae07b. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented Feb 10, 2020

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the extended test suite on this PR at 76ae07b. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented Feb 10, 2020

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized Definitely Typed test suite on this PR at 76ae07b. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

TypeScript Bot (typescript-bot) commented Feb 10, 2020

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the perf test suite on this PR at 76ae07b. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot

Copy link
Copy Markdown
Contributor

The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master.

@weswigham

Copy link
Copy Markdown
MemberAuthor

Anders Hejlsberg (@ahejlsberg) opted to reschedule this to 3.9 in person, but imma still need an updated review status at some point, thanks ❤️

@weswigham

Copy link
Copy Markdown
MemberAuthor

Man, I missed this one for a long time because it never got an updated github review status, but since it got an offline approval, 4.7 is kinda like 3.9 I guess. Once CI is green, I'll merge this.

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

Labels

Author: TeamFor Milestone BugPRs that fix a bug with a specific milestone

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Inference of constrained generic causes open generic to "escape"

5 participants

@weswigham@typescript-bot@sandersn@ahejlsberg@RyanCavanaugh