Repository navigation
Experiment with storing output timestamps in .tsbuildinfo #46677
Copy link
Copy link
Closed
Labels
Domain: PerformanceReports of unusually slow behaviorReports of unusually slow behaviorDomain: tsc -bIssues related to build modeIssues related to build modeDomain: tsc: --incrementalThe issue relates to incremental compilationThe issue relates to incremental compilationExperimentation NeededSomeone needs to try this out to see what happensSomeone needs to try this out to see what happensFix AvailableA PR has been opened for this issueA PR has been opened for this issueIn DiscussionNot yet reached consensusNot yet reached consensusRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript
Milestone
Description
Activity
- addedDomain: tsc: --incrementalThe issue relates to incremental compilationThe issue relates to incremental compilationDomain: PerformanceReports of unusually slow behaviorReports of unusually slow behaviorExperimentation NeededSomeone needs to try this out to see what happensSomeone needs to try this out to see what happensSuggestionAn idea for TypeScriptAn idea for TypeScript
on Nov 4, 2021 Note: A potential further consideration may be around browser caching of the output files. If the modified time of the file changes then browsers may not cache the unchanged file. Just trying to add weight to this really painful issue (for us).
- addedDomain: tsc -bIssues related to build modeIssues related to build modeIn DiscussionNot yet reached consensusNot yet reached consensus
on Nov 15, 2021 DanielRosenwasser commented
on Nov 15, 2021 MemberAuthorMore actionsRon Buckton (@rbuckton) try tackling this soon in the 4.6 cycle, loop Jake Bailey (@jakebailey), Andrew Casey (@amcasey), and me in reviews.
- assigned and unassigned
on Mar 29, 2022 - addedFix AvailableA PR has been opened for this issueA PR has been opened for this issue
on Apr 29, 2022 - addedRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestone
on May 13, 2022
Metadata
Metadata
Assignees
Labels
Domain: PerformanceReports of unusually slow behaviorReports of unusually slow behaviorDomain: tsc -bIssues related to build modeIssues related to build modeDomain: tsc: --incrementalThe issue relates to incremental compilationThe issue relates to incremental compilationExperimentation NeededSomeone needs to try this out to see what happensSomeone needs to try this out to see what happensFix AvailableA PR has been opened for this issueA PR has been opened for this issueIn DiscussionNot yet reached consensusNot yet reached consensusRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript
Occasionally, TypeScript makes the choice not to write output files in
--watchmode if the output is the same as what's on disk; however, this causes complications with--incremental. Under--incremental,--watchstill needs to update each output file's timestamps so that a subsequent invocation oftsc --buildwill avoid rebuilding certain files. See more here: 7b290fd.One concern with this is that it causes issues with downstream tooling - messing with output files that wouldn't have been rewritten causes issues for tools that want to be more incremental as well. See #46661.
Another concern is that this causes a bunch of file-touching anyway which can potentially be slow. It's not clear whether this is really a bottleneck, but there is some discussion in #45082 around issues here, and it may warrant some investigation.
We should investigate book-keeping with
.tsbuildinfoto avoid manually touching timestamps every time.