[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