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

Tighten relational operator more #52342

Conversation

RyanCavanaugh
Copy link
Member

Addendum to #52048 per discussion there. Evaluating the real-world code impact before discussing further

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jan 20, 2023
@RyanCavanaugh
Copy link
Member Author

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the diff-based user code test suite (tsserver) on this PR at 5f7d2d9. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the parallelized Definitely Typed test suite on this PR at 5f7d2d9. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the diff-based user code test suite on this PR at 5f7d2d9. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the extended test suite on this PR at 5f7d2d9. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the diff-based top-repos suite (tsserver) on this PR at 5f7d2d9. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the diff-based top-repos suite on this PR at 5f7d2d9. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 20, 2023

Heya @RyanCavanaugh, I've started to run the perf test suite on this PR at 5f7d2d9. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the user test suite comparing main and refs/pull/52342/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the user test suite comparing main and refs/pull/52342/merge:

Something interesting changed - please have a look.

Details

fp-ts

dtslint/ts3.5/tsconfig.json

  • [NEW] error TS2365: Operator '<' cannot be applied to types 'boolean' and 'boolean'.
  • [NEW] error TS2365: Operator '>' cannot be applied to types 'boolean' and 'boolean'.

tsconfig.build-es6.json

  • [NEW] error TS2365: Operator '<' cannot be applied to types 'boolean' and 'boolean'.
  • [NEW] error TS2365: Operator '>' cannot be applied to types 'boolean' and 'boolean'.

tsconfig.json

  • [NEW] error TS2365: Operator '<' cannot be applied to types 'boolean' and 'boolean'.
  • [NEW] error TS2365: Operator '>' cannot be applied to types 'boolean' and 'boolean'.

webpack

tsconfig.json

tsconfig.types.json

@typescript-bot
Copy link
Collaborator

Heya @RyanCavanaugh, I've run the RWC suite on this PR - assuming you're on the TS core team, you can view the resulting diff here.

@RyanCavanaugh
Copy link
Member Author

OK, let's analyze.

fp-ts has this code

export const Ord: O.Ord<boolean> = {
  equals: Eq.equals,
  compare: (first, second) => (first < second ? -1 : first > second ? 1 : 0)
}

This seems more straightforwardly written as (first, second) => +first - +second; it's like the author of this code was depending on one bad TS behavior vs another.

Webpack's is... subtle:

/**
 * @param {string|number} a first id
 * @param {string|number} b second id
 * @returns {-1|0|1} compare result
 */
const compareIds = (a, b) => {
	if (typeof a !== typeof b) {
		return typeof a < typeof b ? -1 : 1;
	}
	if (a < b) return -1;
	if (a > b) return 1;
	return 0;
};

The reasonable objection at the erroring line (a < b) is "An implicit coercion might be happening", but that can't happen here because of the typeof check at the top of the function body. We don't have any plausible way to talk about "Two variables which have been shown to have the same typeof" so I think a type assertion here is reasonable to ask for.

The other break in webpack, here seems like it might also be correct-by-construction but the code is quite complex and I'm not really sure what's going on here.

RWC turned up several instances of relating Date to Date, which is coherent. Probably we'd see the same thing for moment instances on a broader testbed too. I think we could try testing for both sides to be assignable to { valueOf(): number }, since that is explicitly declared in most types of interest.

@RyanCavanaugh
Copy link
Member Author

This allows Date > Date but also allows Date > number, which is maybe suspicious or maybe fine -- Date > Date is an extremely coherent operation which we must reasonably allow, so the violation Date > number is really more of a question of units, since it seems sort of odd that you would have a number that meaningfully corresponds to Date's valueOf.

TLD;R we can't really blame this on implicit coercion, since the implicit coercion that occurs in Date > Date is idiomatic the same way that arr[0]'s number-to-string coercion is. So as long as all the operands in > implicitly coerce to the same primitive type, I think it's sensible to allow it. But we can't merge this PR today so I think it's out for 5.0 Beta.

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the top-repos suite comparing main and refs/pull/52342/merge:

Something interesting changed - please have a look.

Details

palantir/blueprint

⚠️ Note that built also had errors ⚠️
Req #19165 - references
    at getTypeAtPosition (/typescript-main/built/local/tsserver.js:75203:12)
    at getContextualTypeForArgumentAtIndex (/typescript-main/built/local/tsserver.js:70335:215)
    at getContextualTypeForArgument (/typescript-main/built/local/tsserver.js:70321:39)
    at getContextualType2 (/typescript-main/built/local/tsserver.js:70762:16)
    at getApparentTypeOfContextualType (/typescript-main/built/local/tsserver.js:70698:120)
    at getContextualType2 (/typescript-main/built/local/tsserver.js:70777:22)
    at getApparentTypeOfContextualType (/typescript-main/built/local/tsserver.js:70698:120)
    at getContextualSignature (/typescript-main/built/local/tsserver.js:71065:18)
    at getNarrowedTypeOfSymbol (/typescript-main/built/local/tsserver.js:69513:39)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69605:16)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-main/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-main/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-main/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-main/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-main/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77706:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
    at checkNonNullExpression (/typescript-main/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-main/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-main/built/local/tsserver.js:77740:16)
    at checkExpression (/typescript-main/built/local/tsserver.js:77660:32)
Req #19165 - references
    at tryGetTypeAtPosition (/typescript-52342/built/local/tsserver.js:75205:32)
    at getTypeAtPosition (/typescript-52342/built/local/tsserver.js:75203:12)
    at getContextualTypeForArgumentAtIndex (/typescript-52342/built/local/tsserver.js:70335:215)
    at getContextualTypeForArgument (/typescript-52342/built/local/tsserver.js:70321:39)
    at getContextualType2 (/typescript-52342/built/local/tsserver.js:70762:16)
    at getApparentTypeOfContextualType (/typescript-52342/built/local/tsserver.js:70698:120)
    at getContextualType2 (/typescript-52342/built/local/tsserver.js:70777:22)
    at getApparentTypeOfContextualType (/typescript-52342/built/local/tsserver.js:70698:120)
    at getContextualSignature (/typescript-52342/built/local/tsserver.js:71065:18)
    at getNarrowedTypeOfSymbol (/typescript-52342/built/local/tsserver.js:69513:39)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69605:16)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at getEffectsSignature (/typescript-52342/built/local/tsserver.js:68216:22)
    at getTypeAtFlowCall (/typescript-52342/built/local/tsserver.js:68555:25)
    at getTypeAtFlowNode (/typescript-52342/built/local/tsserver.js:68441:18)
    at getFlowTypeOfReference (/typescript-52342/built/local/tsserver.js:68398:45)
    at checkIdentifier (/typescript-52342/built/local/tsserver.js:69648:22)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77710:16)
    at checkExpression (/typescript-52342/built/local/tsserver.js:77664:32)
    at checkNonNullExpression (/typescript-52342/built/local/tsserver.js:72141:29)
    at checkPropertyAccessExpression (/typescript-52342/built/local/tsserver.js:72220:162)
    at checkExpressionWorker (/typescript-52342/built/local/tsserver.js:77744:16)

That is a filtered view of the text. To see the raw error text, go to RepoResults4/palantir.blueprint.rawError.txt in the artifact folder

Last few requests

{"seq":19162,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/2/docs-app.js","line":1,"offset":242845}}
{"seq":19163,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/2/docs-app.js","line":1,"offset":243005,"includeExternalModuleExports":false,"includeInsertTextCompletions":true,"triggerKind":2,"triggerCharacter":" "}}
{"seq":19164,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/2/docs-app.js","line":1,"offset":243231}}
{"seq":19165,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/site/docs/versions/2/docs-app.js","line":1,"offset":245468}}

Repro Steps

  1. git clone https://github.com/palantir/blueprint --recurse-submodules
  2. In dir blueprint, run git reset --hard 6cfa0d407e0232573e1d6fad1716ec2092ac96d4
  3. In dir blueprint, run yarn install --ignore-engines --ignore-scripts --silent
  4. Back in the initial folder, download RepoResults4/palantir.blueprint.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./blueprint ./palantir.blueprint.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..52342
Metric main 52342 Delta Best Worst
Angular - node (v18.10.0, x64)
Memory used 358,839k (± 0.01%) 358,796k (± 0.01%) -43k (- 0.01%) 358,764k 358,834k
Parse Time 3.92s (± 1.72%) 3.93s (± 1.06%) +0.00s (+ 0.08%) 3.87s 3.98s
Bind Time 1.17s (± 0.49%) 1.17s (± 0.33%) -0.00s (- 0.00%) 1.17s 1.18s
Check Time 8.85s (± 0.33%) 8.86s (± 0.43%) +0.02s (+ 0.19%) 8.80s 8.90s
Emit Time 7.62s (± 0.56%) 7.65s (± 0.56%) +0.03s (+ 0.37%) 7.59s 7.69s
Total Time 21.57s (± 0.55%) 21.61s (± 0.21%) +0.05s (+ 0.22%) 21.55s 21.67s
Compiler-Unions - node (v18.10.0, x64)
Memory used 195,467k (± 1.57%) 194,387k (± 1.49%) -1,080k (- 0.55%) 192,276k 198,125k
Parse Time 1.62s (± 1.18%) 1.62s (± 2.29%) +0.00s (+ 0.07%) 1.58s 1.68s
Bind Time 0.79s (± 0.52%) 0.79s (± 0.70%) +0.00s (+ 0.49%) 0.79s 0.80s
Check Time 9.66s (± 0.67%) 9.64s (± 0.93%) -0.01s (- 0.14%) 9.58s 9.82s
Emit Time 2.85s (± 4.11%) 2.83s (± 4.99%) -0.02s (- 0.63%) 2.73s 3.12s
Total Time 14.92s (± 0.94%) 14.90s (± 1.13%) -0.03s (- 0.17%) 14.71s 15.16s
Monaco - node (v18.10.0, x64)
Memory used 343,899k (± 0.01%) 343,903k (± 0.01%) +4k (+ 0.00%) 343,864k 343,967k
Parse Time 2.91s (± 0.46%) 2.93s (± 0.46%) +0.02s (+ 0.54%) 2.91s 2.94s
Bind Time 1.04s (± 1.19%) 1.05s (± 1.05%) +0.00s (+ 0.44%) 1.03s 1.06s
Check Time 7.27s (± 0.48%) 7.29s (± 0.29%) +0.02s (+ 0.26%) 7.27s 7.31s
Emit Time 4.36s (± 0.47%) 4.35s (± 0.81%) -0.01s (- 0.15%) 4.31s 4.40s
Total Time 15.58s (± 0.31%) 15.62s (± 0.34%) +0.03s (+ 0.22%) 15.56s 15.69s
TFS - node (v18.10.0, x64)
Memory used 300,315k (± 0.00%) 300,400k (± 0.01%) +86k (+ 0.03%) 300,385k 300,430k
Parse Time 2.25s (± 1.47%) 2.24s (± 0.84%) -0.01s (- 0.59%) 2.21s 2.26s
Bind Time 1.18s (± 0.51%) 1.18s (± 0.35%) +0.00s (+ 0.00%) 1.18s 1.19s
Check Time 6.86s (± 0.24%) 6.96s (± 0.38%) +0.09s (+ 1.36%) 6.91s 6.99s
Emit Time 3.94s (± 0.67%) 3.93s (± 0.52%) -0.01s (- 0.30%) 3.89s 3.95s
Total Time 14.23s (± 0.35%) 14.30s (± 0.25%) +0.07s (+ 0.49%) 14.27s 14.35s
material-ui - node (v18.10.0, x64)
Memory used 476,107k (± 0.00%) 476,170k (± 0.01%) +63k (+ 0.01%) 476,119k 476,214k
Parse Time 3.44s (± 1.79%) 3.46s (± 1.75%) +0.02s (+ 0.63%) 3.34s 3.50s
Bind Time 0.98s (± 6.91%) 0.98s (± 6.26%) -0.00s (- 0.01%) 0.95s 1.11s
Check Time 17.03s (± 0.64%) 17.09s (± 1.09%) +0.07s (+ 0.40%) 16.94s 17.33s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 21.45s (± 0.55%) 21.53s (± 0.87%) +0.09s (+ 0.40%) 21.36s 21.77s
xstate - node (v18.10.0, x64)
Memory used 546,937k (± 0.02%) 546,833k (± 0.01%) -104k (- 0.02%) 546,768k 546,952k
Parse Time 4.40s (± 0.33%) 4.42s (± 0.81%) +0.01s (+ 0.32%) 4.38s 4.48s
Bind Time 1.69s (± 0.90%) 1.71s (± 1.21%) +0.02s (+ 1.15%) 1.67s 1.73s
Check Time 2.73s (± 0.76%) 2.74s (± 0.60%) +0.00s (+ 0.16%) 2.72s 2.77s
Emit Time 0.08s (± 0.27%) 0.08s (± 0.16%) +0.00s (+ 0.17%) 0.08s 0.08s
Total Time 8.90s (± 0.50%) 8.94s (± 0.73%) +0.04s (+ 0.45%) 8.85s 9.04s
Angular - node (v16.17.1, x64)
Memory used 358,196k (± 0.01%) 358,235k (± 0.01%) +39k (+ 0.01%) 358,207k 358,263k
Parse Time 4.13s (± 0.26%) 4.14s (± 0.73%) +0.01s (+ 0.26%) 4.12s 4.20s
Bind Time 1.24s (± 0.37%) 1.24s (± 1.05%) +0.00s (+ 0.07%) 1.23s 1.26s
Check Time 9.51s (± 0.25%) 9.55s (± 0.34%) +0.03s (+ 0.34%) 9.49s 9.59s
Emit Time 8.07s (± 0.80%) 8.08s (± 0.52%) +0.00s (+ 0.02%) 8.03s 8.13s
Total Time 22.96s (± 0.40%) 23.00s (± 0.38%) +0.05s (+ 0.20%) 22.90s 23.15s
Compiler-Unions - node (v16.17.1, x64)
Memory used 194,336k (± 0.03%) 194,234k (± 0.04%) -103k (- 0.05%) 194,137k 194,398k
Parse Time 1.79s (± 0.67%) 1.80s (± 0.79%) +0.01s (+ 0.72%) 1.79s 1.83s
Bind Time 0.84s (± 0.58%) 0.85s (± 1.27%) +0.01s (+ 0.66%) 0.84s 0.86s
Check Time 10.40s (± 0.46%) 10.27s (± 0.70%) -0.13s (- 1.23%) 10.18s 10.39s
Emit Time 3.04s (± 0.71%) 3.02s (± 0.63%) -0.02s (- 0.81%) 3.00s 3.05s
Total Time 16.07s (± 0.46%) 15.93s (± 0.64%) -0.13s (- 0.83%) 15.83s 16.12s
Monaco - node (v16.17.1, x64)
Memory used 343,253k (± 0.01%) 343,226k (± 0.01%) -27k (- 0.01%) 343,189k 343,258k
Parse Time 3.12s (± 0.87%) 3.11s (± 1.00%) -0.01s (- 0.37%) 3.06s 3.14s
Bind Time 1.10s (± 0.32%) 1.10s (± 0.96%) +0.00s (+ 0.30%) 1.09s 1.12s
Check Time 7.89s (± 0.36%) 7.94s (± 0.43%) +0.05s (+ 0.65%) 7.91s 8.00s
Emit Time 4.53s (± 0.41%) 4.55s (± 0.65%) +0.02s (+ 0.55%) 4.50s 4.58s
Total Time 16.63s (± 0.26%) 16.69s (± 0.50%) +0.06s (+ 0.36%) 16.57s 16.81s
TFS - node (v16.17.1, x64)
Memory used 299,661k (± 0.01%) 299,734k (± 0.00%) +72k (+ 0.02%) 299,715k 299,750k
Parse Time 2.45s (± 1.45%) 2.45s (± 1.22%) +0.00s (+ 0.14%) 2.41s 2.48s
Bind Time 1.27s (± 1.14%) 1.27s (± 0.90%) +0.00s (+ 0.13%) 1.25s 1.29s
Check Time 7.49s (± 0.58%) 7.56s (± 0.30%) +0.07s (+ 0.96%) 7.53s 7.59s
Emit Time 4.22s (± 0.77%) 4.23s (± 0.50%) +0.01s (+ 0.28%) 4.20s 4.26s
Total Time 15.43s (± 0.48%) 15.51s (± 0.35%) +0.09s (+ 0.56%) 15.42s 15.58s
material-ui - node (v16.17.1, x64)
Memory used 475,388k (± 0.01%) 475,431k (± 0.01%) +43k (+ 0.01%) 475,378k 475,483k
Parse Time 3.63s (± 0.18%) 3.64s (± 0.25%) +0.00s (+ 0.09%) 3.63s 3.65s
Bind Time 1.00s (± 0.55%) 1.00s (± 0.48%) -0.00s (- 0.17%) 1.00s 1.01s
Check Time 18.06s (± 1.40%) 18.00s (± 0.36%) -0.06s (- 0.31%) 17.95s 18.09s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 22.69s (± 1.12%) 22.64s (± 0.31%) -0.05s (- 0.22%) 22.58s 22.73s
xstate - node (v16.17.1, x64)
Memory used 544,488k (± 0.01%) 544,483k (± 0.01%) -5k (- 0.00%) 544,401k 544,530k
Parse Time 4.57s (± 0.47%) 4.57s (± 0.93%) -0.00s (- 0.07%) 4.53s 4.65s
Bind Time 1.77s (± 0.31%) 1.78s (± 0.42%) +0.01s (+ 0.34%) 1.77s 1.79s
Check Time 2.95s (± 0.55%) 2.94s (± 0.74%) -0.00s (- 0.15%) 2.91s 2.97s
Emit Time 0.09s (± 0.11%) 0.09s (± 0.16%) -0.00s (- 0.03%) 0.09s 0.09s
Total Time 9.38s (± 0.23%) 9.37s (± 0.58%) -0.01s (- 0.09%) 9.31s 9.47s
Angular - node (v14.15.1, x64)
Memory used 351,807k (± 0.00%) 351,808k (± 0.01%) +1k (+ 0.00%) 351,784k 351,831k
Parse Time 4.15s (± 0.34%) 4.19s (± 0.37%) +0.04s (+ 0.85%) 4.16s 4.21s
Bind Time 1.27s (± 0.71%) 1.27s (± 0.86%) +0.00s (+ 0.36%) 1.26s 1.29s
Check Time 9.80s (± 0.35%) 9.80s (± 0.38%) +0.01s (+ 0.07%) 9.74s 9.85s
Emit Time 8.41s (± 0.90%) 8.41s (± 0.63%) +0.00s (+ 0.03%) 8.35s 8.50s
Total Time 23.63s (± 0.29%) 23.67s (± 0.33%) +0.05s (+ 0.20%) 23.56s 23.78s
Compiler-Unions - node (v14.15.1, x64)
Memory used 189,360k (± 0.01%) 189,325k (± 0.02%) -35k (- 0.02%) 189,288k 189,390k
Parse Time 1.84s (± 0.67%) 1.83s (± 0.70%) -0.01s (- 0.46%) 1.82s 1.85s
Bind Time 0.87s (± 1.02%) 0.86s (± 0.58%) -0.01s (- 1.24%) 0.86s 0.87s
Check Time 10.41s (± 0.58%) 10.41s (± 0.72%) -0.00s (- 0.04%) 10.33s 10.54s
Emit Time 3.17s (± 0.93%) 3.14s (± 0.72%) -0.03s (- 0.83%) 3.10s 3.17s
Total Time 16.29s (± 0.36%) 16.24s (± 0.64%) -0.05s (- 0.31%) 16.13s 16.42s
Monaco - node (v14.15.1, x64)
Memory used 337,960k (± 0.00%) 337,994k (± 0.01%) +35k (+ 0.01%) 337,956k 338,065k
Parse Time 3.22s (± 1.24%) 3.23s (± 1.30%) +0.01s (+ 0.16%) 3.17s 3.29s
Bind Time 1.13s (± 0.37%) 1.13s (± 0.35%) -0.00s (- 0.14%) 1.13s 1.14s
Check Time 8.18s (± 0.30%) 8.26s (± 0.40%) +0.08s (+ 0.98%) 8.20s 8.29s
Emit Time 4.80s (± 0.89%) 4.82s (± 1.44%) +0.02s (+ 0.35%) 4.76s 4.93s
Total Time 17.33s (± 0.48%) 17.43s (± 0.63%) +0.10s (+ 0.57%) 17.26s 17.53s
TFS - node (v14.15.1, x64)
Memory used 294,487k (± 0.01%) 294,594k (± 0.01%) +107k (+ 0.04%) 294,555k 294,630k
Parse Time 2.70s (± 1.77%) 2.72s (± 0.89%) +0.02s (+ 0.70%) 2.68s 2.74s
Bind Time 1.11s (± 0.41%) 1.11s (± 0.51%) +0.00s (+ 0.05%) 1.10s 1.12s
Check Time 7.76s (± 0.52%) 7.83s (± 0.42%) +0.06s (+ 0.78%) 7.77s 7.85s
Emit Time 4.58s (± 0.28%) 4.60s (± 0.81%) +0.02s (+ 0.41%) 4.53s 4.64s
Total Time 16.15s (± 0.40%) 16.25s (± 0.45%) +0.10s (+ 0.60%) 16.16s 16.33s
material-ui - node (v14.15.1, x64)
Memory used 470,859k (± 0.00%) 470,867k (± 0.00%) +8k (+ 0.00%) 470,850k 470,874k
Parse Time 3.82s (± 0.44%) 3.85s (± 0.52%) +0.02s (+ 0.64%) 3.81s 3.87s
Bind Time 1.02s (± 0.18%) 1.02s (± 0.64%) +0.00s (+ 0.36%) 1.01s 1.03s
Check Time 18.93s (± 0.53%) 18.99s (± 0.71%) +0.07s (+ 0.35%) 18.84s 19.13s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 23.77s (± 0.48%) 23.86s (± 0.54%) +0.09s (+ 0.38%) 23.70s 23.99s
xstate - node (v14.15.1, x64)
Memory used 532,558k (± 0.00%) 532,526k (± 0.00%) -32k (- 0.01%) 532,496k 532,560k
Parse Time 4.94s (± 0.38%) 5.02s (± 0.95%) +0.08s (+ 1.58%) 4.95s 5.09s
Bind Time 1.67s (± 0.89%) 1.67s (± 0.69%) -0.01s (- 0.46%) 1.65s 1.68s
Check Time 3.08s (± 0.46%) 3.09s (± 0.74%) +0.01s (+ 0.36%) 3.06s 3.11s
Emit Time 0.10s (± 0.17%) 0.10s (± 0.16%) +0.00s (+ 0.03%) 0.10s 0.10s
Total Time 9.81s (± 0.23%) 9.88s (± 0.65%) +0.07s (+ 0.73%) 9.82s 9.98s
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52342 6
Baseline main 6

TSServer

Comparison Report - main..52342
Metric main 52342 Delta Best Worst
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,398ms (± 6.86%) 2,514ms (± 2.07%) +116ms (+ 4.85%) 2,461ms 2,598ms
Req 2 - geterr 5,200ms (± 6.38%) 5,414ms (± 0.94%) +214ms (+ 4.11%) 5,366ms 5,494ms
Req 3 - references 360ms (± 6.68%) 380ms (± 1.97%) +20ms (+ 5.50%) 370ms 390ms
Req 4 - navto 271ms (± 5.59%) 279ms (± 3.23%) +9ms (+ 3.14%) 270ms 293ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 206ms (±50.62%) 176ms (±64.89%) 🟩-30ms (-14.52%) 67ms 285ms
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,719ms (± 1.50%) 2,727ms (± 1.69%) +8ms (+ 0.29%) 2,680ms 2,786ms
Req 2 - geterr 4,000ms (± 0.54%) 3,982ms (± 0.61%) -18ms (- 0.45%) 3,948ms 4,022ms
Req 3 - references 365ms (± 0.60%) 362ms (± 0.76%) -3ms (- 0.91%) 359ms 367ms
Req 4 - navto 291ms (± 0.91%) 294ms (± 0.32%) +3ms (+ 0.91%) 293ms 295ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 82ms (± 0.77%) 69ms (± 2.75%) 🟩-12ms (-14.80%) 66ms 71ms
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,308ms (± 0.73%) 3,351ms (± 0.65%) +42ms (+ 1.27%) 3,327ms 3,378ms
Req 2 - geterr 1,427ms (± 1.70%) 1,440ms (± 3.70%) +13ms (+ 0.93%) 1,373ms 1,497ms
Req 3 - references 222ms (±13.58%) 200ms (±16.28%) 🟩-22ms (- 9.79%) 177ms 244ms
Req 4 - navto 350ms (± 1.97%) 350ms (± 2.00%) -0ms (- 0.06%) 343ms 363ms
Req 5 - completionInfo count 3,159 (± 0.00%) 3,159 (± 0.00%) 0 ( 0.00%) 3,159 3,159
Req 5 - completionInfo 443ms (± 1.31%) 444ms (± 1.76%) +1ms (+ 0.26%) 435ms 454ms
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,777ms (± 0.34%) 2,747ms (± 1.24%) -30ms (- 1.09%) 2,686ms 2,783ms
Req 2 - geterr 5,806ms (± 0.46%) 5,805ms (± 0.81%) -1ms (- 0.02%) 5,741ms 5,874ms
Req 3 - references 369ms (± 0.90%) 372ms (± 1.51%) +3ms (+ 0.81%) 364ms 381ms
Req 4 - navto 269ms (± 1.70%) 271ms (± 1.03%) +1ms (+ 0.50%) 267ms 274ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 79ms (± 9.08%) 227ms (±48.80%) 🔻+148ms (+187.34%) 81ms 309ms
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,898ms (± 1.05%) 2,892ms (± 0.32%) -6ms (- 0.19%) 2,886ms 2,907ms
Req 2 - geterr 4,315ms (± 0.69%) 4,306ms (± 0.69%) -10ms (- 0.22%) 4,262ms 4,332ms
Req 3 - references 378ms (± 0.89%) 373ms (± 0.93%) -5ms (- 1.27%) 369ms 378ms
Req 4 - navto 297ms (± 1.07%) 298ms (± 0.85%) +1ms (+ 0.31%) 294ms 300ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 78ms (± 8.71%) 75ms (± 1.10%) 🟩-3ms (- 3.95%) 74ms 76ms
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,464ms (± 0.77%) 3,470ms (± 0.68%) +7ms (+ 0.19%) 3,442ms 3,507ms
Req 2 - geterr 1,516ms (± 0.61%) 1,526ms (± 0.64%) +10ms (+ 0.65%) 1,513ms 1,537ms
Req 3 - references 273ms (± 0.93%) 272ms (± 1.52%) -1ms (- 0.52%) 266ms 276ms
Req 4 - navto 326ms (± 0.75%) 326ms (± 0.97%) -0ms (- 0.07%) 321ms 331ms
Req 5 - completionInfo count 3,159 (± 0.00%) 3,159 (± 0.00%) 0 ( 0.00%) 3,159 3,159
Req 5 - completionInfo 482ms (± 1.52%) 488ms (± 1.14%) +6ms (+ 1.20%) 482ms 497ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,855ms (± 0.43%) 2,862ms (± 0.57%) +7ms (+ 0.26%) 2,840ms 2,881ms
Req 2 - geterr 6,217ms (± 0.56%) 6,240ms (± 0.96%) +22ms (+ 0.36%) 6,156ms 6,327ms
Req 3 - references 386ms (± 0.40%) 391ms (± 1.28%) +5ms (+ 1.29%) 385ms 398ms
Req 4 - navto 283ms (± 0.94%) 277ms (± 0.97%) -6ms (- 1.95%) 273ms 281ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 90ms (± 2.76%) 82ms (± 7.86%) 🟩-8ms (- 8.66%) 75ms 90ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,011ms (± 0.70%) 3,035ms (± 0.84%) +25ms (+ 0.83%) 3,010ms 3,079ms
Req 2 - geterr 4,605ms (± 0.34%) 4,621ms (± 0.34%) +16ms (+ 0.34%) 4,595ms 4,639ms
Req 3 - references 399ms (± 1.22%) 398ms (± 1.36%) -1ms (- 0.27%) 390ms 404ms
Req 4 - navto 296ms (± 1.08%) 298ms (± 1.06%) +1ms (+ 0.48%) 293ms 302ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 84ms (± 2.05%) 84ms (± 1.05%) +1ms (+ 0.68%) 83ms 85ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,779ms (± 0.70%) 3,786ms (± 0.49%) +7ms (+ 0.19%) 3,771ms 3,822ms
Req 2 - geterr 1,482ms (± 0.30%) 1,510ms (± 2.37%) +28ms (+ 1.88%) 1,467ms 1,548ms
Req 3 - references 128ms (± 3.50%) 128ms (± 1.83%) -0ms (- 0.14%) 127ms 133ms
Req 4 - navto 367ms (± 0.55%) 369ms (± 0.62%) +2ms (+ 0.61%) 365ms 372ms
Req 5 - completionInfo count 3,159 (± 0.00%) 3,159 (± 0.00%) 0 ( 0.00%) 3,159 3,159
Req 5 - completionInfo 500ms (± 1.13%) 506ms (± 1.15%) +6ms (+ 1.19%) 500ms 513ms
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 52342 6
Baseline main 6

Startup

Comparison Report - main..52342
Metric main 52342 Delta Best Worst
tsc-startup - node (v16.17.1, x64)
Execution time 141.49ms (± 0.22%) 141.35ms (± 0.19%) -0.14ms (- 0.10%) 140.26ms 144.74ms
tsserver-startup - node (v16.17.1, x64)
Execution time 225.44ms (± 0.27%) 228.28ms (± 0.45%) +2.85ms (+ 1.26%) 224.56ms 233.62ms
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 227.94ms (± 0.32%) 230.55ms (± 0.30%) +2.60ms (+ 1.14%) 226.50ms 234.98ms
typescript-startup - node (v16.17.1, x64)
Execution time 208.73ms (± 0.27%) 211.96ms (± 0.23%) +3.23ms (+ 1.55%) 208.82ms 217.49ms
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 52342 6
Baseline main 6

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the top-repos suite comparing main and refs/pull/52342/merge:

Something interesting changed - please have a look.

Details

Eugeny/tabby

19 of 29 projects failed to build with the old tsc and were ignored

app/tsconfig.json

app/tsconfig.main.json

tabby-plugin-manager/tsconfig.json

tabby-settings/tsconfig.json

tabby-settings/tsconfig.typings.json

jquense/yup

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2365: Operator '>=' cannot be applied to types 'NonNullable<this["__outputType"]>' and 'Date'.
  • error TS2365: Operator '<=' cannot be applied to types 'NonNullable<this["__outputType"]>' and 'Date'.

lyswhut/lx-music-desktop

1 of 6 projects failed to build with the old tsc and were ignored

src/common/tsconfig.json

src/main/tsconfig.json

src/renderer-lyric/tsconfig.json

src/renderer/tsconfig.json

palantir/blueprint

4 of 27 projects failed to build with the old tsc and were ignored

packages/datetime/src/tsconfig.json

packages/datetime/test/tsconfig.json

packages/datetime2/src/tsconfig.json

packages/datetime2/test/tsconfig.json

prisma/prisma

60 of 71 projects failed to build with the old tsc and were ignored

packages/fetch-engine/tsconfig.build.json

packages/engines/tsconfig.build.json

ReactiveX/rxjs

8 of 13 projects failed to build with the old tsc and were ignored

src/tsconfig.cjs.spec.json

src/tsconfig.esm5.rollup.json

src/tsconfig.types.json

refined-github/refined-github

tsconfig.json

remix-run/react-router

17 of 19 projects failed to build with the old tsc and were ignored

scripts/release/tsconfig.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants