mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 01:43:35 +00:00
Replace placeholder types with int64 and uint64 as appropriate throughout the
system.
Enable support for 64-bit integer literals in the compiler.
Add initial library support for 64-bit integers.
configure.ac:
Check that the bootstrap compiler recognises int64 and uint64 as
builtins.
library/int64.m:
library/uint64.m:
Populate these two modules to the extent that we can now run
basic tests of 64-bit integer support.
Note that since the bootstrap compiler will not recognise
64-bit integer literals, any such literals are current written
as conversions from ints; this will be replaced once this change
has bootstrapped.
library/private_builtin.m:
Replace the placeholder definitions for builtin unification and
comparison of 64-bit integers with their actual definitions.
library/integer.m:
Add procedures for converting integers to- and from int64 and uint64.
library/string.m:
Add functions for converting 64-bit integers into strings.
library/io.m:
Add predicates for writing 64-bit integers to text streams.
(Support for 64-bit integers with binary streams will be done
separately.)
library/stream.string_writer.m:
Add put_int64/4 and put_uint/64.
Extend the implementations of print and write to cover int64 and
uint64.
library/pprint.m:
Make int64 and uint64 instances of the doc/1 type class.
library/erlang_rtti_implementation.m:
library/rtti_implementation.m:
Handle int64 and uint64 properly in deconstruct.
library/term.m:
Add functions for converting 64-bit integers into terms.
library/term_conversion.m:
Support int64 and uint64 in univ -> term conversion.
library/Mercury.options:
Avoid a warning about the import of the require being
unused in the int64 and uint64 modules. It *is* used,
but only in the definitions used by the Erlang backend.
compiler/superhomogeneous.m:
Accept 64-bit integer literals.
compiler/c_util.m:
In C, write out the value of the min_int64 as the symbolic
constant INT64_MIN. This expands in such a way as to avoid
generating warnings from the C compiler.
compiler/builtin_ops.m:
compiler/bytecode.m:
compiler/elds.m:
compiler/elds_to_erlang.m:
compiler/hlds_data.m:
compiler/hlds_out_util.m:
compiler/llds.m:
compiler/llds_out_data.m:
compiler/lookup_switch.m:
compiler/mercury_to_mercury.m:
compiler/mlds.m:
compiler/mlds_to_cs.m:
compiler/mlds_to_java.m:
compiler/opt_debug.m:
compiler/parse_tree_out_info.m:
compiler/parse_tree_to_term.m:
compiler/prog_data.m:
compiler/prog_out.m:
compiler/prog_rep.m:
Replace the use of int as a placeholder with int64 or uint64 as
appropriate.
tests/hard_coded/Mmakefile:
tests/hard_coded/arith_int64.{m,exp}:
tests/hard_coded/arith_uint64.{m,exp}:
tests/hard_coded/bitwise_int64.{m,exp}:
tests/hard_coded/bitwise_uint64.{m,exp}:
tests/hard_coded/cmp_int64.{m,exp}:
tests/hard_coded/cmp_uint64.{m,exp}:
tests/hard_coded/integer_int64_conv.{m,exp}:
tests/hard_coded/integer_uint64_conv.{m,exp}:
Add tests of basic operations on 64-bit integers.
tests/hard_coded/construct_test.{m,exp}:
Extend this test to cover 64-bit integers.
515 lines
11 KiB
Plaintext
515 lines
11 KiB
Plaintext
*** Testing uint64.'==' ***
|
|
|
|
0 == 0 = true
|
|
0 == 1 = false
|
|
0 == 2 = false
|
|
0 == 8 = false
|
|
0 == 16 = false
|
|
0 == 255 = false
|
|
0 == 65535 = false
|
|
0 == 2147483647 = false
|
|
0 == 4294967295 = false
|
|
0 == 18446744073709551615 = false
|
|
1 == 0 = false
|
|
1 == 1 = true
|
|
1 == 2 = false
|
|
1 == 8 = false
|
|
1 == 16 = false
|
|
1 == 255 = false
|
|
1 == 65535 = false
|
|
1 == 2147483647 = false
|
|
1 == 4294967295 = false
|
|
1 == 18446744073709551615 = false
|
|
2 == 0 = false
|
|
2 == 1 = false
|
|
2 == 2 = true
|
|
2 == 8 = false
|
|
2 == 16 = false
|
|
2 == 255 = false
|
|
2 == 65535 = false
|
|
2 == 2147483647 = false
|
|
2 == 4294967295 = false
|
|
2 == 18446744073709551615 = false
|
|
8 == 0 = false
|
|
8 == 1 = false
|
|
8 == 2 = false
|
|
8 == 8 = true
|
|
8 == 16 = false
|
|
8 == 255 = false
|
|
8 == 65535 = false
|
|
8 == 2147483647 = false
|
|
8 == 4294967295 = false
|
|
8 == 18446744073709551615 = false
|
|
16 == 0 = false
|
|
16 == 1 = false
|
|
16 == 2 = false
|
|
16 == 8 = false
|
|
16 == 16 = true
|
|
16 == 255 = false
|
|
16 == 65535 = false
|
|
16 == 2147483647 = false
|
|
16 == 4294967295 = false
|
|
16 == 18446744073709551615 = false
|
|
255 == 0 = false
|
|
255 == 1 = false
|
|
255 == 2 = false
|
|
255 == 8 = false
|
|
255 == 16 = false
|
|
255 == 255 = true
|
|
255 == 65535 = false
|
|
255 == 2147483647 = false
|
|
255 == 4294967295 = false
|
|
255 == 18446744073709551615 = false
|
|
65535 == 0 = false
|
|
65535 == 1 = false
|
|
65535 == 2 = false
|
|
65535 == 8 = false
|
|
65535 == 16 = false
|
|
65535 == 255 = false
|
|
65535 == 65535 = true
|
|
65535 == 2147483647 = false
|
|
65535 == 4294967295 = false
|
|
65535 == 18446744073709551615 = false
|
|
2147483647 == 0 = false
|
|
2147483647 == 1 = false
|
|
2147483647 == 2 = false
|
|
2147483647 == 8 = false
|
|
2147483647 == 16 = false
|
|
2147483647 == 255 = false
|
|
2147483647 == 65535 = false
|
|
2147483647 == 2147483647 = true
|
|
2147483647 == 4294967295 = false
|
|
2147483647 == 18446744073709551615 = false
|
|
4294967295 == 0 = false
|
|
4294967295 == 1 = false
|
|
4294967295 == 2 = false
|
|
4294967295 == 8 = false
|
|
4294967295 == 16 = false
|
|
4294967295 == 255 = false
|
|
4294967295 == 65535 = false
|
|
4294967295 == 2147483647 = false
|
|
4294967295 == 4294967295 = true
|
|
4294967295 == 18446744073709551615 = false
|
|
18446744073709551615 == 0 = false
|
|
18446744073709551615 == 1 = false
|
|
18446744073709551615 == 2 = false
|
|
18446744073709551615 == 8 = false
|
|
18446744073709551615 == 16 = false
|
|
18446744073709551615 == 255 = false
|
|
18446744073709551615 == 65535 = false
|
|
18446744073709551615 == 2147483647 = false
|
|
18446744073709551615 == 4294967295 = false
|
|
18446744073709551615 == 18446744073709551615 = true
|
|
|
|
*** Testing uint64.'<' ***
|
|
|
|
0 < 0 = false
|
|
0 < 1 = true
|
|
0 < 2 = true
|
|
0 < 8 = true
|
|
0 < 16 = true
|
|
0 < 255 = true
|
|
0 < 65535 = true
|
|
0 < 2147483647 = true
|
|
0 < 4294967295 = true
|
|
0 < 18446744073709551615 = true
|
|
1 < 0 = false
|
|
1 < 1 = false
|
|
1 < 2 = true
|
|
1 < 8 = true
|
|
1 < 16 = true
|
|
1 < 255 = true
|
|
1 < 65535 = true
|
|
1 < 2147483647 = true
|
|
1 < 4294967295 = true
|
|
1 < 18446744073709551615 = true
|
|
2 < 0 = false
|
|
2 < 1 = false
|
|
2 < 2 = false
|
|
2 < 8 = true
|
|
2 < 16 = true
|
|
2 < 255 = true
|
|
2 < 65535 = true
|
|
2 < 2147483647 = true
|
|
2 < 4294967295 = true
|
|
2 < 18446744073709551615 = true
|
|
8 < 0 = false
|
|
8 < 1 = false
|
|
8 < 2 = false
|
|
8 < 8 = false
|
|
8 < 16 = true
|
|
8 < 255 = true
|
|
8 < 65535 = true
|
|
8 < 2147483647 = true
|
|
8 < 4294967295 = true
|
|
8 < 18446744073709551615 = true
|
|
16 < 0 = false
|
|
16 < 1 = false
|
|
16 < 2 = false
|
|
16 < 8 = false
|
|
16 < 16 = false
|
|
16 < 255 = true
|
|
16 < 65535 = true
|
|
16 < 2147483647 = true
|
|
16 < 4294967295 = true
|
|
16 < 18446744073709551615 = true
|
|
255 < 0 = false
|
|
255 < 1 = false
|
|
255 < 2 = false
|
|
255 < 8 = false
|
|
255 < 16 = false
|
|
255 < 255 = false
|
|
255 < 65535 = true
|
|
255 < 2147483647 = true
|
|
255 < 4294967295 = true
|
|
255 < 18446744073709551615 = true
|
|
65535 < 0 = false
|
|
65535 < 1 = false
|
|
65535 < 2 = false
|
|
65535 < 8 = false
|
|
65535 < 16 = false
|
|
65535 < 255 = false
|
|
65535 < 65535 = false
|
|
65535 < 2147483647 = true
|
|
65535 < 4294967295 = true
|
|
65535 < 18446744073709551615 = true
|
|
2147483647 < 0 = false
|
|
2147483647 < 1 = false
|
|
2147483647 < 2 = false
|
|
2147483647 < 8 = false
|
|
2147483647 < 16 = false
|
|
2147483647 < 255 = false
|
|
2147483647 < 65535 = false
|
|
2147483647 < 2147483647 = false
|
|
2147483647 < 4294967295 = true
|
|
2147483647 < 18446744073709551615 = true
|
|
4294967295 < 0 = false
|
|
4294967295 < 1 = false
|
|
4294967295 < 2 = false
|
|
4294967295 < 8 = false
|
|
4294967295 < 16 = false
|
|
4294967295 < 255 = false
|
|
4294967295 < 65535 = false
|
|
4294967295 < 2147483647 = false
|
|
4294967295 < 4294967295 = false
|
|
4294967295 < 18446744073709551615 = true
|
|
18446744073709551615 < 0 = false
|
|
18446744073709551615 < 1 = false
|
|
18446744073709551615 < 2 = false
|
|
18446744073709551615 < 8 = false
|
|
18446744073709551615 < 16 = false
|
|
18446744073709551615 < 255 = false
|
|
18446744073709551615 < 65535 = false
|
|
18446744073709551615 < 2147483647 = false
|
|
18446744073709551615 < 4294967295 = false
|
|
18446744073709551615 < 18446744073709551615 = false
|
|
|
|
*** Testing uint64.'=<' ***
|
|
|
|
0 =< 0 = true
|
|
0 =< 1 = true
|
|
0 =< 2 = true
|
|
0 =< 8 = true
|
|
0 =< 16 = true
|
|
0 =< 255 = true
|
|
0 =< 65535 = true
|
|
0 =< 2147483647 = true
|
|
0 =< 4294967295 = true
|
|
0 =< 18446744073709551615 = true
|
|
1 =< 0 = false
|
|
1 =< 1 = true
|
|
1 =< 2 = true
|
|
1 =< 8 = true
|
|
1 =< 16 = true
|
|
1 =< 255 = true
|
|
1 =< 65535 = true
|
|
1 =< 2147483647 = true
|
|
1 =< 4294967295 = true
|
|
1 =< 18446744073709551615 = true
|
|
2 =< 0 = false
|
|
2 =< 1 = false
|
|
2 =< 2 = true
|
|
2 =< 8 = true
|
|
2 =< 16 = true
|
|
2 =< 255 = true
|
|
2 =< 65535 = true
|
|
2 =< 2147483647 = true
|
|
2 =< 4294967295 = true
|
|
2 =< 18446744073709551615 = true
|
|
8 =< 0 = false
|
|
8 =< 1 = false
|
|
8 =< 2 = false
|
|
8 =< 8 = true
|
|
8 =< 16 = true
|
|
8 =< 255 = true
|
|
8 =< 65535 = true
|
|
8 =< 2147483647 = true
|
|
8 =< 4294967295 = true
|
|
8 =< 18446744073709551615 = true
|
|
16 =< 0 = false
|
|
16 =< 1 = false
|
|
16 =< 2 = false
|
|
16 =< 8 = false
|
|
16 =< 16 = true
|
|
16 =< 255 = true
|
|
16 =< 65535 = true
|
|
16 =< 2147483647 = true
|
|
16 =< 4294967295 = true
|
|
16 =< 18446744073709551615 = true
|
|
255 =< 0 = false
|
|
255 =< 1 = false
|
|
255 =< 2 = false
|
|
255 =< 8 = false
|
|
255 =< 16 = false
|
|
255 =< 255 = true
|
|
255 =< 65535 = true
|
|
255 =< 2147483647 = true
|
|
255 =< 4294967295 = true
|
|
255 =< 18446744073709551615 = true
|
|
65535 =< 0 = false
|
|
65535 =< 1 = false
|
|
65535 =< 2 = false
|
|
65535 =< 8 = false
|
|
65535 =< 16 = false
|
|
65535 =< 255 = false
|
|
65535 =< 65535 = true
|
|
65535 =< 2147483647 = true
|
|
65535 =< 4294967295 = true
|
|
65535 =< 18446744073709551615 = true
|
|
2147483647 =< 0 = false
|
|
2147483647 =< 1 = false
|
|
2147483647 =< 2 = false
|
|
2147483647 =< 8 = false
|
|
2147483647 =< 16 = false
|
|
2147483647 =< 255 = false
|
|
2147483647 =< 65535 = false
|
|
2147483647 =< 2147483647 = true
|
|
2147483647 =< 4294967295 = true
|
|
2147483647 =< 18446744073709551615 = true
|
|
4294967295 =< 0 = false
|
|
4294967295 =< 1 = false
|
|
4294967295 =< 2 = false
|
|
4294967295 =< 8 = false
|
|
4294967295 =< 16 = false
|
|
4294967295 =< 255 = false
|
|
4294967295 =< 65535 = false
|
|
4294967295 =< 2147483647 = false
|
|
4294967295 =< 4294967295 = true
|
|
4294967295 =< 18446744073709551615 = true
|
|
18446744073709551615 =< 0 = false
|
|
18446744073709551615 =< 1 = false
|
|
18446744073709551615 =< 2 = false
|
|
18446744073709551615 =< 8 = false
|
|
18446744073709551615 =< 16 = false
|
|
18446744073709551615 =< 255 = false
|
|
18446744073709551615 =< 65535 = false
|
|
18446744073709551615 =< 2147483647 = false
|
|
18446744073709551615 =< 4294967295 = false
|
|
18446744073709551615 =< 18446744073709551615 = true
|
|
|
|
*** Testing uint64.'>' ***
|
|
|
|
0 > 0 = false
|
|
0 > 1 = false
|
|
0 > 2 = false
|
|
0 > 8 = false
|
|
0 > 16 = false
|
|
0 > 255 = false
|
|
0 > 65535 = false
|
|
0 > 2147483647 = false
|
|
0 > 4294967295 = false
|
|
0 > 18446744073709551615 = false
|
|
1 > 0 = true
|
|
1 > 1 = false
|
|
1 > 2 = false
|
|
1 > 8 = false
|
|
1 > 16 = false
|
|
1 > 255 = false
|
|
1 > 65535 = false
|
|
1 > 2147483647 = false
|
|
1 > 4294967295 = false
|
|
1 > 18446744073709551615 = false
|
|
2 > 0 = true
|
|
2 > 1 = true
|
|
2 > 2 = false
|
|
2 > 8 = false
|
|
2 > 16 = false
|
|
2 > 255 = false
|
|
2 > 65535 = false
|
|
2 > 2147483647 = false
|
|
2 > 4294967295 = false
|
|
2 > 18446744073709551615 = false
|
|
8 > 0 = true
|
|
8 > 1 = true
|
|
8 > 2 = true
|
|
8 > 8 = false
|
|
8 > 16 = false
|
|
8 > 255 = false
|
|
8 > 65535 = false
|
|
8 > 2147483647 = false
|
|
8 > 4294967295 = false
|
|
8 > 18446744073709551615 = false
|
|
16 > 0 = true
|
|
16 > 1 = true
|
|
16 > 2 = true
|
|
16 > 8 = true
|
|
16 > 16 = false
|
|
16 > 255 = false
|
|
16 > 65535 = false
|
|
16 > 2147483647 = false
|
|
16 > 4294967295 = false
|
|
16 > 18446744073709551615 = false
|
|
255 > 0 = true
|
|
255 > 1 = true
|
|
255 > 2 = true
|
|
255 > 8 = true
|
|
255 > 16 = true
|
|
255 > 255 = false
|
|
255 > 65535 = false
|
|
255 > 2147483647 = false
|
|
255 > 4294967295 = false
|
|
255 > 18446744073709551615 = false
|
|
65535 > 0 = true
|
|
65535 > 1 = true
|
|
65535 > 2 = true
|
|
65535 > 8 = true
|
|
65535 > 16 = true
|
|
65535 > 255 = true
|
|
65535 > 65535 = false
|
|
65535 > 2147483647 = false
|
|
65535 > 4294967295 = false
|
|
65535 > 18446744073709551615 = false
|
|
2147483647 > 0 = true
|
|
2147483647 > 1 = true
|
|
2147483647 > 2 = true
|
|
2147483647 > 8 = true
|
|
2147483647 > 16 = true
|
|
2147483647 > 255 = true
|
|
2147483647 > 65535 = true
|
|
2147483647 > 2147483647 = false
|
|
2147483647 > 4294967295 = false
|
|
2147483647 > 18446744073709551615 = false
|
|
4294967295 > 0 = true
|
|
4294967295 > 1 = true
|
|
4294967295 > 2 = true
|
|
4294967295 > 8 = true
|
|
4294967295 > 16 = true
|
|
4294967295 > 255 = true
|
|
4294967295 > 65535 = true
|
|
4294967295 > 2147483647 = true
|
|
4294967295 > 4294967295 = false
|
|
4294967295 > 18446744073709551615 = false
|
|
18446744073709551615 > 0 = true
|
|
18446744073709551615 > 1 = true
|
|
18446744073709551615 > 2 = true
|
|
18446744073709551615 > 8 = true
|
|
18446744073709551615 > 16 = true
|
|
18446744073709551615 > 255 = true
|
|
18446744073709551615 > 65535 = true
|
|
18446744073709551615 > 2147483647 = true
|
|
18446744073709551615 > 4294967295 = true
|
|
18446744073709551615 > 18446744073709551615 = false
|
|
|
|
*** Testing uint64.'>=' ***
|
|
|
|
0 >= 0 = true
|
|
0 >= 1 = false
|
|
0 >= 2 = false
|
|
0 >= 8 = false
|
|
0 >= 16 = false
|
|
0 >= 255 = false
|
|
0 >= 65535 = false
|
|
0 >= 2147483647 = false
|
|
0 >= 4294967295 = false
|
|
0 >= 18446744073709551615 = false
|
|
1 >= 0 = true
|
|
1 >= 1 = true
|
|
1 >= 2 = false
|
|
1 >= 8 = false
|
|
1 >= 16 = false
|
|
1 >= 255 = false
|
|
1 >= 65535 = false
|
|
1 >= 2147483647 = false
|
|
1 >= 4294967295 = false
|
|
1 >= 18446744073709551615 = false
|
|
2 >= 0 = true
|
|
2 >= 1 = true
|
|
2 >= 2 = true
|
|
2 >= 8 = false
|
|
2 >= 16 = false
|
|
2 >= 255 = false
|
|
2 >= 65535 = false
|
|
2 >= 2147483647 = false
|
|
2 >= 4294967295 = false
|
|
2 >= 18446744073709551615 = false
|
|
8 >= 0 = true
|
|
8 >= 1 = true
|
|
8 >= 2 = true
|
|
8 >= 8 = true
|
|
8 >= 16 = false
|
|
8 >= 255 = false
|
|
8 >= 65535 = false
|
|
8 >= 2147483647 = false
|
|
8 >= 4294967295 = false
|
|
8 >= 18446744073709551615 = false
|
|
16 >= 0 = true
|
|
16 >= 1 = true
|
|
16 >= 2 = true
|
|
16 >= 8 = true
|
|
16 >= 16 = true
|
|
16 >= 255 = false
|
|
16 >= 65535 = false
|
|
16 >= 2147483647 = false
|
|
16 >= 4294967295 = false
|
|
16 >= 18446744073709551615 = false
|
|
255 >= 0 = true
|
|
255 >= 1 = true
|
|
255 >= 2 = true
|
|
255 >= 8 = true
|
|
255 >= 16 = true
|
|
255 >= 255 = true
|
|
255 >= 65535 = false
|
|
255 >= 2147483647 = false
|
|
255 >= 4294967295 = false
|
|
255 >= 18446744073709551615 = false
|
|
65535 >= 0 = true
|
|
65535 >= 1 = true
|
|
65535 >= 2 = true
|
|
65535 >= 8 = true
|
|
65535 >= 16 = true
|
|
65535 >= 255 = true
|
|
65535 >= 65535 = true
|
|
65535 >= 2147483647 = false
|
|
65535 >= 4294967295 = false
|
|
65535 >= 18446744073709551615 = false
|
|
2147483647 >= 0 = true
|
|
2147483647 >= 1 = true
|
|
2147483647 >= 2 = true
|
|
2147483647 >= 8 = true
|
|
2147483647 >= 16 = true
|
|
2147483647 >= 255 = true
|
|
2147483647 >= 65535 = true
|
|
2147483647 >= 2147483647 = true
|
|
2147483647 >= 4294967295 = false
|
|
2147483647 >= 18446744073709551615 = false
|
|
4294967295 >= 0 = true
|
|
4294967295 >= 1 = true
|
|
4294967295 >= 2 = true
|
|
4294967295 >= 8 = true
|
|
4294967295 >= 16 = true
|
|
4294967295 >= 255 = true
|
|
4294967295 >= 65535 = true
|
|
4294967295 >= 2147483647 = true
|
|
4294967295 >= 4294967295 = true
|
|
4294967295 >= 18446744073709551615 = false
|
|
18446744073709551615 >= 0 = true
|
|
18446744073709551615 >= 1 = true
|
|
18446744073709551615 >= 2 = true
|
|
18446744073709551615 >= 8 = true
|
|
18446744073709551615 >= 16 = true
|
|
18446744073709551615 >= 255 = true
|
|
18446744073709551615 >= 65535 = true
|
|
18446744073709551615 >= 2147483647 = true
|
|
18446744073709551615 >= 4294967295 = true
|
|
18446744073709551615 >= 18446744073709551615 = true
|