jon.recoil.org

Module Phase_cache.With_cacheSource

Parameters

module Phase : S

Signature

Sourcemodule Version : sig ... end

Version represents a naive, generic stamp of a cache entry and is recomputed each time the cache is refreshed. It is robust to Fingerprint.make errors.

Sourcetype t = {
  1. output : Phase.output;
  2. cache_was_hit : bool;
  3. version : Version.t;
}
Sourceval apply : ?cache_disabling:string option -> ?force_invalidation:bool -> Phase.t -> t

apply ~cache_disabling ~force_invalidation phase_input runs the phase computation Phase.f phase_input, if there's some cache_disabling. Otherwise, the phase computation is run with a cache mechanism. Whether the cache is invalidated depends on the outcome of a Phase.Fingerprint comparison between the current fingerprint and the last one. Additionally, the invalidation of the cache can be forced by setting the force_invalidation parameter to true.