"not model_det" error when using incorrect det with a separate submodule
jumpnbrownweasel opened this issue · 2 comments
jumpnbrownweasel commented
The problem is not that there is an error, but that it is a Software Error with no file/line info, rather than a normal compiler error. It is not blocking me, I just wanted to make sure that you're aware of the problem.
$ mmc --version
Mercury Compiler, version 22.01-bullseye1, on x86_64-pc-linux-gnu
The error occurs with the following grade but not the default grade.
$ export MCFLAGS="--make -s asm_fast.gc.decldebug.stseg"
$ mmc foo
Making Mercury/int3s/foo.int3
Making Mercury/int3s/foo.bar.int3
Making Mercury/int0s/foo.int0
Making Mercury/ints/foo.int
Making Mercury/ints/foo.bar.int
Making Mercury/cs/foo.c
Uncaught Mercury exception:
Software Error: predicate `transform_hlds.table_gen.table_gen_proc
ess_io_proc'/10: Unexpected: I/O procedure pred id 564 not model_d
et
Stack dump not available in this grade.
** Error making `Mercury/cs/foo.c'.
foo.m
:
:- module foo.
:- interface.
:- include_module bar.
:- import_module io.
:- pred main(io, io).
:- mode main(di, uo) is cc_multi.
:- implementation.
:- import_module foo.bar.
main(!IO) :-
bar(!IO).
foo.bar.m
:
:- module foo.bar.
:- interface.
:- import_module io.
:- pred bar(io, io).
:- mode bar(di, uo) is multi.
:- implementation.
bar(!IO) :-
io.write_string("bar\n", !IO).
zsomogyi commented
The fix should be in the next ROTD.
jumpnbrownweasel commented
The fix should be in the next ROTD.
Fantastic, thank you!