-
Notifications
You must be signed in to change notification settings - Fork 404
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce a general memoization system
Introduce a general system for memoizing functions. The core of Dune is refactored on top of this system. The new system will allow to share not only the result of external commands between builds but also the result of internal computations. The system automatically keeps tracks of the effects performed by computations in order to detect when it is safe to reuse previous results. The intents of this change is to make incremental builds faster, especially in polling mode. The new system is more powerful as well and will allow us to use the result of commands for computing rules. This patch also re-implement cycle detection as we realized that the previous algorithm was broken and the problem showed up more often in the new system. The new algorithm was taken from the following paper: Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Robert E. Tarjan. 2015. A New Approach to Incremental Cycle Detection and Related Problems. ACM Trans. Algorithms 12, 2, Article 14 (December 2015), 22 pages. DOI: https://doi.org/10.1145/2756553 *) Signed-off-by: Rudi Horn <dyn-git@rudi-horn.de> Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
- Loading branch information
1 parent
7705be5
commit 5bc4698
Showing
67 changed files
with
1,857 additions
and
526 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.