[m-rev.] for review: extend modes of operation

Julien Fischer jfischer at opturion.com
Mon Oct 12 20:14:19 AEDT 2015


On Mon, 12 Oct 2015, Zoltan Somogyi wrote:

> On Mon, 12 Oct 2015 17:24:34 +1100 (AEDT), Julien Fischer <jfischer at opturion.com> wrote:
>
>>
>> (I've just realised this wasn't going to the list.)
>>
>> On Mon, 12 Oct 2015, Julien Fischer wrote:
>>
>>>
>>> On Mon, 12 Oct 2015, Julien Fischer wrote:
>>>
>>>> On Mon, 12 Oct 2015, Zoltan Somogyi wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, 12 Oct 2015 11:12:23 +1100 (AEDT), Julien Fischer
>>>>> <jfischer at opturion.com> wrote:
>>>>>> The diff itself looks fine
>>>>>
>>>>
>>>> Actually, that said, there appears to be at least one more exception
>>>> required (this is when building the standard library with mmc --make):
>>>>
>>>>    Making Mercury/int3s/version_bitmap.int3
>>>>    Making Mercury/int3s/version_hash_table.int3
>>>>    Making Mercury/int3s/version_store.int3
>>>>    Making Mercury/int0s/thread.int0
>>>>    Error: only one of the following options may be given:
>>>>      `--make-private-interface', `--target-code-only' and `--compile-only'.
>>>
>>> According to compiler/handle_options.m:1014 the latter two are always
>>> enabled when --make is. '--make' is always passed through to the its
>>> subprocesses, although that seems unnecessary as we also pass
>>> '--invoked-by-mmc-make'.
>>
>> Does anyone know why we do the following at
>> compiler/handle_options.m:1014, it doesn't actually seem necessary.
>>
>>      option_implies(make, compile_only, bool(yes), !Globals),
>>      option_implies(make, target_code_only, bool(yes), !Globals),
>>
>> If it *is* necessary then we shouldn't be doing until after we have
>> checked the value of --invoked-by-mmc-make and potentially disabled
>> --make (a few lines further down).
>
> A "git log" says that those two lines were introduced by commit 9c9601808da2f36a45462965d67dcbcae71b4356 in march of 2002
> by Simon Taylor when he added --make to the compiler, so they
> have been there as long as mmc --make itself.
>
> I haven't been in touch with Simon in a long time, so I can't ask him.
>
> You could try doing what you suggested, and seeing whether that works.
> (I can't do the same, because I don't typically compile anything with
> mmc --make, and thus can't pick up changes anywhere as reliably.)

I'd already tried removing those two lines and have successfully built
the Mercury system in the csharp, java and hlc.gc grades using
--use-mmc-make as well as all the sample programs.  Looking through mmc
--make's list of compilation tasks I don't think the above options can
actually do anything meaningful now in this context anyway (whatever
they may once have done).   I'll step through all the compilation tasks
and provided they all work in the absence of those lines, I think we can
simply remove them.

Julien.



More information about the reviews mailing list