Subject: bug#32463: 27.0.50; (logior -1) => 4611686018427387903

From: Andy Moreton <[email-masked]>
Date: Wed, 22 Aug 2018 09:39:50 +0100

On Tue 21 Aug 2018, Paul Eggert wrote:

>>>> d) Extend Fceiling, Ffloor, Fround and Ftruncate to support bignums by
>>>>    updating rounding_driver.
>>
>> I worked on these and installed patches to master that should do (a), (b),
>> and (c). For (d) I wrote the attached patch, and plan to test it a bit more
>> before installing, as it's the hairiest.
>
> It took me longer to write the test cases than the code, but the tests did
> find bugs so it was worth it. I installed the attached.

Thanks for all of your recent work on bignum issues, which has
siginificantly improved the bignum implementation.

> While we're on the subject I moved the definition of 'bignump' and 'fixnump'
> from C to Lisp, since they are easily implementable in Lisp and don't seem to
> be performance relevant. Hope you don't mind too much that I would rather
> minimize the low-level details that the C code exports.

I agree that performance is not an issue. However implementing these in lisp
assumes that bignums never represent values in fixnum range, rather than
checking that. We need some checks at the C level to ensure that this
property always holds.

    AndyM