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).