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

Normalize type references before relating them #35266

Merged
merged 7 commits into from
Nov 22, 2019
Merged

Conversation

ahejlsberg
Copy link
Member

@ahejlsberg ahejlsberg commented Nov 21, 2019

This PR changes isRelatedTo to normalize type references before relating them. This in particular means that deferred type references are be turned into equivalent non-deferred type references before being compared, which reduces the amount of work we do and fixes an issue related to variance measurement of aliased deferred type references.

Fixes #33872.

@ahejlsberg
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 Nov 21, 2019

Heya @ahejlsberg, I've started to run the perf test suite on this PR at c73affd. 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 Nov 21, 2019

Heya @ahejlsberg, I've started to run the extended test suite on this PR at c73affd. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Nov 21, 2019

Heya @ahejlsberg, I've started to run the parallelized Definitely Typed test suite on this PR at c73affd. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Nov 21, 2019

Heya @ahejlsberg, I've started to run the parallelized community code test suite on this PR at c73affd. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..35266

Metric master 35266 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 354,694k (± 0.02%) 356,417k (± 0.02%) +1,723k (+ 0.49%) 356,228k 356,595k
Parse Time 1.62s (± 0.64%) 1.65s (± 0.54%) +0.02s (+ 1.48%) 1.62s 1.67s
Bind Time 0.86s (± 0.55%) 0.88s (± 0.84%) +0.02s (+ 2.33%) 0.87s 0.90s
Check Time 4.54s (± 0.29%) 4.55s (± 0.38%) +0.01s (+ 0.15%) 4.50s 4.58s
Emit Time 5.26s (± 0.52%) 5.30s (± 0.62%) +0.03s (+ 0.66%) 5.21s 5.35s
Total Time 12.29s (± 0.23%) 12.38s (± 0.35%) +0.09s (+ 0.71%) 12.28s 12.45s
Monaco - node (v10.16.3, x64)
Memory used 365,996k (± 0.02%) 365,925k (± 0.02%) -71k (- 0.02%) 365,752k 366,052k
Parse Time 1.26s (± 0.77%) 1.27s (± 0.51%) +0.01s (+ 0.56%) 1.26s 1.28s
Bind Time 0.75s (± 0.49%) 0.76s (± 0.73%) +0.00s (+ 0.40%) 0.75s 0.77s
Check Time 4.65s (± 0.48%) 4.67s (± 0.58%) +0.02s (+ 0.43%) 4.58s 4.71s
Emit Time 2.96s (± 0.86%) 2.97s (± 0.64%) +0.00s (+ 0.13%) 2.92s 3.00s
Total Time 9.63s (± 0.32%) 9.66s (± 0.42%) +0.03s (+ 0.35%) 9.54s 9.74s
TFS - node (v10.16.3, x64)
Memory used 321,688k (± 0.01%) 321,656k (± 0.01%) -32k (- 0.01%) 321,591k 321,753k
Parse Time 0.95s (± 0.87%) 0.97s (± 0.67%) +0.01s (+ 1.47%) 0.95s 0.98s
Bind Time 0.72s (± 1.36%) 0.72s (± 1.42%) -0.00s (- 0.14%) 0.70s 0.74s
Check Time 4.11s (± 0.54%) 4.13s (± 0.60%) +0.03s (+ 0.66%) 4.08s 4.20s
Emit Time 3.05s (± 0.66%) 3.06s (± 0.90%) +0.02s (+ 0.56%) 2.98s 3.13s
Total Time 8.83s (± 0.43%) 8.89s (± 0.48%) +0.05s (+ 0.62%) 8.77s 8.96s
Angular - node (v12.1.0, x64)
Memory used 329,941k (± 0.09%) 331,773k (± 0.08%) +1,833k (+ 0.56%) 331,058k 332,131k
Parse Time 1.57s (± 0.83%) 1.58s (± 0.89%) +0.01s (+ 0.76%) 1.55s 1.62s
Bind Time 0.84s (± 0.97%) 0.86s (± 0.93%) +0.02s (+ 1.78%) 0.84s 0.88s
Check Time 4.47s (± 0.77%) 4.47s (± 0.98%) +0.00s (+ 0.02%) 4.38s 4.56s
Emit Time 5.55s (± 2.03%) 5.52s (± 1.24%) -0.03s (- 0.56%) 5.40s 5.74s
Total Time 12.43s (± 1.19%) 12.42s (± 0.96%) -0.00s (- 0.02%) 12.25s 12.79s
Monaco - node (v12.1.0, x64)
Memory used 345,670k (± 0.02%) 345,642k (± 0.02%) -28k (- 0.01%) 345,517k 345,844k
Parse Time 1.23s (± 0.36%) 1.23s (± 0.45%) +0.00s (+ 0.33%) 1.22s 1.24s
Bind Time 0.73s (± 1.44%) 0.74s (± 1.04%) +0.00s (+ 0.27%) 0.72s 0.75s
Check Time 4.49s (± 0.46%) 4.50s (± 0.49%) +0.01s (+ 0.29%) 4.45s 4.55s
Emit Time 3.03s (± 1.30%) 3.03s (± 1.20%) +0.01s (+ 0.20%) 2.94s 3.14s
Total Time 9.47s (± 0.51%) 9.50s (± 0.50%) +0.03s (+ 0.27%) 9.36s 9.57s
TFS - node (v12.1.0, x64)
Memory used 304,069k (± 0.02%) 304,019k (± 0.01%) -50k (- 0.02%) 303,931k 304,083k
Parse Time 0.95s (± 0.99%) 0.95s (± 0.50%) +0.00s (+ 0.00%) 0.94s 0.96s
Bind Time 0.69s (± 1.52%) 0.68s (± 0.87%) -0.01s (- 0.87%) 0.67s 0.70s
Check Time 4.04s (± 0.53%) 4.07s (± 0.45%) +0.03s (+ 0.62%) 4.00s 4.09s
Emit Time 3.10s (± 0.84%) 3.11s (± 0.38%) +0.01s (+ 0.29%) 3.09s 3.14s
Total Time 8.79s (± 0.41%) 8.81s (± 0.37%) +0.03s (+ 0.33%) 8.71s 8.87s
Angular - node (v8.9.0, x64)
Memory used 349,519k (± 0.01%) 351,201k (± 0.02%) +1,682k (+ 0.48%) 351,074k 351,376k
Parse Time 2.10s (± 0.49%) 2.13s (± 1.14%) +0.03s (+ 1.29%) 2.10s 2.22s
Bind Time 0.90s (± 0.62%) 0.92s (± 0.49%) +0.02s (+ 1.77%) 0.91s 0.93s
Check Time 5.28s (± 0.37%) 5.32s (± 0.56%) +0.04s (+ 0.78%) 5.26s 5.38s
Emit Time 6.22s (± 1.06%) 6.27s (± 1.13%) +0.04s (+ 0.72%) 6.04s 6.36s
Total Time 14.51s (± 0.46%) 14.64s (± 0.71%) +0.13s (+ 0.90%) 14.35s 14.84s
Monaco - node (v8.9.0, x64)
Memory used 363,707k (± 0.01%) 363,750k (± 0.02%) +43k (+ 0.01%) 363,661k 363,939k
Parse Time 1.57s (± 0.57%) 1.56s (± 0.55%) -0.00s (- 0.26%) 1.55s 1.59s
Bind Time 0.93s (± 0.62%) 0.93s (± 0.72%) +0.00s (+ 0.00%) 0.92s 0.95s
Check Time 5.53s (± 0.31%) 5.58s (± 0.50%) +0.05s (+ 0.81%) 5.51s 5.65s
Emit Time 3.03s (± 0.40%) 3.06s (± 0.65%) +0.03s (+ 1.02%) 3.02s 3.10s
Total Time 11.06s (± 0.19%) 11.13s (± 0.44%) +0.07s (+ 0.67%) 11.05s 11.26s
TFS - node (v8.9.0, x64)
Memory used 320,627k (± 0.02%) 320,566k (± 0.01%) -61k (- 0.02%) 320,498k 320,683k
Parse Time 1.27s (± 0.55%) 1.27s (± 0.57%) +0.00s (+ 0.08%) 1.26s 1.29s
Bind Time 0.75s (± 0.46%) 0.74s (± 0.90%) -0.00s (- 0.54%) 0.73s 0.76s
Check Time 4.71s (± 0.63%) 4.75s (± 0.59%) +0.03s (+ 0.72%) 4.70s 4.84s
Emit Time 3.23s (± 0.65%) 3.23s (± 0.78%) +0.00s (+ 0.09%) 3.17s 3.29s
Total Time 9.96s (± 0.36%) 10.00s (± 0.34%) +0.04s (+ 0.39%) 9.90s 10.06s
Angular - node (v8.9.0, x86)
Memory used 198,498k (± 0.02%) 199,327k (± 0.03%) +829k (+ 0.42%) 199,236k 199,446k
Parse Time 2.02s (± 0.65%) 2.05s (± 0.73%) +0.03s (+ 1.29%) 2.02s 2.08s
Bind Time 1.04s (± 1.25%) 1.02s (± 0.85%) -0.01s (- 1.26%) 1.01s 1.05s
Check Time 4.79s (± 0.65%) 4.79s (± 0.42%) +0.00s (+ 0.08%) 4.75s 4.84s
Emit Time 6.00s (± 0.64%) 6.16s (± 1.64%) +0.15s (+ 2.56%) 5.96s 6.36s
Total Time 13.84s (± 0.43%) 14.02s (± 0.75%) +0.18s (+ 1.26%) 13.79s 14.30s
Monaco - node (v8.9.0, x86)
Memory used 203,765k (± 0.02%) 203,768k (± 0.01%) +2k (+ 0.00%) 203,715k 203,806k
Parse Time 1.61s (± 0.46%) 1.62s (± 0.91%) +0.01s (+ 0.68%) 1.59s 1.66s
Bind Time 0.75s (± 1.10%) 0.75s (± 1.12%) -0.00s (- 0.40%) 0.73s 0.77s
Check Time 5.44s (± 0.66%) 5.43s (± 0.27%) -0.00s (- 0.09%) 5.39s 5.46s
Emit Time 2.89s (± 0.97%) 2.88s (± 0.85%) -0.01s (- 0.45%) 2.84s 2.96s
Total Time 10.69s (± 0.58%) 10.67s (± 0.29%) -0.01s (- 0.11%) 10.61s 10.75s
TFS - node (v8.9.0, x86)
Memory used 180,602k (± 0.02%) 180,609k (± 0.02%) +8k (+ 0.00%) 180,547k 180,705k
Parse Time 1.31s (± 0.88%) 1.31s (± 0.69%) +0.00s (+ 0.08%) 1.29s 1.33s
Bind Time 0.70s (± 1.26%) 0.70s (± 1.46%) +0.00s (+ 0.14%) 0.69s 0.74s
Check Time 4.49s (± 0.69%) 4.50s (± 0.73%) +0.02s (+ 0.40%) 4.45s 4.61s
Emit Time 2.97s (± 1.37%) 2.96s (± 1.04%) -0.01s (- 0.27%) 2.89s 3.03s
Total Time 9.46s (± 0.63%) 9.47s (± 0.52%) +0.01s (+ 0.15%) 9.38s 9.57s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory7 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
Benchmark Name Iterations
Current 35266 10
Baseline master 10

@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.

@@ -14240,6 +14240,14 @@ namespace ts {
return getObjectFlags(source) & ObjectFlags.JsxAttributes && !isUnhyphenatedJsxName(sourceProp.escapedName);
}

function getNormalizedType(type: Type, writing: boolean): Type {
Copy link
Member

Choose a reason for hiding this comment

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

How will this function jibe with #31804 and the associated fix #32116 - does this function just become recursive?

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 should be able to just move the loop into getNormalizedType.

@@ -60,7 +60,7 @@ tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeRefe

const b20: Box2 = 42; // Error
~~~
!!! error TS2322: Type '42' is not assignable to type 'Box2'.
!!! error TS2322: Type '42' is not assignable to type 'Box<number | Box2>'.
Copy link
Member

@weswigham weswigham Nov 21, 2019

Choose a reason for hiding this comment

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

😦 Is it possible we want to keep the pre-normalized form around for error reporting? Since it might have a nicer alias for us to use?

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 looked at doing that, but I'm not sure it really is all that valuable. We still display the alias in all other situations, it's only when we're elaborating into the type that we now display structure one level earlier that we would before. I think the few places it affects are just as well served with the change in this PR (which, BTW, is what we used to always do).

Copy link
Member

Choose a reason for hiding this comment

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

I know, but we acknowledged that these errors were better - a nice side effect of the recursive alias change. it would be nice if we could keep them.

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, changed the code to preserve the original type and use it in error reporting if it has an alias.

@ahejlsberg
Copy link
Member Author

RWC tests have a few error baseline changes that I think are fine. Community tests suite changes are preexisting conditions. DT tests suites are clean. No changes in performance. Overall, I think this one is good to do.

@ahejlsberg
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 Nov 22, 2019

Heya @ahejlsberg, I've started to run the perf test suite on this PR at 88d0315. 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 Nov 22, 2019

Heya @ahejlsberg, I've started to run the parallelized Definitely Typed test suite on this PR at 88d0315. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Nov 22, 2019

Heya @ahejlsberg, I've started to run the extended test suite on this PR at 88d0315. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Nov 22, 2019

Heya @ahejlsberg, I've started to run the parallelized community code test suite on this PR at 88d0315. You can monitor the build here. It should now contribute to this PR's status checks.

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..35266

Metric master 35266 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 354,733k (± 0.02%) 356,408k (± 0.02%) +1,675k (+ 0.47%) 356,234k 356,531k
Parse Time 1.63s (± 0.51%) 1.63s (± 0.58%) +0.00s (+ 0.06%) 1.61s 1.65s
Bind Time 0.86s (± 0.88%) 0.86s (± 1.10%) 0.00s ( 0.00%) 0.85s 0.89s
Check Time 4.55s (± 0.49%) 4.53s (± 0.54%) -0.02s (- 0.42%) 4.49s 4.59s
Emit Time 5.30s (± 0.40%) 5.25s (± 0.57%) -0.05s (- 0.94%) 5.20s 5.34s
Total Time 12.34s (± 0.29%) 12.28s (± 0.42%) -0.06s (- 0.52%) 12.21s 12.45s
Monaco - node (v10.16.3, x64)
Memory used 365,894k (± 0.02%) 365,973k (± 0.02%) +79k (+ 0.02%) 365,750k 366,045k
Parse Time 1.27s (± 0.27%) 1.27s (± 0.63%) +0.00s (+ 0.08%) 1.25s 1.28s
Bind Time 0.76s (± 0.79%) 0.76s (± 0.77%) +0.00s (+ 0.13%) 0.75s 0.77s
Check Time 4.68s (± 0.30%) 4.65s (± 0.45%) -0.03s (- 0.64%) 4.59s 4.69s
Emit Time 2.96s (± 0.91%) 2.95s (± 0.48%) -0.02s (- 0.57%) 2.92s 2.98s
Total Time 9.67s (± 0.38%) 9.62s (± 0.33%) -0.04s (- 0.46%) 9.55s 9.69s
TFS - node (v10.16.3, x64)
Memory used 321,643k (± 0.01%) 321,653k (± 0.02%) +10k (+ 0.00%) 321,560k 321,774k
Parse Time 0.96s (± 0.78%) 0.95s (± 0.71%) -0.01s (- 0.93%) 0.94s 0.97s
Bind Time 0.73s (± 0.93%) 0.72s (± 1.17%) -0.02s (- 2.04%) 0.70s 0.73s
Check Time 4.12s (± 0.41%) 4.12s (± 0.50%) +0.01s (+ 0.17%) 4.08s 4.17s
Emit Time 3.07s (± 0.69%) 3.06s (± 0.62%) -0.00s (- 0.16%) 3.03s 3.11s
Total Time 8.88s (± 0.35%) 8.86s (± 0.32%) -0.02s (- 0.24%) 8.80s 8.92s
Angular - node (v12.1.0, x64)
Memory used 330,223k (± 0.08%) 331,910k (± 0.05%) +1,687k (+ 0.51%) 331,220k 332,136k
Parse Time 1.58s (± 0.94%) 1.58s (± 0.52%) -0.01s (- 0.44%) 1.56s 1.59s
Bind Time 0.85s (± 1.02%) 0.85s (± 0.40%) +0.00s (+ 0.12%) 0.85s 0.86s
Check Time 4.44s (± 0.51%) 4.47s (± 0.60%) +0.03s (+ 0.59%) 4.43s 4.55s
Emit Time 5.50s (± 0.79%) 5.47s (± 0.88%) -0.03s (- 0.49%) 5.40s 5.57s
Total Time 12.38s (± 0.45%) 12.37s (± 0.65%) -0.00s (- 0.03%) 12.26s 12.58s
Monaco - node (v12.1.0, x64)
Memory used 345,649k (± 0.02%) 345,689k (± 0.02%) +40k (+ 0.01%) 345,582k 345,850k
Parse Time 1.23s (± 0.53%) 1.22s (± 0.62%) -0.01s (- 0.65%) 1.21s 1.24s
Bind Time 0.73s (± 0.65%) 0.73s (± 1.44%) +0.01s (+ 0.83%) 0.72s 0.77s
Check Time 4.49s (± 0.31%) 4.49s (± 0.39%) -0.00s (- 0.02%) 4.43s 4.52s
Emit Time 3.05s (± 0.80%) 3.01s (± 0.79%) -0.04s (- 1.31%) 2.95s 3.08s
Total Time 9.50s (± 0.35%) 9.45s (± 0.42%) -0.05s (- 0.49%) 9.37s 9.57s
TFS - node (v12.1.0, x64)
Memory used 304,084k (± 0.02%) 304,035k (± 0.02%) -49k (- 0.02%) 303,853k 304,218k
Parse Time 0.96s (± 0.70%) 0.95s (± 0.87%) -0.01s (- 1.15%) 0.93s 0.97s
Bind Time 0.69s (± 0.65%) 0.69s (± 1.06%) +0.00s (+ 0.00%) 0.67s 0.70s
Check Time 4.07s (± 0.58%) 4.08s (± 0.62%) +0.01s (+ 0.22%) 4.01s 4.15s
Emit Time 3.14s (± 0.87%) 3.09s (± 1.00%) -0.05s (- 1.53%) 3.01s 3.15s
Total Time 8.85s (± 0.44%) 8.80s (± 0.44%) -0.05s (- 0.62%) 8.70s 8.85s
Angular - node (v8.9.0, x64)
Memory used 349,552k (± 0.02%) 351,157k (± 0.02%) +1,605k (+ 0.46%) 350,969k 351,318k
Parse Time 2.11s (± 0.31%) 2.12s (± 0.69%) +0.01s (+ 0.38%) 2.10s 2.17s
Bind Time 0.91s (± 1.10%) 0.92s (± 1.04%) +0.00s (+ 0.22%) 0.90s 0.94s
Check Time 5.29s (± 0.47%) 5.28s (± 0.79%) -0.01s (- 0.19%) 5.18s 5.36s
Emit Time 6.22s (± 0.84%) 6.23s (± 1.27%) +0.00s (+ 0.05%) 5.99s 6.40s
Total Time 14.54s (± 0.47%) 14.53s (± 0.69%) -0.00s (- 0.01%) 14.36s 14.78s
Monaco - node (v8.9.0, x64)
Memory used 363,733k (± 0.01%) 363,732k (± 0.01%) -0k (- 0.00%) 363,643k 363,819k
Parse Time 1.56s (± 0.67%) 1.56s (± 0.53%) -0.01s (- 0.45%) 1.53s 1.57s
Bind Time 0.93s (± 0.88%) 0.92s (± 1.14%) -0.00s (- 0.43%) 0.90s 0.95s
Check Time 5.56s (± 0.48%) 5.53s (± 0.32%) -0.03s (- 0.49%) 5.50s 5.58s
Emit Time 3.06s (± 0.58%) 3.05s (± 0.87%) -0.01s (- 0.39%) 3.01s 3.12s
Total Time 11.11s (± 0.31%) 11.06s (± 0.45%) -0.05s (- 0.47%) 10.98s 11.22s
TFS - node (v8.9.0, x64)
Memory used 320,580k (± 0.01%) 320,639k (± 0.01%) +60k (+ 0.02%) 320,539k 320,777k
Parse Time 1.27s (± 0.53%) 1.27s (± 0.41%) -0.01s (- 0.39%) 1.26s 1.28s
Bind Time 0.75s (± 0.53%) 0.74s (± 0.46%) -0.01s (- 0.80%) 0.74s 0.75s
Check Time 4.75s (± 0.28%) 4.71s (± 0.73%) -0.04s (- 0.74%) 4.64s 4.78s
Emit Time 3.25s (± 0.38%) 3.21s (± 0.82%) -0.03s (- 0.99%) 3.13s 3.27s
Total Time 10.02s (± 0.16%) 9.94s (± 0.52%) -0.07s (- 0.74%) 9.83s 10.03s
Angular - node (v8.9.0, x86)
Memory used 198,524k (± 0.03%) 199,360k (± 0.02%) +836k (+ 0.42%) 199,253k 199,420k
Parse Time 2.03s (± 0.50%) 2.03s (± 0.62%) -0.01s (- 0.44%) 2.00s 2.06s
Bind Time 1.05s (± 0.95%) 1.02s (± 0.55%) -0.04s (- 3.32%) 1.01s 1.03s
Check Time 4.81s (± 0.35%) 4.77s (± 0.47%) -0.04s (- 0.81%) 4.72s 4.81s
Emit Time 6.11s (± 1.93%) 6.15s (± 1.81%) +0.04s (+ 0.59%) 5.97s 6.37s
Total Time 14.01s (± 0.88%) 13.96s (± 0.79%) -0.05s (- 0.34%) 13.71s 14.22s
Monaco - node (v8.9.0, x86)
Memory used 203,790k (± 0.02%) 203,755k (± 0.02%) -36k (- 0.02%) 203,683k 203,846k
Parse Time 1.61s (± 0.76%) 1.62s (± 0.71%) +0.01s (+ 0.37%) 1.59s 1.64s
Bind Time 0.75s (± 0.89%) 0.75s (± 0.94%) -0.00s (- 0.13%) 0.74s 0.77s
Check Time 5.38s (± 1.05%) 5.42s (± 0.62%) +0.03s (+ 0.59%) 5.38s 5.51s
Emit Time 2.91s (± 2.77%) 2.86s (± 0.90%) -0.04s (- 1.51%) 2.83s 2.95s
Total Time 10.65s (± 0.39%) 10.65s (± 0.43%) -0.00s (- 0.04%) 10.57s 10.74s
TFS - node (v8.9.0, x86)
Memory used 180,629k (± 0.02%) 180,603k (± 0.02%) -26k (- 0.01%) 180,518k 180,717k
Parse Time 1.32s (± 0.71%) 1.31s (± 0.77%) -0.01s (- 1.14%) 1.29s 1.33s
Bind Time 0.70s (± 1.00%) 0.69s (± 0.72%) -0.01s (- 0.86%) 0.69s 0.71s
Check Time 4.49s (± 0.60%) 4.48s (± 0.59%) -0.02s (- 0.40%) 4.44s 4.55s
Emit Time 2.98s (± 0.60%) 2.93s (± 0.85%) -0.05s (- 1.71%) 2.88s 2.98s
Total Time 9.50s (± 0.50%) 9.41s (± 0.44%) -0.09s (- 0.95%) 9.34s 9.52s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory6 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
Benchmark Name Iterations
Current 35266 10
Baseline master 10

@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
Copy link
Member

Looking at RWC, it looks like tuple aliases still aren't preserved in errors - is there an elaboration codepath the most recent change missed? (The elaboration in property relations, maybe?)

@ahejlsberg
Copy link
Member Author

Actually, we're preserving type aliases in more situations than we did previously.

@ahejlsberg ahejlsberg merged commit 58a05f3 into master Nov 22, 2019
@ahejlsberg ahejlsberg deleted the relateNormalizedTypes branch December 25, 2019 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants