MERCURY_OPTIONS= --deep-random-write=25 --mdb-disable-progress make[3]: Entering directory '/mnt/testing/run/build/mercury-srcdist-rotd-2023-10-20/tests/invalid' /mnt/testing/run/build/mercury-srcdist-rotd-2023-10-20/stage2/scripts/mmc --make-interface --grade hlc.par.gc --mercury-linkage static --flags ../TESTS_FLAGS --flags ../WS_FLAGS \ try_detism.m > try_detism.int_err 2>&1; if /mnt/testing/run/build/mercury-srcdist-rotd-2023-10-20/stage2/scripts/mmc --errorcheck-only --grade hlc.par.gc --mercury-linkage static --flags ../TESTS_FLAGS --flags ../WS_FLAGS \ try_detism.m > try_detism.err 2>&1; \ then false; \ else true; \ fi Comparing try_detism.err with try_detism.err_exp*, results in try_detism.err_res ** try_detism.err did not match the expected error output ** (closest match was try_detism.err_res1) --- try_detism.err_exp 2023-09-17 21:02:33.000000000 +1000 +++ try_detism.err 2023-10-21 14:10:03.611775766 +1100 @@ -1,34 +1 @@ -try_detism.m:010: In `p'(out, di, uo): -try_detism.m:010: error: `cc_nondet' is not a valid determinism for a -try_detism.m:010: predicate that has I/O state arguments. The valid -try_detism.m:010: determinisms for such predicates are `det', `cc_multi' and -try_detism.m:010: `erroneous', since the I/O state can be neither duplicated -try_detism.m:010: nor destroyed. -try_detism.m:010: In `p'(out, di, uo): -try_detism.m:010: error: determinism declaration not satisfied. -try_detism.m:010: Declared `cc_multi', inferred `cc_nondet'. -try_detism.m:010: The reason for the difference is the following. -try_detism.m:017: In argument 1 of call to predicate `try_detism.q'/3: -try_detism.m:017: unification with `X' can fail. -try_detism.m:016: Error: call to predicate `exception.magic_exception_result'/1 -try_detism.m:016: with determinism `cc_multi' occurs in a context which -try_detism.m:016: requires all solutions. -try_detism.m:017: Unification of X and V_17 can fail. -try_detism.m:016: In clause for `p(out, di, uo)': -try_detism.m:016: in call to predicate `exception.try_io'/4: -try_detism.m:016: mode error: arguments -try_detism.m:016: `TryLambda, TryResult, STATE_VARIABLE_IO_10, TryIOOutput' -try_detism.m:016: have the following insts: -try_detism.m:016: /* unique */ (pred(out, di, uo) is semidet), -try_detism.m:016: free, -try_detism.m:016: unique, -try_detism.m:016: free -try_detism.m:016: which does not match any of the modes for predicate -try_detism.m:016: `exception.try_io'/4. -try_detism.m:016: The first argument `TryLambda' has inst -try_detism.m:016: /* unique */ (pred(out, di, uo) is semidet), -try_detism.m:016: which does not match any of those modes. -try_detism.m:016: (For higher order insts like this, the mismatch is -try_detism.m:016: sometimes caused by the arity of the predicate or function -try_detism.m:016: being different in the inst than in the type.) -For more information, recompile with `-E'. +Segmentation fault make[3]: *** [../Mmake.common:172: try_detism.err_res] Error 1 make[3]: Target 'try_detism.runtest' not remade because of errors. make[3]: Leaving directory '/mnt/testing/run/build/mercury-srcdist-rotd-2023-10-20/tests/invalid'