mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 01:43:35 +00:00
NEWS:
Mention all the user-visible changes below.
library/enum.m:
Add the typeclass uenum, which is a version of the existing enum typeclass
that maps items to uints, not ints. It also uses a semidet predicate,
not a semidet function, to get back to the item from the uint.
library/sparse_bitset.m:
library/fat_sparse_bitset.m:
Make these modules operate on uints, which means requiring the items
in the sets to be instances of uenum, not enum.
If a few places, improve loops by doing previously-repeated conversions
of [u]ints into <offset, bit-to-set> pairs just once.
library/counter.m:
Define ucounters, which allocate uints. Improve documentation.
library/digraph.m:
Change digraph_keys from ints to uints, since we put them into
sparse_bitsets.
library/int.m:
Make int an instance of the uenum typeclass. This can help users
who currently put ints into sparse_bitsets.
library/pprint.m:
Prettyprint sparse_bitsets as lists of uints.
library/term.m:
Make vars instances of uenum as well as enum.
library/uint.m:
Make uint an instance of the uenum typeclass.
Add the ubits_per_uint function, which allows some casts to be avoided.
compiler/make.deps_set.m:
Change the indexes we put into sparse_bitsets from ints to uints.
compiler/make.make_info.m:
Change the source of those indexes from ints to uints.
compiler/make.top_level.m:
compiler/make.util.m:
Conform to the changes above.
compiler/pre_quantification.m:
Change zones from ints to uints, since we put them into sparse_bitsets.
tests/hard_coded/int_uenum.{m,exp}:
tests/hard_coded/Mmakefile:
Enable the new test case.
tests/valid/use_import_only_for_instance.m:
Update this extract from library/digraph.m the same way as
library/digraph.m itself.
12 lines
457 B
Plaintext
12 lines
457 B
Plaintext
0 0 -> 0 0
|
|
-1 ffffffffffffffff -> 1 1
|
|
1 1 -> 2 2
|
|
-63 ffffffffffffffc1 -> 125 7d
|
|
-64 ffffffffffffffc0 -> 127 7f
|
|
63 3f -> 126 7e
|
|
64 40 -> 128 80
|
|
-9223372036854775807 8000000000000001 -> 18446744073709551613 fffffffffffffffd
|
|
-9223372036854775808 8000000000000000 -> 18446744073709551615 ffffffffffffffff
|
|
9223372036854775806 7ffffffffffffffe -> 18446744073709551612 fffffffffffffffc
|
|
9223372036854775807 7fffffffffffffff -> 18446744073709551614 fffffffffffffffe
|