tests/invalid/*.{m,err_exp}:
tests/misc_tests/*.m:
tests/mmc_make/*.m:
tests/par_conj/*.m:
tests/purity/*.m:
tests/stm/*.m:
tests/string_format/*.m:
tests/structure_reuse/*.m:
tests/submodules/*.m:
tests/tabling/*.m:
tests/term/*.m:
tests/trailing/*.m:
tests/typeclasses/*.m:
tests/valid/*.m:
tests/warnings/*.{m,exp}:
Make these tests use four-space indentation, and ensure that
each module is imported on its own line. (I intend to use the latter
to figure out which subdirectories' tests can be executed in parallel.)
These changes usually move code to different lines. For the tests
that check compiler error messages, expect the new line numbers.
browser/cterm.m:
browser/tree234_cc.m:
Import only one module per line.
tests/hard_coded/boyer.m:
Fix something I missed.
Estimated hours taken: 3
Branches: main
Fix Mantis bug #109.
compiler/add_heap_ops.m:
Fix the bug. The bug was that this pass tried to record the heap
pointer at the start of the nth disjunct, even in cases where
there were no following disjuncts at whose starts that saved
heap pointer could be restored (to recover the memory allocated
by the nth disjunct). The symptom was a disjunction with only
one disjunct, but the problem was a simple semantic one. The fix
is simply to say that we won't record the heap pointer before the nth
disjunct unless disjunct n+1 exists.
Improve the generated HLDS in another way as well: wrap the appropriate
kind of promise_purity scope around the transformed code (which uses
impure primitives).
tests/valid/bug109.m:
Add the regression test for this bug.
tests/valid/Mmakefile:
tests/valid/Mercury.options:
Enable the test case.