Re: Bug in gprolog.h?

Daniel Diaz <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.