MERCURY_OPTIONS= --deep-random-write=25 --deep-std-name --mdb-disable-progress gmake[3]: Entering directory '/home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/tests/invalid' { echo MCFLAGS += '--grade csharp --options-file /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/Mercury.options --mercury-linkage static -j2 --flags ../TESTS_FLAGS --flags ../WS_FLAGS --color-diagnostics --use-subdirs '; echo MCFLAGS += ' '; echo CFLAGS += ' '; echo JAVACFLAGS += '-J"-Xmx1024m" '; echo CSCFLAGS += ' '; echo C2INITARGS += '/home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/library/mer_std.init /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/runtime/mer_rt.init '; echo MLLIBS += ' '; echo MLOBJS += ' '; echo LDFLAGS += ' '; echo LD_LIBFLAGS += ' '; echo EXTRA_LIBRARIES += ''; echo EXTRA_LIB_DIRS += ''; echo LIBGRADES = 'hlc.gc '; echo INSTALL_PREFIX = '/home/mercury/testing/run/install'; echo LINKAGE = 'shared'; echo MERCURY_LINKAGE = 'shared'; } | /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/scripts/mmc --make --options-file - foreign_purity_mismatch.err Making Mercury/int3s/foreign_purity_mismatch.int3 Making Mercury/ints/foreign_purity_mismatch.int Making foreign_purity_mismatch.err foreign_purity_mismatch.m:010: Error: predicate `pure_with_impure'/1 is impure. foreign_purity_mismatch.m:010: It must either be declared impure, or promised foreign_purity_mismatch.m:010: pure. foreign_purity_mismatch.m:011: Error: predicate `pure_with_semipure'/1 is foreign_purity_mismatch.m:011: semipure. It must either be declared semipure, foreign_purity_mismatch.m:011: or promised pure. foreign_purity_mismatch.m:013: Error: predicate `semipure_with_impure'/1 is foreign_purity_mismatch.m:013: impure. It must either be declared impure, or foreign_purity_mismatch.m:013: promised semipure. foreign_purity_mismatch.m:036: Error: foreign clause for predicate foreign_purity_mismatch.m:036: `pure_with_impure'/1 has purity impure, but foreign_purity_mismatch.m:036: that predicate has been declared pure. foreign_purity_mismatch.m:054: Error: foreign clause for predicate foreign_purity_mismatch.m:054: `pure_with_semipure'/1 has purity semipure, foreign_purity_mismatch.m:054: but that predicate has been declared pure. foreign_purity_mismatch.m:072: Error: foreign clause for predicate foreign_purity_mismatch.m:072: `semipure_with_impure'/1 has purity impure, foreign_purity_mismatch.m:072: but that predicate has been declared semipure. foreign_purity_mismatch.m:090: Error: foreign clause for predicate foreign_purity_mismatch.m:090: `semipure_with_pure'/1 has purity pure, but foreign_purity_mismatch.m:090: that predicate has been declared semipure. foreign_purity_mismatch.m:108: Error: foreign clause for predicate foreign_purity_mismatch.m:108: `impure_with_pure'/1 has purity pure, but that foreign_purity_mismatch.m:108: predicate has been declared impure. foreign_purity_mismatch.m:126: Error: foreign clause for predicate foreign_purity_mismatch.m:126: `impure_with_semipure'/1 has purity semipure, foreign_purity_mismatch.m:126: but that predicate has been declared impure. ** Error making `foreign_purity_mismatch.err'. gmake[3]: [/tmp/mmake.BVwlNp:1296: foreign_purity_mismatch.err] Error 1 (ignored) if { echo MCFLAGS += '--grade csharp --options-file /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/Mercury.options --mercury-linkage static -j2 --flags ../TESTS_FLAGS --flags ../WS_FLAGS --color-diagnostics --use-subdirs '; echo MCFLAGS += ' '; echo CFLAGS += ' '; echo JAVACFLAGS += '-J"-Xmx1024m" '; echo CSCFLAGS += ' '; echo C2INITARGS += '/home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/library/mer_std.init /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/runtime/mer_rt.init '; echo MLLIBS += ' '; echo MLOBJS += ' '; echo LDFLAGS += ' '; echo LD_LIBFLAGS += ' '; echo EXTRA_LIBRARIES += ''; echo EXTRA_LIB_DIRS += ''; echo LIBGRADES = 'hlc.gc '; echo INSTALL_PREFIX = '/home/mercury/testing/run/install'; echo LINKAGE = 'shared'; echo MERCURY_LINKAGE = 'shared'; } | /home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/stage2/scripts/mmc --make --options-file - -r foreign_purity_mismatch.err > /dev/null 2>&1 ; \ then false; \ else true; \ fi Comparing foreign_purity_mismatch.err with foreign_purity_mismatch.err_exp*, results in foreign_purity_mismatch.err_res ** foreign_purity_mismatch.err did not match the expected error output ** (closest match was foreign_purity_mismatch.err_res1) --- foreign_purity_mismatch.err_exp 2026-01-28 21:48:14.000000000 +1100 +++ foreign_purity_mismatch.err 2026-01-30 08:22:40.407703759 +1100 @@ -7,21 +7,21 @@ foreign_purity_mismatch.m:013: Error: predicate `semipure_with_impure'/1 is foreign_purity_mismatch.m:013: impure. It must either be declared impure, or foreign_purity_mismatch.m:013: promised semipure. -foreign_purity_mismatch.m:026: Error: foreign clause for predicate -foreign_purity_mismatch.m:026: `pure_with_impure'/1 has purity impure, but -foreign_purity_mismatch.m:026: that predicate has been declared pure. -foreign_purity_mismatch.m:044: Error: foreign clause for predicate -foreign_purity_mismatch.m:044: `pure_with_semipure'/1 has purity semipure, -foreign_purity_mismatch.m:044: but that predicate has been declared pure. -foreign_purity_mismatch.m:062: Error: foreign clause for predicate -foreign_purity_mismatch.m:062: `semipure_with_impure'/1 has purity impure, -foreign_purity_mismatch.m:062: but that predicate has been declared semipure. -foreign_purity_mismatch.m:080: Error: foreign clause for predicate -foreign_purity_mismatch.m:080: `semipure_with_pure'/1 has purity pure, but -foreign_purity_mismatch.m:080: that predicate has been declared semipure. -foreign_purity_mismatch.m:098: Error: foreign clause for predicate -foreign_purity_mismatch.m:098: `impure_with_pure'/1 has purity pure, but that -foreign_purity_mismatch.m:098: predicate has been declared impure. -foreign_purity_mismatch.m:116: Error: foreign clause for predicate -foreign_purity_mismatch.m:116: `impure_with_semipure'/1 has purity semipure, -foreign_purity_mismatch.m:116: but that predicate has been declared impure. +foreign_purity_mismatch.m:036: Error: foreign clause for predicate +foreign_purity_mismatch.m:036: `pure_with_impure'/1 has purity impure, but +foreign_purity_mismatch.m:036: that predicate has been declared pure. +foreign_purity_mismatch.m:054: Error: foreign clause for predicate +foreign_purity_mismatch.m:054: `pure_with_semipure'/1 has purity semipure, +foreign_purity_mismatch.m:054: but that predicate has been declared pure. +foreign_purity_mismatch.m:072: Error: foreign clause for predicate +foreign_purity_mismatch.m:072: `semipure_with_impure'/1 has purity impure, +foreign_purity_mismatch.m:072: but that predicate has been declared semipure. +foreign_purity_mismatch.m:090: Error: foreign clause for predicate +foreign_purity_mismatch.m:090: `semipure_with_pure'/1 has purity pure, but +foreign_purity_mismatch.m:090: that predicate has been declared semipure. +foreign_purity_mismatch.m:108: Error: foreign clause for predicate +foreign_purity_mismatch.m:108: `impure_with_pure'/1 has purity pure, but that +foreign_purity_mismatch.m:108: predicate has been declared impure. +foreign_purity_mismatch.m:126: Error: foreign clause for predicate +foreign_purity_mismatch.m:126: `impure_with_semipure'/1 has purity semipure, +foreign_purity_mismatch.m:126: but that predicate has been declared impure. gmake[3]: *** [../Mmake.common:170: foreign_purity_mismatch.err_res] Error 1 gmake[3]: Target 'foreign_purity_mismatch.runtest' not remade because of errors. gmake[3]: Leaving directory '/home/mercury/testing/run/build/mercury-srcdist-rotd-2026-01-29/tests/invalid'