Estimated hours taken: 0.4
library/random.m:
Added support for in/out random__supply arguments to
complement the existing mdi/muo modes. This is useful
when a random__supply is a component of a non-(mostly-)
unique object.
Estimated hours taken: 0.75
library/random.m:
Improve efficiency of random__permutation:
- use an array rather than a map
- use `rem' rather than `div'
Estimated hours taken: 2
library/random.m:
Change random__permutation so that it takes
as its first argument a list(T) rather than an int N,
and returns a permutation of that list rather than
a permutation of the integers 0 .. N-1.
tests/tabling/expand*.m:
Change to reflect the new interface to random__permutation.
NEWS:
Document the random__permutation predicate.
Estimated hours taken: 0.1
library/random.m:
Change the coefficients for the linear-congruential generator.
They now assume only 31 bits (unsigned) rather than 32. This
should prevent the defective behaviour reported on the
mercury-users mailing list.
Estimated hours taken: 0.5
library/*.m:
compiler/*.m:
Undo Zoltan's bogus update of all the copyright dates.
The dates in the copyright header should reflect the years
in which the file was modified (and no, changes to the
copyright header itself don't count as modifications).
Estimated hours taken: 0.5
library/random.m:
Add documentation for the exported procedures.
Declare the undocumented random__test predicate as
`pragma obsolete' and remove it from the Mercury
library reference manual (in preperation for
deleting it in a future release).
Some minor changes to the code to make it more
readable.
Estimated hours taken: 3
Enable --warn-interface-imports by default. This was turned off while
list and term were defined in mercury_builtin.m, since it caused many
warnings.
Fix all the unused interface imports that have been added since then.
compiler/options.m:
Enable --warn-interface-imports by default.
compiler/module_qual.m:
Fix formatting inconsistencies with module names in warning
messages. (".m" was not appended to module names if there was
only one module).
compiler/*.m:
library/*.m:
tests/invalid/type_loop.m:
tests/warnings/*.m:
Remove usused interface imports, or move them into
implementation (mostly bool, list and std_util).
library/*.m:
Improve the documentation.
Add a "Stability: low/medium/high" comment to all modules,
which describes the stability of the interface to that module.
ops.m:
Add `:' as an infix operator.
require.m:
Implement require/1, since higher-order predicates now work.
term.m:
Use the type `comparison_result' from mercury_builtin.m,
rather than defining an identical type `comparison'.
library/mercury_builtin.m:
Add copy/2.
library/io.m:
Change io__get/set_globals to use unique modes.
Add a few calls to copy/2 to make things work.
library/*.m:
Add unique modes to a few predicates.
Remove unique modes in a couple of cases where they didn't work.
map.m & tree234.m:
add a __member predicate for nondeterministically getting the
members of a map or tree.
random.m:
replace the random number generator with the original proper one.
Makefile*:
Add some more stuff for compiling to .o
Makefile*, mercury_compile*, code_gen*:
Add some stuff for handling `.pp' files.
`.pp' files are Mercury source code containing
NU-Prolog hacks inside
#if NU_PROLOG
...
#endif
These hacks are preprocessed out (using sed, not cpp)
except when compiling with `mnc'.
term_io.nl, term_io.nu.nl, interpreter.nl, prog_out.nl:
Make sure all the predicates in term_io.nl are
prefixed with `term_io__', not `io__'.
term_io.nl, require.nl:
Add some `external' declarations.
call_gen.nl, unify_gen.nl:
A temporary hack - generate incorrect code for complicated/polymorphic
unifications, rather than aborting.
random.nl:
Make the code more efficient.
hlds.nl, term.nl:
Allocate pred_ids and variable numbers randomly rather than
sequentially, so that the binary trees remain reasonably balanced.
code_info.nl, unify_gen.nl, hlds_out.nl:
Generate informative comments for tag tests: say the name of
the variable being tested, and which constructor we are testing for.
llds.nl:
Cast field() expressions to (int) when used as rvals, so
that comparisons work as expected.
make_hlds.nl:
Improve error reporting.
bintree_set.nl:
Fix naming conventions (delete/remove).
(XXX should fix set.nl too!)
graph.nl, pqueue.nl, random.nl, bintree_set.nl:
Add missing determinism annotations.
io.nl, io.nu.nl:
Add io__call_system.
mercury_compile.nl:
Call a script `mercury_update_interface' to update the
interface files without stuffing up the timestamps.
Output a `<Module>.date' timestamp file.
Also, eliminate the circular interface dependency warning,
since it was giving false hits on circular implementation
dependencies.
GNUMakefile, Makefile.common, Makefile.mercury:
Fix a bug or two.
Update the interface files intelligently.