Hi,

Thank you for this bug report. Fixed in the git. Here is the main diff:

diff --git a/src/EnginePl/pl_config.c b/src/EnginePl/pl_config.c
index def0080..8f9c342 100644
--- a/src/EnginePl/pl_config.c
+++ b/src/EnginePl/pl_config.c
@@ -917,7 +917,7 @@ Generate_Tags(FILE *f, FILE *g)

   tag_mask = Mk_Tag_Mask((1 << tag_size) - 1);

-  max_integer = ((PlLong) 1 << (WORD_SIZE - tag_size - 1)) - 1;
+  max_integer = (1 << (WORD_SIZE - tag_size - 1)) - 1;
   min_integer = -max_integer - 1;

fprintf(fg_c, "#define PL_MIN_INTEGER\t\t%" PL_FMT_d "\n", min_integer);

Daniel


Le 03/07/2013 18:09, Roberto Bagnara a écrit :
The header file gprolog.h installed by GNU Prolog 1.4.4
contains the following (unconditional) definitions:

#define PL_MIN_INTEGER          -268435456
#define PL_MAX_INTEGER          268435455

These are inconsistent with the real limits:

$ gprolog
GNU Prolog 1.4.4 (64 bits)
Compiled Jul  3 2013, 18:05:18 with gcc
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- current_prolog_flag(min_integer, M).

M = -1152921504606846976

yes
| ?- current_prolog_flag(max_integer, M).

M = 1152921504606846975

yes
| ?-

Kind regards,

     Roberto



--
Ce message a ete verifie par MailScanner
pour des virus ou des polluriels et rien de
suspect n'a ete trouve.


_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to