Merged
Conversation
klkvr
commented
Mar 12, 2024
| // 3 contracts | ||
| assert_eq!(cache.dirty_source_files.len(), 3); | ||
| assert!(cache.filtered.is_empty()); | ||
| assert!(cache.cache.is_empty()); |
Member
Author
There was a problem hiding this comment.
we are now adding entries for dirty files to cache during preprocessing
onbjerg
reviewed
Mar 12, 2024
mattsse
approved these changes
Mar 12, 2024
Member
mattsse
left a comment
There was a problem hiding this comment.
great!
this makes a lot of sense
onbjerg
approved these changes
Mar 12, 2024
Member
Author
|
Patched foundry-rs/foundry#7334 with this PR branch, will merge after it succeeds |
ae4e864 to
9af80fe
Compare
Member
Author
30bb08e to
122c9e5
Compare
mattsse
pushed a commit
that referenced
this pull request
Apr 17, 2024
missed this in #90 ref https://t.me/foundry_support/52331 after #90 we stopped removing out of scope sources from cache, however, we never validated if they are dirty, this results in invalid cached artifacts in certain cases. with this PR we iterate over all cache entries out of scope of current compiler run, then build graph with them to find if they import any of files marked as dirty.
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.
Currently we are not keeping cache entries for files which were out of scope of compiler (might be dirty or not)
Because of that, when running
forge compile, then runningforge compile --skip ...which will filter some artifacts out, and then runningforge compileagain, some artifacts will be recompiled, because--skiprun removed those entries from cache.Solution is to keep those entries in cache (we already silently keep artifacts anyway).