Re: Observability of NaN distinctions — is this a concern?

Allen Wirfs-Brock allen at wirfs-brock.com
Mon Mar 25 18:35:36 PDT 2013


On Mar 25, 2013, at 6:00 PM, Brendan Eich wrote:

> Right, thanks for the reminder. It all comes back now, including the "how to write correct ending-independent typed array code" bit.

Ok, so looping back to my earlier observation.  It sounds like endian-ness can be observed by writing into an Float64Array element and then reading back from a Uint8Array that is backed by the same buffer.  If there is agreement that this doesn't represent a significant interoperability hazard can we also agree that not doing NaN cannonicalization on writes to FloatXArray is an even less significant hazard and need not be mandated?

Allen




> 
> /be
> 
> On Mar 25, 2013, at 4:33 PM, Kenneth Russell <kbr at google.com> wrote:
> 
>> On Mon, Mar 25, 2013 at 4:23 PM, Brendan Eich <brendan at mozilla.com> wrote:
>>> Allen Wirfs-Brock wrote:
>>>> 
>>>> On Mar 25, 2013, at 4:05 PM, Brendan Eich wrote:
>>>> 
>>>>> Allen Wirfs-Brock wrote:
>>>>>> 
>>>>>> BTW, isn't cannonicalization of endian-ness for both integers and floats
>>>>>> a bigger interop issue than NaN cannonicalization?  I know this was
>>>>>> discussed in the past, but it doesn't seem to be covered in the latest
>>>>>> Khronos spec.  Was there ever a resolution as to whether or not TypedArray
>>>>>> [[Set]] operations need to use a cannonical endian-ness?
>>>>> 
>>>>> Search for "byte order" at
>>>>> https://www.khronos.org/registry/typedarray/specs/latest/.
>>>> 
>>>> 
>>>> I had already search for "endian" with similar results.  It says that the
>>>> default for DataViews gets/sets that do not specify a byte order is
>>>> big-endean. It doesn't say anything (that I can find) about such accesses on
>>>> TypedArray gets/sets.
>>> 
>>> 
>>> Oh, odd -- I recall that it used to say little-endian. Typed arrays are LE
>>> to match dominant architectures, while DataViews are BE to match packed
>>> serialization use-cases.
>>> 
>>> Ken, did something get edited out?
>> 
>> No. The typed array views (everything except DataView) have used the
>> host machine's endianness from day one by design -- although the typed
>> array spec does not state this explicitly. If desired, text can be
>> added to the specification to this effect. Any change in this behavior
>> will destroy the performance of APIs like WebGL and Web Audio on
>> big-endian architectures.
>> 
>> Correctly written code works identically on big-endian and
>> little-endian architectures. See
>> http://www.html5rocks.com/en/tutorials/webgl/typed_arrays/ for a
>> detailed description of the usage of the APIs.
>> 
>> DataView, which is designed for input/output, operates on data with a
>> specified endianness.
>> 
>> -Ken
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
> 



More information about the es-discuss mailing list