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

Memoization function #1489

Merged
1 commit merged into from
Dec 12, 2018
Merged

Memoization function #1489

1 commit merged into from
Dec 12, 2018

Commits on Dec 12, 2018

  1. 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>
    Rudi Horn authored and jeremiedimino committed Dec 12, 2018
    Configuration menu
    Copy the full SHA
    504565f View commit details
    Browse the repository at this point in the history