foundry-rs / compilers

Utilities for working with native solc and compiling projects.
Apache License 2.0
71 stars 41 forks source link

fix: dirty files detection #105

Closed klkvr closed 5 months ago

klkvr commented 5 months ago

Follow-up to #104. Right now we detect and remove dirty cache entries in ArtifactsCacheInner::filter which is redundant as we can just do a single iteration over all cached files.

Now file filtering is done in 2 steps:

  1. ArtifactsCacheInner::find_and_remove_dirty detects all dirty entries (even those that are not in scope of current compiler run) and removes them from cache.
  2. ArtifactsCacheInner::filter schedules for compilation all sources for which we are missing artifacts (either because of removed entry or because we never compiled given source with current version)