tests/hard_coded/*.m:
Update programming style, unless doing so would change
the meaning of the test, in particular:
- use '.' as a module qualifier in place of '__'
- use {write,print}_line where appropriate
- use if-then-else in place of C -> T ; E
- use state variables in place of DCGs
tests/hard_coded/dir_test.m:
Document what the expected outputs correspond to.
Use a uniform module qualifier in the output.
tests/hard_coded/dir_test.exp*:
Conform to the above change.
tests/accumulator/*.m:
tests/analysis_*/*.m:
tests/benchmarks*/*.m:
tests/debugger*/*.{m,exp,inp}:
tests/declarative_debugger*/*.{m,exp,inp}:
tests/dppd*/*.m:
tests/exceptions*/*.m:
tests/general*/*.m:
tests/grade_subdirs*/*.m:
tests/hard_coded*/*.m:
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 debugger tests,
specify the new line numbers in .inp files and expect them in .exp files.
Branches: main
Change the argument order of predicates in the varset module to make
them more conducive to the use of state variable notation.
library/varset.m:
As above.
library/parser.m:
library/term_io.m:
library/svvarset.m:
compiler/*.m:
samples/interpreter.m:
tests/debugger/interpreter.m:
tests/general/interpreter.m:
tests/hard_coded/bigtest.m:
tests/hard_coded/deep_copy_bug.m:
tests/hard_coded/lp.m:
tests/hard_coded/pprint_test.m:
tests/hard_coded/type_spec_ho_term.m:
Conform to the above change and remove dependencies on the svvarset
module.
Estimated hours taken: 0.1
Branches: main
Delete the obsolete versions of the all-solutions predicates from std_util.m.
(Normally we would wait until after the 0.13 release, but we don't want them
in the next g12 release of Mercury which is why they are being deleted now.)
Document some parts of the library that are handled as special cases by the
compiler and the declarative debugger.
library/std_util.m:
Delete the obsolete versions of the all-solutions predicates from
this module.
library/solutions.m:
Mention that these predicates are handled as a special case
in browser/declarative_tree.m:
Reformat a descriptive comment so that the library reference manual
doesn't have a line that exceeds 80 characters in length.
library/builtin.m:
Mention that cc_multi_equal is handled as a special case in
browser/declarative_tree.m.
Mention that dynamic_cast/2 is handled as a special case in
compiler/const_prop.m.
tests/*/*.m:
Import solutions where necessary.
Estimated hours taken: 3
Branches: main
Deprecate old-style lambda expressions properly.
compiler/make_hlds.m:
Emit a warning if an old-style lambda expression is
encountered.
compiler/notes/todo.html:
Remove this from the TODO list.
compiler/base_typeclass_info.m:
compiler/mercury_to_mercury.m:
extras/odbc/odbc.m:
tests/*/*.m:
Replace old-style lambda expressions as necessary.
Estimated hours taken: 4
Fix some bugs in lambda.m.
compiler/lambda.m:
Fix a bug: in some cases (the cases when it avoided
introducing a new predicate), lambda.m was not setting
the `address_taken' field correctly.
A fix for the MLDS back-end: the optimization of
assuming that the calling convention for `model_det'
is compatible with the calling convention for `model_non'
is not valid if the `--high-level-code' option is set.
Update an obsolete comment.
compiler/hlds_pred.m:
Add a new predicate `proc_info_set_address_taken',
for use by lambda.m.
tests/hard_coded/deep_copy_bug.m:
tests/hard_coded/deep_copy_bug.exp:
Add some more regression tests to test the
above-mentioned bugs.
Estimated hours taken: 2
Fix a bug that Tom reported where calling solutions/3 with an
equivalence type caused a crash in deep_copy().
runtime/deep_copy.c:
Fix a bug in the copying of equivalence types and no_tag types.
It was using `entry_value' instead of `entry_value[1]'.
tests/hard_coded/Mmake:
tests/hard_coded/.cvsignore:
tests/hard_coded/deep_copy_bug.m:
tests/hard_coded/deep_copy_bug.exp:
Add a regression test for this bug.