[Vm-dev] Bug in primitive 551 (SmallFloat64>> truncated)

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Mar 12 16:05:18 UTC 2019


Hi Juan,
good find. Can you open an issue on github opensmalltalk repo?

Le mar. 12 mars 2019 à 16:05, Juan Vuletich <JuanVuletich at zoho.com> a
écrit :

>
> Hi Folks,
>
> I just found a bug in an edge case in #truncated primitive in 64 bits
> Cog Spur (tested on Linux, both in Cuis and Squeak). It is when
> #truncated a Float that is slightly larger than SmallInteger maxVal.
>
> SmallInteger maxVal   -->  1152921504606846975
>
> If we take (1152921504606846975.0 predecessor), to ensure a Float that
> still fits in a SmallInteger, everything works fine:
>
> 1152921504606846975.0 predecessor asTrueFraction   -->  1152921504606846848
> 1152921504606846975.0 predecessor asTrueFraction   -->  class SmallInteger
> 1152921504606846975.0 predecessor truncated   -->  1152921504606846848
>
> But taking 1152921504606846976.0:
>
> 1152921504606846976.0 asTrueFraction   -->  1152921504606846976 (correct
> result)
> 1152921504606846976.0 asTrueFraction class   -->  LargePositiveInteger
> (ok. Doesn't fit in SmallInteger)
> 1152921504606846976.0 truncated   -->  -1152921504606846976
>
> The primitive is answering SmallInteger minVal, (a negative number!) but
> it should fail, as the correct result doesn't fit in a SmallInteger.
>
> Thanks,
>
> --
> Juan Vuletich
> www.cuis-smalltalk.org
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
> https://github.com/jvuletich
> https://www.linkedin.com/in/juan-vuletich-75611b3
> @JuanVuletich
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20190312/596baf3d/attachment.html>


More information about the Vm-dev mailing list