Skip to content
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

Fix conditional type type parameter leak #31455

Merged
merged 8 commits into from
Mar 9, 2022

Conversation

weswigham
Copy link
Member

Fixes #31402

Copy link
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

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

Some high-level questions.

src/compiler/checker.ts Outdated Show resolved Hide resolved
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
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.

// * 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
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
👃
👿

src/compiler/checker.ts Outdated Show resolved Hide resolved
src/compiler/checker.ts Outdated Show resolved Hide resolved
src/compiler/checker.ts Outdated Show resolved Hide resolved
@weswigham
Copy link
Member Author

@sandersn comment order and informational content altered~

// * 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
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
Member Author

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
Member Author

@typescript-bot run dt
@typescript-bot test this
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 23, 2019

Heya @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
Copy link
Collaborator

typescript-bot commented May 23, 2019

Heya @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
Copy link
Collaborator

typescript-bot commented May 23, 2019

Heya @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
Collaborator

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

Here they are:

Comparison Report - master..31455

Metric master 31455 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 314,986k (± 0.02%) 314,969k (± 0.03%) -17k (- 0.01%) 314,832k 315,235k
Parse Time 1.38s (± 0.55%) 1.38s (± 0.72%) +0.01s (+ 0.51%) 1.36s 1.41s
Bind Time 0.73s (± 0.50%) 0.73s (± 0.65%) +0.00s (+ 0.14%) 0.72s 0.74s
Check Time 4.06s (± 0.44%) 4.06s (± 0.39%) +0.00s (+ 0.12%) 4.04s 4.10s
Emit Time 5.13s (± 0.66%) 5.19s (± 0.83%) +0.07s (+ 1.29%) 5.07s 5.27s
Total Time 11.29s (± 0.27%) 11.36s (± 0.44%) +0.08s (+ 0.69%) 11.22s 11.44s
Monaco - node (v12.1.0, x64)
Memory used 343,694k (± 0.01%) 343,706k (± 0.01%) +12k (+ 0.00%) 343,642k 343,781k
Parse Time 1.18s (± 0.58%) 1.18s (± 0.75%) 0.00s ( 0.00%) 1.16s 1.20s
Bind Time 0.68s (± 0.74%) 0.67s (± 0.70%) -0.01s (- 0.74%) 0.66s 0.68s
Check Time 4.17s (± 0.51%) 4.17s (± 0.54%) -0.01s (- 0.12%) 4.12s 4.22s
Emit Time 2.78s (± 0.96%) 2.78s (± 0.55%) -0.00s (- 0.18%) 2.74s 2.80s
Total Time 8.81s (± 0.45%) 8.80s (± 0.37%) -0.02s (- 0.20%) 8.73s 8.86s
TFS - node (v12.1.0, x64)
Memory used 300,757k (± 0.02%) 300,781k (± 0.02%) +24k (+ 0.01%) 300,703k 300,914k
Parse Time 0.91s (± 0.74%) 0.90s (± 1.05%) -0.00s (- 0.33%) 0.89s 0.93s
Bind Time 0.62s (± 0.90%) 0.61s (± 0.81%) -0.00s (- 0.49%) 0.61s 0.63s
Check Time 3.74s (± 0.36%) 3.72s (± 0.51%) -0.01s (- 0.29%) 3.69s 3.76s
Emit Time 2.88s (± 1.11%) 2.84s (± 0.73%) -0.03s (- 1.15%) 2.81s 2.88s
Total Time 8.13s (± 0.52%) 8.09s (± 0.42%) -0.04s (- 0.54%) 8.01s 8.15s
Angular - node (v8.9.0, x64)
Memory used 332,901k (± 0.02%) 332,904k (± 0.02%) +3k (+ 0.00%) 332,718k 333,025k
Parse Time 1.77s (± 0.46%) 1.78s (± 0.57%) +0.01s (+ 0.45%) 1.75s 1.80s
Bind Time 0.79s (± 1.07%) 0.79s (± 0.94%) -0.00s (- 0.13%) 0.77s 0.80s
Check Time 4.76s (± 1.50%) 4.75s (± 1.25%) -0.01s (- 0.13%) 4.65s 4.84s
Emit Time 5.81s (± 2.79%) 5.83s (± 2.88%) +0.03s (+ 0.48%) 5.54s 6.22s
Total Time 13.13s (± 1.00%) 13.16s (± 1.11%) +0.03s (+ 0.19%) 12.90s 13.48s
Monaco - node (v8.9.0, x64)
Memory used 360,827k (± 0.02%) 360,813k (± 0.02%) -14k (- 0.00%) 360,641k 361,108k
Parse Time 1.43s (± 0.16%) 1.43s (± 0.31%) +0.00s (+ 0.07%) 1.42s 1.44s
Bind Time 0.91s (± 2.49%) 0.91s (± 1.84%) +0.00s (+ 0.33%) 0.87s 0.94s
Check Time 4.98s (± 2.11%) 4.95s (± 2.00%) -0.03s (- 0.56%) 4.79s 5.20s
Emit Time 3.18s (± 6.24%) 3.25s (± 5.75%) +0.07s (+ 2.14%) 2.86s 3.46s
Total Time 10.49s (± 1.19%) 10.54s (± 1.11%) +0.04s (+ 0.41%) 10.27s 10.69s
TFS - node (v8.9.0, x64)
Memory used 316,306k (± 0.02%) 316,239k (± 0.02%) -67k (- 0.02%) 316,160k 316,348k
Parse Time 1.14s (± 0.53%) 1.13s (± 0.29%) -0.01s (- 0.44%) 1.12s 1.14s
Bind Time 0.66s (± 0.51%) 0.66s (± 0.67%) -0.00s (- 0.15%) 0.65s 0.67s
Check Time 4.35s (± 0.54%) 4.35s (± 0.43%) -0.00s (- 0.07%) 4.29s 4.38s
Emit Time 3.12s (± 0.99%) 3.13s (± 0.40%) +0.01s (+ 0.26%) 3.10s 3.15s
Total Time 9.26s (± 0.45%) 9.27s (± 0.23%) +0.00s (+ 0.04%) 9.23s 9.32s
Angular - node (v8.9.0, x86)
Memory used 188,600k (± 0.03%) 188,554k (± 0.02%) -46k (- 0.02%) 188,467k 188,635k
Parse Time 1.72s (± 0.76%) 1.73s (± 0.70%) +0.01s (+ 0.41%) 1.70s 1.75s
Bind Time 0.93s (± 1.62%) 0.93s (± 1.24%) +0.00s (+ 0.43%) 0.91s 0.97s
Check Time 4.39s (± 0.44%) 4.40s (± 0.64%) +0.01s (+ 0.18%) 4.33s 4.44s
Emit Time 5.62s (± 1.12%) 5.66s (± 0.90%) +0.05s (+ 0.82%) 5.51s 5.77s
Total Time 12.65s (± 0.51%) 12.72s (± 0.47%) +0.07s (+ 0.52%) 12.62s 12.88s
Monaco - node (v8.9.0, x86)
Memory used 201,313k (± 0.02%) 201,350k (± 0.02%) +37k (+ 0.02%) 201,270k 201,418k
Parse Time 1.50s (± 0.89%) 1.49s (± 0.68%) -0.00s (- 0.33%) 1.47s 1.52s
Bind Time 0.72s (± 1.37%) 0.71s (± 1.16%) -0.00s (- 0.56%) 0.70s 0.74s
Check Time 4.73s (± 0.37%) 4.73s (± 0.72%) +0.00s (+ 0.02%) 4.64s 4.80s
Emit Time 3.10s (± 0.87%) 3.08s (± 0.59%) -0.02s (- 0.58%) 3.04s 3.12s
Total Time 10.04s (± 0.33%) 10.02s (± 0.49%) -0.03s (- 0.25%) 9.86s 10.10s
TFS - node (v8.9.0, x86)
Memory used 177,377k (± 0.02%) 177,395k (± 0.02%) +18k (+ 0.01%) 177,279k 177,478k
Parse Time 1.20s (± 0.75%) 1.18s (± 0.93%) -0.01s (- 1.09%) 1.16s 1.22s
Bind Time 0.63s (± 1.29%) 0.63s (± 0.88%) -0.00s (- 0.16%) 0.62s 0.65s
Check Time 4.16s (± 0.32%) 4.16s (± 0.74%) -0.00s (- 0.02%) 4.09s 4.23s
Emit Time 2.77s (± 1.11%) 2.78s (± 1.28%) +0.01s (+ 0.32%) 2.67s 2.87s
Total Time 8.76s (± 0.49%) 8.75s (± 0.60%) -0.00s (- 0.05%) 8.59s 8.85s
Angular - node (v9.0.0, x64)
Memory used 332,552k (± 0.01%) 332,502k (± 0.02%) -50k (- 0.02%) 332,377k 332,604k
Parse Time 1.62s (± 0.43%) 1.62s (± 0.64%) +0.00s (+ 0.19%) 1.61s 1.65s
Bind Time 0.74s (± 0.95%) 0.74s (± 0.95%) -0.00s (- 0.27%) 0.73s 0.76s
Check Time 4.40s (± 0.69%) 4.42s (± 0.60%) +0.02s (+ 0.43%) 4.35s 4.46s
Emit Time 5.66s (± 1.19%) 5.68s (± 1.47%) +0.02s (+ 0.28%) 5.59s 5.94s
Total Time 12.42s (± 0.54%) 12.45s (± 0.70%) +0.03s (+ 0.26%) 12.32s 12.73s
Monaco - node (v9.0.0, x64)
Memory used 360,607k (± 0.03%) 360,570k (± 0.03%) -37k (- 0.01%) 360,286k 360,766k
Parse Time 1.29s (± 0.78%) 1.28s (± 0.68%) -0.00s (- 0.39%) 1.26s 1.30s
Bind Time 0.85s (± 0.72%) 0.85s (± 0.00%) -0.00s (- 0.12%) 0.85s 0.85s
Check Time 4.79s (± 0.68%) 4.79s (± 0.47%) -0.00s (- 0.04%) 4.75s 4.84s
Emit Time 3.29s (± 0.72%) 3.27s (± 0.39%) -0.02s (- 0.67%) 3.23s 3.30s
Total Time 10.21s (± 0.42%) 10.19s (± 0.35%) -0.02s (- 0.24%) 10.13s 10.27s
TFS - node (v9.0.0, x64)
Memory used 316,132k (± 0.02%) 316,114k (± 0.01%) -18k (- 0.01%) 316,030k 316,172k
Parse Time 1.01s (± 0.90%) 1.00s (± 0.67%) -0.01s (- 0.79%) 0.99s 1.02s
Bind Time 0.61s (± 1.35%) 0.61s (± 0.66%) -0.01s (- 0.98%) 0.60s 0.62s
Check Time 4.35s (± 1.58%) 4.25s (± 1.83%) -0.10s (- 2.28%) 4.16s 4.47s
Emit Time 2.96s (± 3.31%) 3.03s (± 2.96%) +0.07s (+ 2.54%) 2.79s 3.14s
Total Time 8.94s (± 0.58%) 8.90s (± 0.43%) -0.04s (- 0.40%) 8.84s 9.01s
Angular - node (v9.0.0, x86)
Memory used 188,693k (± 0.03%) 188,684k (± 0.02%) -9k (- 0.00%) 188,626k 188,756k
Parse Time 1.53s (± 0.78%) 1.53s (± 0.47%) -0.00s (- 0.07%) 1.52s 1.55s
Bind Time 0.86s (± 0.55%) 0.86s (± 1.19%) -0.00s (- 0.12%) 0.84s 0.88s
Check Time 4.08s (± 0.59%) 4.08s (± 0.79%) +0.00s (+ 0.12%) 4.03s 4.19s
Emit Time 5.34s (± 0.34%) 5.33s (± 0.62%) -0.01s (- 0.15%) 5.27s 5.42s
Total Time 11.81s (± 0.19%) 11.81s (± 0.54%) -0.00s (- 0.03%) 11.68s 11.97s
Monaco - node (v9.0.0, x86)
Memory used 201,353k (± 0.03%) 201,343k (± 0.02%) -10k (- 0.00%) 201,223k 201,404k
Parse Time 1.31s (± 0.51%) 1.30s (± 0.58%) -0.01s (- 0.69%) 1.29s 1.32s
Bind Time 0.64s (± 1.16%) 0.64s (± 1.09%) -0.00s (- 0.31%) 0.63s 0.66s
Check Time 4.57s (± 0.65%) 4.58s (± 0.71%) +0.01s (+ 0.31%) 4.52s 4.67s
Emit Time 3.03s (± 0.93%) 3.00s (± 0.64%) -0.03s (- 0.96%) 2.96s 3.05s
Total Time 9.55s (± 0.44%) 9.52s (± 0.39%) -0.03s (- 0.29%) 9.44s 9.62s
TFS - node (v9.0.0, x86)
Memory used 177,501k (± 0.03%) 177,428k (± 0.02%) -73k (- 0.04%) 177,371k 177,501k
Parse Time 1.02s (± 0.46%) 1.03s (± 1.20%) +0.01s (+ 0.78%) 1.01s 1.06s
Bind Time 0.58s (± 0.82%) 0.57s (± 0.70%) -0.01s (- 1.04%) 0.56s 0.58s
Check Time 3.99s (± 0.53%) 3.99s (± 0.62%) -0.00s (- 0.05%) 3.94s 4.05s
Emit Time 2.71s (± 1.82%) 2.68s (± 0.96%) -0.03s (- 1.00%) 2.61s 2.72s
Total Time 8.29s (± 0.78%) 8.26s (± 0.37%) -0.03s (- 0.34%) 8.22s 8.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)
Benchmark Name Iterations
Current 31455 10
Baseline master 10

@weswigham
Copy link
Member Author

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

@ahejlsberg ?

src/compiler/checker.ts Outdated Show resolved Hide resolved
@weswigham
Copy link
Member Author

@typescript-bot test this
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 24, 2019

Heya @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
Copy link
Collaborator

typescript-bot commented Sep 24, 2019

Heya @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
Copy link
Collaborator

typescript-bot commented Sep 24, 2019

Heya @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
Copy link
Collaborator

typescript-bot commented Sep 24, 2019

Heya @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
Collaborator

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
Collaborator

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

Here they are:

Comparison Report - master..31455

Metric master 31455 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 331,733k (± 0.02%) 332,075k (± 0.01%) +343k (+ 0.10%) 332,000k 332,182k
Parse Time 1.56s (± 0.44%) 1.56s (± 0.68%) +0.00s (+ 0.06%) 1.53s 1.59s
Bind Time 0.80s (± 0.77%) 0.80s (± 0.59%) +0.00s (+ 0.13%) 0.79s 0.81s
Check Time 4.38s (± 0.68%) 4.37s (± 0.46%) -0.01s (- 0.18%) 4.34s 4.42s
Emit Time 5.28s (± 0.74%) 5.28s (± 0.93%) -0.00s (- 0.08%) 5.21s 5.45s
Total Time 12.02s (± 0.46%) 12.00s (± 0.45%) -0.02s (- 0.13%) 11.91s 12.16s
Monaco - node (v12.1.0, x64)
Memory used 346,979k (± 0.02%) 346,948k (± 0.01%) -32k (- 0.01%) 346,839k 347,055k
Parse Time 1.22s (± 0.43%) 1.22s (± 0.53%) -0.00s (- 0.25%) 1.20s 1.23s
Bind Time 0.69s (± 0.83%) 0.69s (± 0.69%) -0.00s (- 0.43%) 0.68s 0.70s
Check Time 4.38s (± 0.62%) 4.37s (± 0.32%) -0.00s (- 0.07%) 4.34s 4.41s
Emit Time 2.87s (± 0.50%) 2.86s (± 0.61%) -0.01s (- 0.28%) 2.82s 2.90s
Total Time 9.15s (± 0.42%) 9.14s (± 0.24%) -0.01s (- 0.15%) 9.09s 9.20s
TFS - node (v12.1.0, x64)
Memory used 303,630k (± 0.02%) 303,649k (± 0.02%) +19k (+ 0.01%) 303,515k 303,842k
Parse Time 0.95s (± 0.50%) 0.95s (± 0.55%) +0.00s (+ 0.21%) 0.94s 0.96s
Bind Time 0.64s (± 1.14%) 0.64s (± 1.20%) -0.00s (- 0.47%) 0.62s 0.66s
Check Time 3.98s (± 0.64%) 3.99s (± 0.40%) +0.01s (+ 0.28%) 3.94s 4.01s
Emit Time 2.96s (± 0.86%) 2.97s (± 0.74%) +0.01s (+ 0.20%) 2.91s 3.01s
Total Time 8.52s (± 0.51%) 8.54s (± 0.23%) +0.02s (+ 0.19%) 8.48s 8.57s
Angular - node (v8.9.0, x64)
Memory used 350,372k (± 0.01%) 350,755k (± 0.02%) +383k (+ 0.11%) 350,619k 350,858k
Parse Time 2.11s (± 0.38%) 2.11s (± 0.48%) +0.00s (+ 0.14%) 2.09s 2.13s
Bind Time 0.85s (± 0.94%) 0.85s (± 0.53%) -0.00s (- 0.47%) 0.84s 0.86s
Check Time 5.26s (± 0.60%) 5.25s (± 0.50%) -0.02s (- 0.34%) 5.19s 5.31s
Emit Time 5.95s (± 0.41%) 6.00s (± 0.93%) +0.05s (+ 0.77%) 5.90s 6.12s
Total Time 14.17s (± 0.37%) 14.20s (± 0.50%) +0.03s (+ 0.20%) 14.08s 14.41s
Monaco - node (v8.9.0, x64)
Memory used 364,614k (± 0.01%) 364,617k (± 0.01%) +3k (+ 0.00%) 364,561k 364,686k
Parse Time 1.56s (± 0.44%) 1.56s (± 0.38%) +0.01s (+ 0.51%) 1.55s 1.58s
Bind Time 0.90s (± 0.85%) 0.89s (± 1.00%) -0.00s (- 0.11%) 0.88s 0.91s
Check Time 5.21s (± 0.92%) 5.27s (± 1.35%) +0.06s (+ 1.13%) 5.18s 5.46s
Emit Time 3.28s (± 2.77%) 3.21s (± 4.00%) -0.07s (- 2.19%) 2.94s 3.35s
Total Time 10.94s (± 0.54%) 10.94s (± 0.69%) -0.00s (- 0.05%) 10.71s 11.04s
TFS - node (v8.9.0, x64)
Memory used 319,831k (± 0.01%) 319,871k (± 0.01%) +40k (+ 0.01%) 319,787k 319,935k
Parse Time 1.26s (± 0.47%) 1.27s (± 0.60%) +0.00s (+ 0.16%) 1.25s 1.29s
Bind Time 0.73s (± 7.05%) 0.75s (± 6.89%) +0.01s (+ 1.90%) 0.65s 0.82s
Check Time 4.51s (± 1.30%) 4.50s (± 1.51%) -0.01s (- 0.20%) 4.38s 4.64s
Emit Time 3.08s (± 0.77%) 3.08s (± 0.71%) -0.00s (- 0.06%) 3.03s 3.14s
Total Time 9.59s (± 0.29%) 9.59s (± 0.52%) +0.00s (+ 0.05%) 9.47s 9.71s
Angular - node (v8.9.0, x86)
Memory used 198,388k (± 0.02%) 198,529k (± 0.02%) +142k (+ 0.07%) 198,411k 198,646k
Parse Time 2.03s (± 0.59%) 2.03s (± 0.59%) -0.01s (- 0.39%) 2.01s 2.06s
Bind Time 0.97s (± 0.86%) 0.96s (± 0.50%) -0.01s (- 0.83%) 0.95s 0.97s
Check Time 4.78s (± 0.68%) 4.78s (± 0.65%) -0.00s (- 0.08%) 4.71s 4.86s
Emit Time 5.73s (± 0.73%) 5.71s (± 0.58%) -0.02s (- 0.30%) 5.65s 5.78s
Total Time 13.50s (± 0.53%) 13.47s (± 0.37%) -0.03s (- 0.25%) 13.37s 13.61s
Monaco - node (v8.9.0, x86)
Memory used 203,732k (± 0.01%) 203,754k (± 0.01%) +22k (+ 0.01%) 203,685k 203,777k
Parse Time 1.61s (± 0.36%) 1.62s (± 0.66%) +0.00s (+ 0.19%) 1.59s 1.64s
Bind Time 0.72s (± 0.69%) 0.72s (± 0.72%) +0.00s (+ 0.42%) 0.71s 0.73s
Check Time 5.09s (± 2.15%) 5.07s (± 1.68%) -0.02s (- 0.47%) 4.99s 5.40s
Emit Time 3.05s (± 3.50%) 3.11s (± 2.50%) +0.06s (+ 1.97%) 2.81s 3.19s
Total Time 10.47s (± 0.29%) 10.51s (± 0.31%) +0.04s (+ 0.39%) 10.44s 10.58s
TFS - node (v8.9.0, x86)
Memory used 179,732k (± 0.01%) 179,742k (± 0.02%) +10k (+ 0.01%) 179,630k 179,823k
Parse Time 1.31s (± 0.36%) 1.32s (± 1.11%) +0.01s (+ 0.46%) 1.29s 1.37s
Bind Time 0.63s (± 1.19%) 0.64s (± 0.70%) +0.00s (+ 0.63%) 0.63s 0.65s
Check Time 4.40s (± 0.41%) 4.38s (± 0.36%) -0.02s (- 0.48%) 4.36s 4.42s
Emit Time 2.88s (± 1.71%) 2.88s (± 0.92%) +0.00s (+ 0.07%) 2.83s 2.94s
Total Time 9.22s (± 0.57%) 9.21s (± 0.32%) -0.01s (- 0.09%) 9.15s 9.28s
Angular - node (v9.0.0, x64)
Memory used 349,964k (± 0.01%) 350,292k (± 0.01%) +328k (+ 0.09%) 350,177k 350,400k
Parse Time 1.82s (± 0.38%) 1.82s (± 0.46%) 0.00s ( 0.00%) 1.80s 1.84s
Bind Time 0.79s (± 0.70%) 0.79s (± 0.95%) -0.00s (- 0.63%) 0.77s 0.80s
Check Time 5.03s (± 0.57%) 5.00s (± 0.50%) -0.04s (- 0.74%) 4.95s 5.05s
Emit Time 5.78s (± 0.77%) 5.77s (± 0.86%) -0.01s (- 0.17%) 5.64s 5.82s
Total Time 13.43s (± 0.34%) 13.37s (± 0.57%) -0.05s (- 0.39%) 13.19s 13.48s
Monaco - node (v9.0.0, x64)
Memory used 364,316k (± 0.02%) 364,278k (± 0.02%) -38k (- 0.01%) 364,092k 364,444k
Parse Time 1.32s (± 0.46%) 1.32s (± 0.63%) 0.00s ( 0.00%) 1.30s 1.33s
Bind Time 0.85s (± 1.49%) 0.85s (± 1.54%) 0.00s ( 0.00%) 0.83s 0.87s
Check Time 5.17s (± 1.79%) 5.18s (± 1.81%) +0.01s (+ 0.23%) 5.02s 5.32s
Emit Time 3.17s (± 5.23%) 3.12s (± 5.14%) -0.05s (- 1.58%) 2.88s 3.37s
Total Time 10.51s (± 0.88%) 10.47s (± 0.84%) -0.04s (- 0.39%) 10.31s 10.64s
TFS - node (v9.0.0, x64)
Memory used 319,544k (± 0.01%) 319,554k (± 0.01%) +10k (+ 0.00%) 319,481k 319,611k
Parse Time 1.04s (± 0.43%) 1.04s (± 0.85%) +0.01s (+ 0.48%) 1.03s 1.07s
Bind Time 0.63s (± 0.63%) 0.63s (± 0.98%) -0.00s (- 0.32%) 0.62s 0.65s
Check Time 4.56s (± 0.32%) 4.57s (± 0.49%) +0.01s (+ 0.18%) 4.53s 4.62s
Emit Time 3.24s (± 0.65%) 3.22s (± 0.60%) -0.01s (- 0.37%) 3.18s 3.28s
Total Time 9.46s (± 0.20%) 9.46s (± 0.40%) -0.00s (- 0.03%) 9.37s 9.56s
Angular - node (v9.0.0, x86)
Memory used 198,496k (± 0.02%) 198,649k (± 0.03%) +153k (+ 0.08%) 198,473k 198,772k
Parse Time 1.72s (± 0.38%) 1.72s (± 0.28%) +0.00s (+ 0.06%) 1.71s 1.73s
Bind Time 0.91s (± 0.52%) 0.91s (± 0.57%) -0.00s (- 0.44%) 0.90s 0.92s
Check Time 4.44s (± 0.55%) 4.44s (± 0.47%) -0.00s (- 0.02%) 4.39s 4.50s
Emit Time 5.55s (± 0.86%) 5.54s (± 0.82%) -0.01s (- 0.23%) 5.45s 5.66s
Total Time 12.63s (± 0.43%) 12.61s (± 0.41%) -0.02s (- 0.15%) 12.49s 12.72s
Monaco - node (v9.0.0, x86)
Memory used 203,770k (± 0.03%) 203,771k (± 0.02%) +1k (+ 0.00%) 203,695k 203,872k
Parse Time 1.34s (± 0.44%) 1.35s (± 0.64%) +0.00s (+ 0.30%) 1.33s 1.37s
Bind Time 0.66s (± 0.91%) 0.66s (± 1.13%) +0.01s (+ 0.76%) 0.65s 0.68s
Check Time 4.84s (± 0.44%) 4.85s (± 0.63%) +0.01s (+ 0.12%) 4.80s 4.91s
Emit Time 3.07s (± 0.60%) 3.07s (± 0.52%) 0.00s ( 0.00%) 3.05s 3.13s
Total Time 9.91s (± 0.34%) 9.93s (± 0.41%) +0.01s (+ 0.14%) 9.87s 10.04s
TFS - node (v9.0.0, x86)
Memory used 179,658k (± 0.02%) 179,696k (± 0.02%) +38k (+ 0.02%) 179,613k 179,754k
Parse Time 1.06s (± 0.56%) 1.06s (± 0.89%) -0.00s (- 0.09%) 1.05s 1.09s
Bind Time 0.59s (± 0.81%) 0.59s (± 1.13%) +0.00s (+ 0.51%) 0.58s 0.61s
Check Time 4.29s (± 0.41%) 4.29s (± 0.58%) +0.01s (+ 0.19%) 4.23s 4.33s
Emit Time 2.80s (± 1.17%) 2.78s (± 0.55%) -0.03s (- 0.89%) 2.73s 2.81s
Total Time 8.74s (± 0.36%) 8.73s (± 0.39%) -0.01s (- 0.15%) 8.64s 8.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)
Benchmark Name Iterations
Current 31455 10
Baseline master 10

@sandersn sandersn added the For Milestone Bug PRs that fix a bug with a specific milestone label Feb 1, 2020
@weswigham
Copy link
Member Author

@typescript-bot test this
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 10, 2020

Heya @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
Copy link
Collaborator

typescript-bot commented Feb 10, 2020

Heya @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
Copy link
Collaborator

typescript-bot commented Feb 10, 2020

Heya @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
Copy link
Collaborator

typescript-bot commented Feb 10, 2020

Heya @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
Collaborator

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

@weswigham weswigham added this to the TypeScript 3.9.0 milestone Feb 10, 2020
@weswigham
Copy link
Member Author

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

@sandersn sandersn assigned ahejlsberg and unassigned weswigham Mar 9, 2020
@RyanCavanaugh RyanCavanaugh removed this from the TypeScript 3.9.5 milestone Jul 21, 2020
@weswigham
Copy link
Member Author

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 free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs 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