Module Phase_cache.With_cacheSource

Parameters

module Phase : S

Signature

Sourcetype t = {
  1. output : Phase.output;
  2. cache_was_hit : bool;
}
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.