Skip to content

Fix #7442: Only compute line numbers if the file exists #8883

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

Merged
merged 1 commit into from
May 5, 2020

Conversation

nicolasstucki
Copy link
Contributor

No description provided.

@nicolasstucki nicolasstucki marked this pull request as ready for review May 5, 2020 16:23
@nicolasstucki
Copy link
Contributor Author

This is a partial fix. We just want to avoid the crashes. We will still redesign SourceFile later.

@nicolasstucki nicolasstucki merged commit 826dd1a into scala:master May 5, 2020
@nicolasstucki nicolasstucki deleted the fix-#7442-2 branch May 5, 2020 18:03
smarter added a commit to dotty-staging/dotty that referenced this pull request May 6, 2020
smarter added a commit to dotty-staging/dotty that referenced this pull request May 6, 2020
smarter added a commit to dotty-staging/dotty that referenced this pull request May 6, 2020
@liufengyun
Copy link
Contributor

This PR seems to have a performance impact on Dotty.

@smarter
Copy link
Member

smarter commented May 8, 2020

Hmm, I guess this is because we're doing a lot more I/O by always checking if the file exists or not. SourceFile caches the file content so it only does IO once at most normally. Maybe we should check !source.content().isEmpty instead.

smarter added a commit to dotty-staging/dotty that referenced this pull request May 10, 2020
The exists call introduced in scala#8883 and scala#8897 lead to a slowdown
noticeable in benchmarks. Replace them by a check on the content length,
since SourceFile caches its content this should avoid any unnecessary
IO operation. This required changing the way SourceFile handles empty
files to have it return an empty string instead of crashing.
smarter added a commit to dotty-staging/dotty that referenced this pull request May 10, 2020
The exists call introduced in scala#8883 and scala#8897 lead to a slowdown
noticeable in benchmarks. Replace them by a check on the content length,
since SourceFile caches its content this should avoid any unnecessary
IO operation. This required changing the way SourceFile handles empty
files to have it return an empty string instead of crashing.
smarter added a commit to dotty-staging/dotty that referenced this pull request Jun 1, 2020
The exists call introduced in scala#8883 and scala#8897 lead to a slowdown
noticeable in benchmarks. Replace them by a check on the content length,
since SourceFile caches its content this should avoid any unnecessary
IO operation. This required changing the way SourceFile handles empty
files to have it return an empty string instead of crashing.
@liufengyun liufengyun mentioned this pull request Aug 14, 2020
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants