mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 01:43:35 +00:00
Estimated hours taken: 8
Bug fixes for higher_order.m and unused_args.m
NEWS
Removed the message about bugs in unused_args.m and higher_order.m
compiler/options.m
Re-enabled higher_order and unused_args.
compiler/unused_args.m
Fixed so that this now handles partially instantiated
deconstructions correctly.
compiler/higher_order.m
Two bug fixes:
Specialization of types for specialized versions of predicates.
Fixed handling of curried arguments.
compiler/inlining.m, compiler/type_util.m:
Moved inlining:apply_substitution_to_type_map and
inlining:apply_rec_substitution_to_type_map to type_util.m
for use in the higher_order.m bug fix.
library/varset.m
Added predicate varset__new_vars which returns a list of new
variables.
library/term.m
Added predicates term__apply_variable_renaming(_to_list)
to apply a variable renaming (map(var, var)) to a term
or list of terms.
library/map.m
Added map__det_insert_from_corresponding_lists to insert
multiple key-value pairs into a map.
tests/valid/{Mmake, higher_order2.m, higher_order3.m, unused_args_test2.m}
Tests for the bug fixes.
The Mercury test suite is (dis)organized into the following subdirectories. To run the tests in a particular subdirectory, cd to that directory and then do `mmake depend; mmake check'. benchmarks This directory contains Mercury versions of the benchmarks. These tests work by comparing the output of the Mercury and the NU-Prolog versions. These tests are run automatically on a regular basis. general This directory is for general test cases. (It might be a good idea to split this into tests of particular features and regression tests that check for old bugs. But for the moment, just about everything goes in here.) These tests work by comparing the output of the Mercury and the NU-Prolog versions. These tests are run automatically on a regular basis. hard_coded This directory is for tests of features that don't work in NU-Prolog. The expected output of the program has to be hard-coded in a hand-written `.exp' file, rather having the `.exp' file be generated automatically using NU-Prolog. These tests are run automatically on a regular basis. valid This directory is for test cases that are not complete programs. `mmake check' just checks that the files compile. ***These tests are not yet run automatically.*** invalid This directory is for test cases that are invalid programs. `mmake check' should check that the files do not compile - but automation of this is not yet implemented. ***These tests are not yet run automatically.*** warnings This directory is for tests of compiler warnings. These work by comparing the warnings given in the hand-written '.exp' file.