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

[wip] Shared resolutions in tsserver #55968

Draft
wants to merge 26 commits into
base: main
Choose a base branch
from
Draft

Conversation

sheetalkamat
Copy link
Member

Still working and creating PR to do testing as i push commits
Rework of #55067

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 3, 2023
@typescript-bot
Copy link
Collaborator

Looks like you're introducing a change to the public API surface area. If this includes breaking changes, please document them on our wiki's API Breaking Changes page.

Also, please make sure @DanielRosenwasser and @RyanCavanaugh are aware of the changes, just as a heads up.

@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 2 times, most recently from ad81eea to a0f7406 Compare October 25, 2023 19:01
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 5 times, most recently from 6fe87d6 to d947de4 Compare November 14, 2023 23:15
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 2 times, most recently from bf1aaea to 73e6924 Compare November 28, 2023 22:10
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 5 times, most recently from e0b8659 to a4bce9e Compare July 3, 2024 19:42
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 2 times, most recently from 1fb73da to 5762b06 Compare July 8, 2024 17:53
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 3 times, most recently from 9846495 to ce2e752 Compare July 8, 2024 19:12
First unresolved import gets the typing file into cache and sets it as root,
This results in scheduling new typing request with that unresolved import missing
The result will come back with typing file that is omitted, so root file will change but file will still be part of program so its not really removed from program
Also cache the inferred type acquition for inferred project
…ypings cache

This change finally makes all tests pass incremental tests for matching resolutions and program structuture
…eed to update last cached unresolved imports just because we have new program
…s in the program

This shows cache is holding onto resolutions that are no longer needed by program because either those modules arent present in file or is determined to be ambient resolution
…ns are reused/are resolved to ambient module names
…ay instead of defering external module reoslutions to watch all failed lookup locations
- All the package json watched are ref counted if watched
- Not watched package json locations are released
   - First of this kind are when resolution from global cache fails, we dont watch those locations so not safe to have them cached
   - If we are looking for a file and the file is not found, the package json locations looked up are not watched
@sheetalkamat sheetalkamat force-pushed the sharedResolutions branch 2 times, most recently from 7c06d32 to cbe51c3 Compare October 4, 2024 17:16
// TODO: update incremental tests to actually verify the cache
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.

4 participants