[Vm-dev] Re: [Pharo-project] Teleplace Cog VMs are now available

Eliot Miranda eliot.miranda at gmail.com
Tue Jun 22 01:03:27 UTC 2010


On Mon, Jun 21, 2010 at 5:16 PM, Henrik Sperre Johansen <
henrik.s.johansen at veloxit.no> wrote:

>
>  On 20.06.2010 22:11, Eliot Miranda wrote:
>
>> While the VMs convert float order automatically on load they do require
>> special accessing primitives Float>>basicAt: & Float>>basicAt:put: that undo
>> the reversal and answer Float contents in big-endian order so that e.g.
>> Float>>hash is unchanged.  The methods assume these primitives can fail,
>> allowing the code to be used on current Squeak VMs.
>>
>>
>>  Should also note, Float divisions by zero now return + / - Infinity
> rather than raising ZeroDivide errors.
> 15.0 / 0  Infinity
> -15.0 / 0.0 -Infinity
>

which is clearly a bug in Cog.  But I'd like to provide a
flag/image-header-bit to allow one to specify either behaviour.  i.e. fail
float primitives that return NaNs or Infs, or return the relevant IEEE
Inf/NaN.  Andreas and I have just discussed this and he points out that
while under ieee Inf and non-NaN results are bit-identical across platforms,
NaNs are  not.  So for Croquet one really needs the code generator to
arrange that float primitives that do return NaNs normalise those NaNs to a
small set (e.g. a pair of a single +ve NaN & a single -ve NaN).

cheers,
Eliot


> Cheers,
> Henry
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100621/3a25685e/attachment.htm


More information about the Vm-dev mailing list