Skip to content

Use type arguments instead of flags to detect variance marker types #35244

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

Closed
wants to merge 2 commits into from

Conversation

ahejlsberg
Copy link
Member

With this PR, we check the actual type arguments of type references or type aliases instead of using flags to detect marker types that are used by variance probing. Now, any type reference or type alias that contains a marker type in its type arguments will be compared structurally.

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 20, 2019

Heya @ahejlsberg, I've started to run the extended test suite on this PR at 9bb8c7f. 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 20, 2019

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

Heya @ahejlsberg, I've started to run the parallelized community code test suite on this PR at 9bb8c7f. 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 20, 2019

Heya @ahejlsberg, I've started to run the parallelized Definitely Typed test suite on this PR at 9bb8c7f. 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..35244

Metric master 35244 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 354,745k (± 0.02%) 356,675k (± 0.01%) +1,930k (+ 0.54%) 356,557k 356,810k
Parse Time 1.62s (± 0.58%) 1.63s (± 0.65%) +0.01s (+ 0.68%) 1.61s 1.66s
Bind Time 0.86s (± 0.75%) 0.87s (± 1.13%) +0.01s (+ 1.16%) 0.85s 0.90s
Check Time 4.54s (± 0.57%) 4.53s (± 0.55%) -0.01s (- 0.29%) 4.49s 4.61s
Emit Time 5.23s (± 0.76%) 5.28s (± 0.66%) +0.05s (+ 0.88%) 5.21s 5.35s
Total Time 12.25s (± 0.54%) 12.31s (± 0.47%) +0.06s (+ 0.48%) 12.21s 12.48s
Monaco - node (v10.16.3, x64)
Memory used 365,871k (± 0.01%) 365,954k (± 0.02%) +84k (+ 0.02%) 365,759k 366,175k
Parse Time 1.26s (± 0.75%) 1.26s (± 0.79%) 0.00s ( 0.00%) 1.24s 1.29s
Bind Time 0.75s (± 0.65%) 0.76s (± 0.53%) +0.01s (+ 0.66%) 0.75s 0.77s
Check Time 4.63s (± 0.55%) 4.66s (± 0.33%) +0.03s (+ 0.69%) 4.63s 4.70s
Emit Time 2.95s (± 0.91%) 2.93s (± 0.80%) -0.02s (- 0.71%) 2.88s 3.00s
Total Time 9.60s (± 0.48%) 9.62s (± 0.33%) +0.02s (+ 0.20%) 9.56s 9.70s
TFS - node (v10.16.3, x64)
Memory used 321,694k (± 0.02%) 321,639k (± 0.02%) -55k (- 0.02%) 321,552k 321,776k
Parse Time 0.96s (± 0.70%) 0.97s (± 1.03%) +0.01s (+ 1.04%) 0.95s 0.99s
Bind Time 0.72s (± 1.23%) 0.73s (± 1.32%) +0.00s (+ 0.00%) 0.70s 0.74s
Check Time 4.13s (± 0.41%) 4.13s (± 0.41%) 0.00s ( 0.00%) 4.09s 4.17s
Emit Time 3.04s (± 0.72%) 3.06s (± 0.61%) +0.02s (+ 0.72%) 3.03s 3.11s
Total Time 8.85s (± 0.41%) 8.88s (± 0.47%) +0.03s (+ 0.33%) 8.79s 8.97s
Angular - node (v12.1.0, x64)
Memory used 330,245k (± 0.05%) 331,841k (± 0.08%) +1,595k (+ 0.48%) 331,160k 332,270k
Parse Time 1.57s (± 0.78%) 1.58s (± 0.43%) +0.01s (+ 0.83%) 1.57s 1.60s
Bind Time 0.85s (± 1.20%) 0.85s (± 0.61%) 0.00s ( 0.00%) 0.84s 0.86s
Check Time 4.45s (± 0.42%) 4.45s (± 0.47%) +0.00s (+ 0.07%) 4.40s 4.48s
Emit Time 5.50s (± 0.55%) 5.50s (± 1.08%) -0.00s (- 0.07%) 5.34s 5.62s
Total Time 12.37s (± 0.38%) 12.38s (± 0.62%) +0.01s (+ 0.08%) 12.18s 12.53s
Monaco - node (v12.1.0, x64)
Memory used 345,710k (± 0.02%) 345,721k (± 0.01%) +11k (+ 0.00%) 345,632k 345,843k
Parse Time 1.23s (± 0.45%) 1.23s (± 0.66%) +0.00s (+ 0.16%) 1.21s 1.25s
Bind Time 0.73s (± 0.92%) 0.73s (± 0.94%) -0.00s (- 0.14%) 0.71s 0.74s
Check Time 4.47s (± 0.50%) 4.48s (± 0.30%) +0.01s (+ 0.18%) 4.46s 4.52s
Emit Time 3.00s (± 1.18%) 3.01s (± 0.78%) +0.01s (+ 0.20%) 2.97s 3.06s
Total Time 9.43s (± 0.39%) 9.44s (± 0.35%) +0.01s (+ 0.10%) 9.38s 9.51s
TFS - node (v12.1.0, x64)
Memory used 304,019k (± 0.02%) 304,035k (± 0.02%) +15k (+ 0.01%) 303,832k 304,131k
Parse Time 0.95s (± 1.03%) 0.95s (± 0.70%) +0.00s (+ 0.11%) 0.94s 0.97s
Bind Time 0.68s (± 0.81%) 0.69s (± 0.53%) +0.00s (+ 0.59%) 0.68s 0.69s
Check Time 4.06s (± 0.45%) 4.05s (± 0.42%) -0.00s (- 0.12%) 4.00s 4.07s
Emit Time 3.09s (± 0.93%) 3.11s (± 0.64%) +0.02s (+ 0.78%) 3.05s 3.15s
Total Time 8.78s (± 0.45%) 8.80s (± 0.31%) +0.02s (+ 0.23%) 8.74s 8.85s
Angular - node (v8.9.0, x64)
Memory used 349,561k (± 0.01%) 351,377k (± 0.02%) +1,816k (+ 0.52%) 351,166k 351,511k
Parse Time 2.09s (± 0.43%) 2.11s (± 0.51%) +0.01s (+ 0.67%) 2.08s 2.13s
Bind Time 0.91s (± 1.11%) 0.93s (± 0.65%) +0.02s (+ 2.10%) 0.91s 0.94s
Check Time 5.29s (± 0.65%) 5.30s (± 0.40%) +0.01s (+ 0.25%) 5.24s 5.33s
Emit Time 6.19s (± 1.56%) 6.21s (± 0.96%) +0.02s (+ 0.32%) 6.10s 6.34s
Total Time 14.49s (± 0.86%) 14.55s (± 0.46%) +0.06s (+ 0.41%) 14.37s 14.70s
Monaco - node (v8.9.0, x64)
Memory used 363,750k (± 0.01%) 363,723k (± 0.01%) -27k (- 0.01%) 363,591k 363,853k
Parse Time 1.56s (± 0.52%) 1.56s (± 0.48%) +0.00s (+ 0.19%) 1.55s 1.58s
Bind Time 0.93s (± 0.74%) 0.93s (± 0.94%) +0.00s (+ 0.54%) 0.92s 0.95s
Check Time 5.54s (± 0.57%) 5.58s (± 0.38%) +0.05s (+ 0.83%) 5.53s 5.63s
Emit Time 3.06s (± 0.92%) 3.06s (± 0.91%) -0.01s (- 0.20%) 3.01s 3.13s
Total Time 11.08s (± 0.41%) 11.13s (± 0.44%) +0.05s (+ 0.44%) 11.05s 11.28s
TFS - node (v8.9.0, x64)
Memory used 320,573k (± 0.02%) 320,578k (± 0.01%) +5k (+ 0.00%) 320,536k 320,656k
Parse Time 1.27s (± 0.51%) 1.26s (± 0.47%) -0.00s (- 0.24%) 1.25s 1.28s
Bind Time 0.74s (± 1.17%) 0.74s (± 0.83%) -0.00s (- 0.13%) 0.73s 0.75s
Check Time 4.71s (± 0.71%) 4.73s (± 0.45%) +0.02s (+ 0.40%) 4.68s 4.78s
Emit Time 3.21s (± 0.63%) 3.22s (± 0.84%) +0.01s (+ 0.19%) 3.12s 3.26s
Total Time 9.94s (± 0.51%) 9.96s (± 0.32%) +0.02s (+ 0.20%) 9.88s 10.01s
Angular - node (v8.9.0, x86)
Memory used 198,448k (± 0.02%) 199,503k (± 0.02%) +1,055k (+ 0.53%) 199,398k 199,641k
Parse Time 2.03s (± 0.63%) 2.04s (± 1.14%) +0.01s (+ 0.44%) 2.01s 2.13s
Bind Time 1.04s (± 1.28%) 1.01s (± 0.59%) -0.03s (- 2.78%) 1.00s 1.03s
Check Time 4.80s (± 0.60%) 4.78s (± 0.34%) -0.02s (- 0.35%) 4.74s 4.82s
Emit Time 6.01s (± 1.35%) 6.09s (± 1.57%) +0.08s (+ 1.38%) 5.97s 6.42s
Total Time 13.89s (± 0.74%) 13.93s (± 0.73%) +0.04s (+ 0.31%) 13.80s 14.28s
Monaco - node (v8.9.0, x86)
Memory used 203,758k (± 0.02%) 203,738k (± 0.02%) -20k (- 0.01%) 203,655k 203,806k
Parse Time 1.60s (± 0.42%) 1.60s (± 0.62%) +0.00s (+ 0.12%) 1.59s 1.63s
Bind Time 0.75s (± 1.09%) 0.75s (± 0.64%) +0.00s (+ 0.00%) 0.74s 0.76s
Check Time 5.40s (± 0.21%) 5.40s (± 0.80%) -0.00s (- 0.02%) 5.30s 5.50s
Emit Time 2.85s (± 1.07%) 2.88s (± 0.57%) +0.02s (+ 0.88%) 2.85s 2.92s
Total Time 10.60s (± 0.36%) 10.64s (± 0.41%) +0.03s (+ 0.32%) 10.54s 10.73s
TFS - node (v8.9.0, x86)
Memory used 180,564k (± 0.02%) 180,577k (± 0.02%) +13k (+ 0.01%) 180,491k 180,644k
Parse Time 1.31s (± 0.85%) 1.31s (± 0.63%) +0.00s (+ 0.15%) 1.29s 1.33s
Bind Time 0.70s (± 1.30%) 0.70s (± 0.52%) -0.00s (- 0.43%) 0.69s 0.70s
Check Time 4.49s (± 0.88%) 4.49s (± 0.90%) +0.00s (+ 0.09%) 4.38s 4.58s
Emit Time 2.97s (± 0.89%) 2.97s (± 1.25%) +0.00s (+ 0.07%) 2.88s 3.08s
Total Time 9.46s (± 0.58%) 9.47s (± 0.59%) +0.01s (+ 0.07%) 9.34s 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 35244 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.

@ahejlsberg
Copy link
Member Author

Community Test failures are just noise. However, in RWC tests we now OOM when compiling fp-ts (this is an old copy of fp-ts, the latest https://github.com/gcanti/fp-ts compiles fine).

@ahejlsberg
Copy link
Member Author

Closing this in favor of #35266.

@ahejlsberg ahejlsberg closed this Nov 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants