Module Plugin_cache

This cache avoid recompilation of sources if there are no changes in the files. Since we want the side effects to be executed in case of a re-loading, this isn't a cache of dynloading. The purpose of this cache is to speed up the initialization of programs relying on an ml config set up. The cache is meant to be persistent between different executions of the program. Basically, cmxs files are stored in a specific location. This is not a ram cache. This module handles version upgrades. The info file contains the version of the executable using the cache. If the version doesn't match, the cache is deleted (or just skipped if no write access).


type t

Mutable type containing information about the cached files.

type filename = string
module Sources : sig .. end
module Plugin : sig .. end
module Config : sig .. end

loading info and cache initialization, including some clean-up if needed, etc. cleaning old version files if present.

val find : t -> Sources.t -> Plugin.t option

update the info in the file system, perform some clean-up if needed

val clean : t -> unit Async.Std.Deferred.Or_error.t

release this plugin cache lock

module Digest : sig .. end
Exported to be used in some other part of ocaml_plugin