[m-rev.] for review: analysis file caching

Julien Fischer juliensf at csse.unimelb.edu.au
Thu Jul 24 22:03:36 AEST 2008

On Wed, 23 Jul 2008, Peter Wang wrote:

> Branches: main
> Add a caching feature for `mmc --make' so as to avoid reparsing the same
> `.analysis' files repeatedly when many modules in the program or library
> import similar sets of modules.
> An `.analysis_cache' file contains a binary representation of the parsed
> information in its corresponding `.analysis' file.  These can be faster to
> load, under certain conditions.  Cache files are stored in
> `Mercury/analysis_cache' or `Mercury/<grade>/<arch>/Mercury/analysis_cache'
> for the duration of a single make target.  Afterwards the directory is
> deleted.  This avoids stale cache files lying around which are incompatible
> between different versions of the compiler, host platform, etc.
> compiler/libs.m:
> compiler/pickle.m:
> 	Add a module in libs to un/serialise arbitrary data structures.
> compiler/options.m:
> 	Add `--analysis-file-cache' and `--analysis-file-cache-dir <dir>'
> 	(internal option).
> compiler/analysis.file.m:
> 	Read and write analysis cache files if the cache directory is set.
> 	Cache files are written after `.analysis' files are written (if
> 	changed) or after an `.analysis' file is read (if it didn't exist).
> compiler/make.program_target.m:
> 	For certain targets, set up the analysis cache directory before
> 	running the build procedure, and remove it afterwards.
> compiler/module_cmds.m:
> 	Add a version of update_interface that returns whether the
> 	interface file changed.
> doc/user_guide.texi:
> 	Add commented out documentation for `--analysis-file-cache'.

That looks okay.

mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au

More information about the reviews mailing list