Re: Bug in gprolog.h?

Roberto Bagnara <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Organization Department of Mathematics and Computer Science, University of Parma, Italy
Message-ID <[email protected]>
On 07/04/13 13:22, Daniel Diaz wrote:
> 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);

It works: thanks!

> 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
>>
> 
> 


-- 
     Prof. Roberto Bagnara

Applied Formal Methods Laboratory - University of Parma, Italy
mailto:[email protected]
                              BUGSENG srl - http://bugseng.com
                              mailto:[email protected]
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.