[m-rev.] for review: unnecessary recompilations with intermodule analysis

Julien Fischer juliensf at csse.unimelb.edu.au
Thu May 29 14:29:05 AEST 2008

On Thu, 29 May 2008, Peter Wang wrote:

> Branches: main
> The `--intermodule-analysis' option was broken in that touching a `.m' file
> would cause its `.analysis' file to be remade (correct) but then all the
> target code files which depend on that `.analysis' file would be remade,
> even if the `.analysis' file should be unchanged.
> Fix that by making analysis files work like other interface files: the
> timestamp on the `.analysis' file reflects the last time it was changed, and
> the `.analysis_date' file reflects the last time the module was analysed.
> To that end we need to move the module status out of the `.analysis' file into
> a corresponding `.analysis_status' file.  Then analysing other modules will
> only touch the `.analysis_status' file.  `.analysis_status' are not installed.
> compiler/analysis.m:
> compiler/analysis.file.m:
> 	Separate predicates for reading/writing the module status from the
> 	module analysis results proper.
> 	Use the usual technique of writing analysis results to `.analysis.tmp'
> 	and only updating the `.analysis' file if its changed.
> 	Write analysis results for a single function-id in sorted order to
> 	remove spurious differences.
> 	Make use some standard interface file handling predicates.

That sentence doesn't parse well.

> compiler/make.util.m:
> 	Simplify the special treatment of timestamps for `.analysis' files.
> compiler/make.module_target.m:
> compiler/make.program_target.m:
> 	Conform to interface changes.

That looks okay otherwise.

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