chore: improve incremental typecheck performance - #40925
Open
jlongster wants to merge 8 commits into
Open
Conversation
Member
|
about time woohoo |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Performance
Measured in
packages/coreon Linux with 2 AMD EPYC 9554P cores and Bun 1.3.14:The clean build is slower because it emits the Core declaration boundary. Normal edit/typecheck feedback is substantially faster because build mode can compare the source declaration signature and skip the downstream tests/scripts project when public types are unchanged.
The variance annotations independently reduced clean Core type instantiations by roughly 264k and improved the original clean median by about 3.9%.
TUI results:
The TUI program drops from 3,441 files to 1,988 files and resolves zero Core source files. Its package script builds Core declarations first for direct-package correctness, while Turbo orders the Core typecheck task before TUI to avoid concurrent declaration writes.
Validation
bun turbo typecheck --concurrency=1(32/32 tasks passed)bun turbo typecheck --filter=@opencode-ai/tui --concurrency=1 --force