[m-rev.] for review: start on replacing --intermod-directories and related options

Zoltan Somogyi zoltan.somogyi at runbox.com
Fri Nov 15 17:36:16 AEDT 2024


On 2024-11-15 14:44 +11:00 AEDT, "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
>> (I think the comment in compiler/termination.m above
>> set_compiler_gen_terminates/6 is wrong: it implies that the termination
>> status
>> of *all* predicates in builtin and private_builtin is set by that code, but
>> doesn't seem to be what it actually does.)
> 
> I will update that comment, in a separate commit.
> 
>> The diff looks fine.
> 
> Thanks for the review.

It turns out the diff broke the ability to bootstrap with --intermod-opt,
which is strange, because even a bootstrap without --intermod-opt
does intermodule optimization in the library directory. The symptom
of the breakage is the same I worked around for the valid_seq and
warnings test cases: an error message about not finding a .opt file,
because we try to read it *without* building it. It seems that looking
for .m files instead of .opt files was a workaround for the fact that
--intermod-opt never worked *properly*, i.e. as intended, in the first place :-(

I am now testing whether the reason why intermod opt works
in the library directory is that it also enables transitive optimization.
Tomorrow I will look into what extra dependencies we need to add
to .d files to prevent the issue, but the rotd tests tonight will fail
due to this problem.

You may want to hold off on doing a git pull until the fix is finished.

Zoltan.


More information about the reviews mailing list