Estimated hours taken: 0.2
Branches: main, release
library/*.m:
Improve the library reference manual by formatting the beginning of
library modules consistently.
library/integer.m:
Fix some bad indentation.
Estimated hours taken: 14
Use bitsets to store the sets of variables in quantification.
This change reduces the time taken by `mmc -C make_hlds' by 7-8%.
library/sparse_bitset.m:
An ADT for storing sets of integers.
library/set.m:
library/set_ordlist.m:
library/set_unordlist.m:
library/set_bbbtree.m:
library/bintree_set.m:
Add a predicate contains/2, which is like member/2 but
only has the `contains(in, in)' mode. For some set representations
it is difficult to code a predicate which does both the
`member(out, in)' and `member(in, in)' modes efficiently.
library/enum.m:
Contains a typeclass `enum/1' describing types which
can be converted to and from integers.
library/term.m:
Add an instance declaration for `enum(var(T))'.
library/char.m:
Add an instance declaration for `enum(character)'.
library/bool.m:
Add an instance declaration for `enum(bool)'.
library/int.m:
Add an instance declaration for `enum(int)'.
Add a function for finding the largest multiple of
bits_per_int which is less than a given number, for
use by sparse_bitset.m.
compiler/quantification.m:
Use `sparse_bitset(prog_var)' rather than `set(prog_var)'
for all the sets of variables used while quantifying a goal,
but arrange things so that it is simple use `set(prog_var)'
when debugging.
library/library.m:
compiler/modules.m:
Add `enum' and `sparse_bitset' to the list of library modules.
NEWS:
Document the new modules.
tests/hard_coded/Mmakefile:
tests/hard_coded/test_sparse_bitset.m:
tests/hard_coded/bitset_tester.m:
Add some tests for predicates and functions in
sparse_bitset.m which are not used in quantification.m.
Test storing negative integers in sparse_bitsets.