[m-users.] Question regarding Uncaught Mercury exception.

Harrison harrisonpincket at gmail.com
Sun May 13 05:38:55 AEST 2018

I just checked and it does not appear to affect rotd-2018-05-10, but 
does seem to affect rotd-2018-04-30. So yes, it seems to have been fixed.


On 05/06/2018 05:42 PM, Zoltan Somogyi wrote:
> On Sun, 6 May 2018 15:41:00 -0400, Harrison Pincket <harrisonpincket at gmail.com> wrote:
>> This is only part of the program, but when I compile it I get this error:
>> Uncaught Mercury exception:
>> Software Error: predicate
>> `ml_backend.ml_string_switch.ml_generate_string_binary_simple_lookup_switch'/11:
>> Unexpected: model_non
> Thank you for your report. That is not an error message intended for users,
> but a compiler abort, which indicates a bug in the compiler.
> I just checked, and the code you included does not get this abort
> from the recent ROTD version of the compiler installed on my laptop;
> it just compiles the code, and the resulting executable runs just fine.
> Which version of the Mercury compiler were you using?
>> I think this error may be due to how I am trying to use the predicate
>> er_ending/2. Sure enough it was! Just before sending this mail I changed
>> the modes to:
>> :- pred er_ending(person, string).
>> :- mode er_ending(in, in) is semidet.
>> :- mode er_ending(in, out) is det.
>> :- mode er_ending(out, out) is multi. <-- changed here.
> The abort message says the error occurred when the compiler
> attempted to generate code for the switch on the second argument
> in the third mode. Making the second argument output in that mode
> caused the switch to be replaced by a simple disjunction, so it ceased
> tickling the bug.
>> I hope you find this email coherent,
> Yes, I did, thank you.
> Zoltan.

More information about the users mailing list