Skip to content

Tighten relational operator more - #52342

Closed
Ryan Cavanaugh (RyanCavanaugh) wants to merge 5 commits into
microsoft:mainfrom
RyanCavanaugh:tightenRelationalOperatorMore
Closed

Tighten relational operator more#52342
Ryan Cavanaugh (RyanCavanaugh) wants to merge 5 commits into
microsoft:mainfrom
RyanCavanaugh:tightenRelationalOperatorMore

Conversation

@RyanCavanaugh

Copy link
Copy Markdown
Member

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

@RyanCavanaugh

Copy link
Copy Markdown
MemberAuthor

@typescript-bot

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

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

@typescript-bot

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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

TypeScript Bot (typescript-bot) commented Jan 20, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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
Copy Markdown
Contributor

Ryan Cavanaugh (@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
Copy Markdown
Contributor

Ryan Cavanaugh (@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
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@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
Copy Markdown
MemberAuthor

OK, let's analyze.

fp-ts has this code

exportconstOrd: 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 */constcompareIds=(a,b)=>{if(typeofa!==typeofb){returntypeofa<typeofb ? -1 : 1;}if(a<b)return-1;if(a>b)return1;return0;};

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, hereseems 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
Copy Markdown
MemberAuthor

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
Copy Markdown
Contributor

Ryan Cavanaugh (@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
Copy Markdown
Contributor

Ryan Cavanaugh (@RyanCavanaugh)
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..52342
Metricmain52342DeltaBestWorst
Angular - node (v18.10.0, x64)
Memory used358,839k (± 0.01%)358,796k (± 0.01%)-43k (- 0.01%)358,764k358,834k
Parse Time3.92s (± 1.72%)3.93s (± 1.06%)+0.00s (+ 0.08%)3.87s3.98s
Bind Time1.17s (± 0.49%)1.17s (± 0.33%)-0.00s (- 0.00%)1.17s1.18s
Check Time8.85s (± 0.33%)8.86s (± 0.43%)+0.02s (+ 0.19%)8.80s8.90s
Emit Time7.62s (± 0.56%)7.65s (± 0.56%)+0.03s (+ 0.37%)7.59s7.69s
Total Time21.57s (± 0.55%)21.61s (± 0.21%)+0.05s (+ 0.22%)21.55s21.67s
Compiler-Unions - node (v18.10.0, x64)
Memory used195,467k (± 1.57%)194,387k (± 1.49%)-1,080k (- 0.55%)192,276k198,125k
Parse Time1.62s (± 1.18%)1.62s (± 2.29%)+0.00s (+ 0.07%)1.58s1.68s
Bind Time0.79s (± 0.52%)0.79s (± 0.70%)+0.00s (+ 0.49%)0.79s0.80s
Check Time9.66s (± 0.67%)9.64s (± 0.93%)-0.01s (- 0.14%)9.58s9.82s
Emit Time2.85s (± 4.11%)2.83s (± 4.99%)-0.02s (- 0.63%)2.73s3.12s
Total Time14.92s (± 0.94%)14.90s (± 1.13%)-0.03s (- 0.17%)14.71s15.16s
Monaco - node (v18.10.0, x64)
Memory used343,899k (± 0.01%)343,903k (± 0.01%)+4k (+ 0.00%)343,864k343,967k
Parse Time2.91s (± 0.46%)2.93s (± 0.46%)+0.02s (+ 0.54%)2.91s2.94s
Bind Time1.04s (± 1.19%)1.05s (± 1.05%)+0.00s (+ 0.44%)1.03s1.06s
Check Time7.27s (± 0.48%)7.29s (± 0.29%)+0.02s (+ 0.26%)7.27s7.31s
Emit Time4.36s (± 0.47%)4.35s (± 0.81%)-0.01s (- 0.15%)4.31s4.40s
Total Time15.58s (± 0.31%)15.62s (± 0.34%)+0.03s (+ 0.22%)15.56s15.69s
TFS - node (v18.10.0, x64)
Memory used300,315k (± 0.00%)300,400k (± 0.01%)+86k (+ 0.03%)300,385k300,430k
Parse Time2.25s (± 1.47%)2.24s (± 0.84%)-0.01s (- 0.59%)2.21s2.26s
Bind Time1.18s (± 0.51%)1.18s (± 0.35%)+0.00s (+ 0.00%)1.18s1.19s
Check Time6.86s (± 0.24%)6.96s (± 0.38%)+0.09s (+ 1.36%)6.91s6.99s
Emit Time3.94s (± 0.67%)3.93s (± 0.52%)-0.01s (- 0.30%)3.89s3.95s
Total Time14.23s (± 0.35%)14.30s (± 0.25%)+0.07s (+ 0.49%)14.27s14.35s
material-ui - node (v18.10.0, x64)
Memory used476,107k (± 0.00%)476,170k (± 0.01%)+63k (+ 0.01%)476,119k476,214k
Parse Time3.44s (± 1.79%)3.46s (± 1.75%)+0.02s (+ 0.63%)3.34s3.50s
Bind Time0.98s (± 6.91%)0.98s (± 6.26%)-0.00s (- 0.01%)0.95s1.11s
Check Time17.03s (± 0.64%)17.09s (± 1.09%)+0.07s (+ 0.40%)16.94s17.33s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time21.45s (± 0.55%)21.53s (± 0.87%)+0.09s (+ 0.40%)21.36s21.77s
xstate - node (v18.10.0, x64)
Memory used546,937k (± 0.02%)546,833k (± 0.01%)-104k (- 0.02%)546,768k546,952k
Parse Time4.40s (± 0.33%)4.42s (± 0.81%)+0.01s (+ 0.32%)4.38s4.48s
Bind Time1.69s (± 0.90%)1.71s (± 1.21%)+0.02s (+ 1.15%)1.67s1.73s
Check Time2.73s (± 0.76%)2.74s (± 0.60%)+0.00s (+ 0.16%)2.72s2.77s
Emit Time0.08s (± 0.27%)0.08s (± 0.16%)+0.00s (+ 0.17%)0.08s0.08s
Total Time8.90s (± 0.50%)8.94s (± 0.73%)+0.04s (+ 0.45%)8.85s9.04s
Angular - node (v16.17.1, x64)
Memory used358,196k (± 0.01%)358,235k (± 0.01%)+39k (+ 0.01%)358,207k358,263k
Parse Time4.13s (± 0.26%)4.14s (± 0.73%)+0.01s (+ 0.26%)4.12s4.20s
Bind Time1.24s (± 0.37%)1.24s (± 1.05%)+0.00s (+ 0.07%)1.23s1.26s
Check Time9.51s (± 0.25%)9.55s (± 0.34%)+0.03s (+ 0.34%)9.49s9.59s
Emit Time8.07s (± 0.80%)8.08s (± 0.52%)+0.00s (+ 0.02%)8.03s8.13s
Total Time22.96s (± 0.40%)23.00s (± 0.38%)+0.05s (+ 0.20%)22.90s23.15s
Compiler-Unions - node (v16.17.1, x64)
Memory used194,336k (± 0.03%)194,234k (± 0.04%)-103k (- 0.05%)194,137k194,398k
Parse Time1.79s (± 0.67%)1.80s (± 0.79%)+0.01s (+ 0.72%)1.79s1.83s
Bind Time0.84s (± 0.58%)0.85s (± 1.27%)+0.01s (+ 0.66%)0.84s0.86s
Check Time10.40s (± 0.46%)10.27s (± 0.70%)-0.13s (- 1.23%)10.18s10.39s
Emit Time3.04s (± 0.71%)3.02s (± 0.63%)-0.02s (- 0.81%)3.00s3.05s
Total Time16.07s (± 0.46%)15.93s (± 0.64%)-0.13s (- 0.83%)15.83s16.12s
Monaco - node (v16.17.1, x64)
Memory used343,253k (± 0.01%)343,226k (± 0.01%)-27k (- 0.01%)343,189k343,258k
Parse Time3.12s (± 0.87%)3.11s (± 1.00%)-0.01s (- 0.37%)3.06s3.14s
Bind Time1.10s (± 0.32%)1.10s (± 0.96%)+0.00s (+ 0.30%)1.09s1.12s
Check Time7.89s (± 0.36%)7.94s (± 0.43%)+0.05s (+ 0.65%)7.91s8.00s
Emit Time4.53s (± 0.41%)4.55s (± 0.65%)+0.02s (+ 0.55%)4.50s4.58s
Total Time16.63s (± 0.26%)16.69s (± 0.50%)+0.06s (+ 0.36%)16.57s16.81s
TFS - node (v16.17.1, x64)
Memory used299,661k (± 0.01%)299,734k (± 0.00%)+72k (+ 0.02%)299,715k299,750k
Parse Time2.45s (± 1.45%)2.45s (± 1.22%)+0.00s (+ 0.14%)2.41s2.48s
Bind Time1.27s (± 1.14%)1.27s (± 0.90%)+0.00s (+ 0.13%)1.25s1.29s
Check Time7.49s (± 0.58%)7.56s (± 0.30%)+0.07s (+ 0.96%)7.53s7.59s
Emit Time4.22s (± 0.77%)4.23s (± 0.50%)+0.01s (+ 0.28%)4.20s4.26s
Total Time15.43s (± 0.48%)15.51s (± 0.35%)+0.09s (+ 0.56%)15.42s15.58s
material-ui - node (v16.17.1, x64)
Memory used475,388k (± 0.01%)475,431k (± 0.01%)+43k (+ 0.01%)475,378k475,483k
Parse Time3.63s (± 0.18%)3.64s (± 0.25%)+0.00s (+ 0.09%)3.63s3.65s
Bind Time1.00s (± 0.55%)1.00s (± 0.48%)-0.00s (- 0.17%)1.00s1.01s
Check Time18.06s (± 1.40%)18.00s (± 0.36%)-0.06s (- 0.31%)17.95s18.09s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time22.69s (± 1.12%)22.64s (± 0.31%)-0.05s (- 0.22%)22.58s22.73s
xstate - node (v16.17.1, x64)
Memory used544,488k (± 0.01%)544,483k (± 0.01%)-5k (- 0.00%)544,401k544,530k
Parse Time4.57s (± 0.47%)4.57s (± 0.93%)-0.00s (- 0.07%)4.53s4.65s
Bind Time1.77s (± 0.31%)1.78s (± 0.42%)+0.01s (+ 0.34%)1.77s1.79s
Check Time2.95s (± 0.55%)2.94s (± 0.74%)-0.00s (- 0.15%)2.91s2.97s
Emit Time0.09s (± 0.11%)0.09s (± 0.16%)-0.00s (- 0.03%)0.09s0.09s
Total Time9.38s (± 0.23%)9.37s (± 0.58%)-0.01s (- 0.09%)9.31s9.47s
Angular - node (v14.15.1, x64)
Memory used351,807k (± 0.00%)351,808k (± 0.01%)+1k (+ 0.00%)351,784k351,831k
Parse Time4.15s (± 0.34%)4.19s (± 0.37%)+0.04s (+ 0.85%)4.16s4.21s
Bind Time1.27s (± 0.71%)1.27s (± 0.86%)+0.00s (+ 0.36%)1.26s1.29s
Check Time9.80s (± 0.35%)9.80s (± 0.38%)+0.01s (+ 0.07%)9.74s9.85s
Emit Time8.41s (± 0.90%)8.41s (± 0.63%)+0.00s (+ 0.03%)8.35s8.50s
Total Time23.63s (± 0.29%)23.67s (± 0.33%)+0.05s (+ 0.20%)23.56s23.78s
Compiler-Unions - node (v14.15.1, x64)
Memory used189,360k (± 0.01%)189,325k (± 0.02%)-35k (- 0.02%)189,288k189,390k
Parse Time1.84s (± 0.67%)1.83s (± 0.70%)-0.01s (- 0.46%)1.82s1.85s
Bind Time0.87s (± 1.02%)0.86s (± 0.58%)-0.01s (- 1.24%)0.86s0.87s
Check Time10.41s (± 0.58%)10.41s (± 0.72%)-0.00s (- 0.04%)10.33s10.54s
Emit Time3.17s (± 0.93%)3.14s (± 0.72%)-0.03s (- 0.83%)3.10s3.17s
Total Time16.29s (± 0.36%)16.24s (± 0.64%)-0.05s (- 0.31%)16.13s16.42s
Monaco - node (v14.15.1, x64)
Memory used337,960k (± 0.00%)337,994k (± 0.01%)+35k (+ 0.01%)337,956k338,065k
Parse Time3.22s (± 1.24%)3.23s (± 1.30%)+0.01s (+ 0.16%)3.17s3.29s
Bind Time1.13s (± 0.37%)1.13s (± 0.35%)-0.00s (- 0.14%)1.13s1.14s
Check Time8.18s (± 0.30%)8.26s (± 0.40%)+0.08s (+ 0.98%)8.20s8.29s
Emit Time4.80s (± 0.89%)4.82s (± 1.44%)+0.02s (+ 0.35%)4.76s4.93s
Total Time17.33s (± 0.48%)17.43s (± 0.63%)+0.10s (+ 0.57%)17.26s17.53s
TFS - node (v14.15.1, x64)
Memory used294,487k (± 0.01%)294,594k (± 0.01%)+107k (+ 0.04%)294,555k294,630k
Parse Time2.70s (± 1.77%)2.72s (± 0.89%)+0.02s (+ 0.70%)2.68s2.74s
Bind Time1.11s (± 0.41%)1.11s (± 0.51%)+0.00s (+ 0.05%)1.10s1.12s
Check Time7.76s (± 0.52%)7.83s (± 0.42%)+0.06s (+ 0.78%)7.77s7.85s
Emit Time4.58s (± 0.28%)4.60s (± 0.81%)+0.02s (+ 0.41%)4.53s4.64s
Total Time16.15s (± 0.40%)16.25s (± 0.45%)+0.10s (+ 0.60%)16.16s16.33s
material-ui - node (v14.15.1, x64)
Memory used470,859k (± 0.00%)470,867k (± 0.00%)+8k (+ 0.00%)470,850k470,874k
Parse Time3.82s (± 0.44%)3.85s (± 0.52%)+0.02s (+ 0.64%)3.81s3.87s
Bind Time1.02s (± 0.18%)1.02s (± 0.64%)+0.00s (+ 0.36%)1.01s1.03s
Check Time18.93s (± 0.53%)18.99s (± 0.71%)+0.07s (+ 0.35%)18.84s19.13s
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)0.00s ( NaN%)0.00s0.00s
Total Time23.77s (± 0.48%)23.86s (± 0.54%)+0.09s (+ 0.38%)23.70s23.99s
xstate - node (v14.15.1, x64)
Memory used532,558k (± 0.00%)532,526k (± 0.00%)-32k (- 0.01%)532,496k532,560k
Parse Time4.94s (± 0.38%)5.02s (± 0.95%)+0.08s (+ 1.58%)4.95s5.09s
Bind Time1.67s (± 0.89%)1.67s (± 0.69%)-0.01s (- 0.46%)1.65s1.68s
Check Time3.08s (± 0.46%)3.09s (± 0.74%)+0.01s (+ 0.36%)3.06s3.11s
Emit Time0.10s (± 0.17%)0.10s (± 0.16%)+0.00s (+ 0.03%)0.10s0.10s
Total Time9.81s (± 0.23%)9.88s (± 0.65%)+0.07s (+ 0.73%)9.82s9.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)
BenchmarkNameIterations
Current523426
Baselinemain6

TSServer

Comparison Report - main..52342
Metricmain52342DeltaBestWorst
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen2,398ms (± 6.86%)2,514ms (± 2.07%)+116ms (+ 4.85%)2,461ms2,598ms
Req 2 - geterr5,200ms (± 6.38%)5,414ms (± 0.94%)+214ms (+ 4.11%)5,366ms5,494ms
Req 3 - references360ms (± 6.68%)380ms (± 1.97%)+20ms (+ 5.50%)370ms390ms
Req 4 - navto271ms (± 5.59%)279ms (± 3.23%)+9ms (+ 3.14%)270ms293ms
Req 5 - completionInfo count1,356 (± 0.00%)1,356 (± 0.00%)0 ( 0.00%)1,3561,356
Req 5 - completionInfo206ms (±50.62%)176ms (±64.89%)🟩-30ms (-14.52%)67ms285ms
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen2,719ms (± 1.50%)2,727ms (± 1.69%)+8ms (+ 0.29%)2,680ms2,786ms
Req 2 - geterr4,000ms (± 0.54%)3,982ms (± 0.61%)-18ms (- 0.45%)3,948ms4,022ms
Req 3 - references365ms (± 0.60%)362ms (± 0.76%)-3ms (- 0.91%)359ms367ms
Req 4 - navto291ms (± 0.91%)294ms (± 0.32%)+3ms (+ 0.91%)293ms295ms
Req 5 - completionInfo count1,518 (± 0.00%)1,518 (± 0.00%)0 ( 0.00%)1,5181,518
Req 5 - completionInfo82ms (± 0.77%)69ms (± 2.75%)🟩-12ms (-14.80%)66ms71ms
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen3,308ms (± 0.73%)3,351ms (± 0.65%)+42ms (+ 1.27%)3,327ms3,378ms
Req 2 - geterr1,427ms (± 1.70%)1,440ms (± 3.70%)+13ms (+ 0.93%)1,373ms1,497ms
Req 3 - references222ms (±13.58%)200ms (±16.28%)🟩-22ms (- 9.79%)177ms244ms
Req 4 - navto350ms (± 1.97%)350ms (± 2.00%)-0ms (- 0.06%)343ms363ms
Req 5 - completionInfo count3,159 (± 0.00%)3,159 (± 0.00%)0 ( 0.00%)3,1593,159
Req 5 - completionInfo443ms (± 1.31%)444ms (± 1.76%)+1ms (+ 0.26%)435ms454ms
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen2,777ms (± 0.34%)2,747ms (± 1.24%)-30ms (- 1.09%)2,686ms2,783ms
Req 2 - geterr5,806ms (± 0.46%)5,805ms (± 0.81%)-1ms (- 0.02%)5,741ms5,874ms
Req 3 - references369ms (± 0.90%)372ms (± 1.51%)+3ms (+ 0.81%)364ms381ms
Req 4 - navto269ms (± 1.70%)271ms (± 1.03%)+1ms (+ 0.50%)267ms274ms
Req 5 - completionInfo count1,356 (± 0.00%)1,356 (± 0.00%)0 ( 0.00%)1,3561,356
Req 5 - completionInfo79ms (± 9.08%)227ms (±48.80%)🔻+148ms (+187.34%)81ms309ms
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen2,898ms (± 1.05%)2,892ms (± 0.32%)-6ms (- 0.19%)2,886ms2,907ms
Req 2 - geterr4,315ms (± 0.69%)4,306ms (± 0.69%)-10ms (- 0.22%)4,262ms4,332ms
Req 3 - references378ms (± 0.89%)373ms (± 0.93%)-5ms (- 1.27%)369ms378ms
Req 4 - navto297ms (± 1.07%)298ms (± 0.85%)+1ms (+ 0.31%)294ms300ms
Req 5 - completionInfo count1,518 (± 0.00%)1,518 (± 0.00%)0 ( 0.00%)1,5181,518
Req 5 - completionInfo78ms (± 8.71%)75ms (± 1.10%)🟩-3ms (- 3.95%)74ms76ms
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen3,464ms (± 0.77%)3,470ms (± 0.68%)+7ms (+ 0.19%)3,442ms3,507ms
Req 2 - geterr1,516ms (± 0.61%)1,526ms (± 0.64%)+10ms (+ 0.65%)1,513ms1,537ms
Req 3 - references273ms (± 0.93%)272ms (± 1.52%)-1ms (- 0.52%)266ms276ms
Req 4 - navto326ms (± 0.75%)326ms (± 0.97%)-0ms (- 0.07%)321ms331ms
Req 5 - completionInfo count3,159 (± 0.00%)3,159 (± 0.00%)0 ( 0.00%)3,1593,159
Req 5 - completionInfo482ms (± 1.52%)488ms (± 1.14%)+6ms (+ 1.20%)482ms497ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen2,855ms (± 0.43%)2,862ms (± 0.57%)+7ms (+ 0.26%)2,840ms2,881ms
Req 2 - geterr6,217ms (± 0.56%)6,240ms (± 0.96%)+22ms (+ 0.36%)6,156ms6,327ms
Req 3 - references386ms (± 0.40%)391ms (± 1.28%)+5ms (+ 1.29%)385ms398ms
Req 4 - navto283ms (± 0.94%)277ms (± 0.97%)-6ms (- 1.95%)273ms281ms
Req 5 - completionInfo count1,356 (± 0.00%)1,356 (± 0.00%)0 ( 0.00%)1,3561,356
Req 5 - completionInfo90ms (± 2.76%)82ms (± 7.86%)🟩-8ms (- 8.66%)75ms90ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen3,011ms (± 0.70%)3,035ms (± 0.84%)+25ms (+ 0.83%)3,010ms3,079ms
Req 2 - geterr4,605ms (± 0.34%)4,621ms (± 0.34%)+16ms (+ 0.34%)4,595ms4,639ms
Req 3 - references399ms (± 1.22%)398ms (± 1.36%)-1ms (- 0.27%)390ms404ms
Req 4 - navto296ms (± 1.08%)298ms (± 1.06%)+1ms (+ 0.48%)293ms302ms
Req 5 - completionInfo count1,518 (± 0.00%)1,518 (± 0.00%)0 ( 0.00%)1,5181,518
Req 5 - completionInfo84ms (± 2.05%)84ms (± 1.05%)+1ms (+ 0.68%)83ms85ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen3,779ms (± 0.70%)3,786ms (± 0.49%)+7ms (+ 0.19%)3,771ms3,822ms
Req 2 - geterr1,482ms (± 0.30%)1,510ms (± 2.37%)+28ms (+ 1.88%)1,467ms1,548ms
Req 3 - references128ms (± 3.50%)128ms (± 1.83%)-0ms (- 0.14%)127ms133ms
Req 4 - navto367ms (± 0.55%)369ms (± 0.62%)+2ms (+ 0.61%)365ms372ms
Req 5 - completionInfo count3,159 (± 0.00%)3,159 (± 0.00%)0 ( 0.00%)3,1593,159
Req 5 - completionInfo500ms (± 1.13%)506ms (± 1.15%)+6ms (+ 1.19%)500ms513ms
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)
BenchmarkNameIterations
Current523426
Baselinemain6

Startup

Comparison Report - main..52342
Metricmain52342DeltaBestWorst
tsc-startup - node (v16.17.1, x64)
Execution time141.49ms (± 0.22%)141.35ms (± 0.19%)-0.14ms (- 0.10%)140.26ms144.74ms
tsserver-startup - node (v16.17.1, x64)
Execution time225.44ms (± 0.27%)228.28ms (± 0.45%)+2.85ms (+ 1.26%)224.56ms233.62ms
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time227.94ms (± 0.32%)230.55ms (± 0.30%)+2.60ms (+ 1.14%)226.50ms234.98ms
typescript-startup - node (v16.17.1, x64)
Execution time208.73ms (± 0.27%)211.96ms (± 0.23%)+3.23ms (+ 1.55%)208.82ms217.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)
BenchmarkNameIterations
Current523426
Baselinemain6

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

Ryan Cavanaugh (@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

@microsoftMicrosoft (microsoft) locked as resolved and limited conversation to collaborators Oct 16, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: TeamFor Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@RyanCavanaugh@typescript-bot