leerho commented on issue #28:
URL:
https://github.com/apache/datasketches-rust/issues/28#issuecomment-3666603362
This is a library-wide check placed in two classes in /common/ that every
sketch in the library will likely call: Family and Util.
There are several reasons for this check:
- There are a number of sketches that use compression algorithms that are
byte-order sensitive and will fail if the machine's byte-order is BE.
Attempting to re-write these algorithms to handle BE would be quite painful and
is very low in priority AFAIAC.
- All of the binary serialization images assume LE. And these images are
intended to be interpreted cross-language and cross-platform.
- Intel, because of it dominance early on, pretty much won the battle of LE
vs BE and LE became the default many years ago and is still true today -- even
though modern CPUs can handle LE or BE pretty transparently, the default is
still LE.
- Yes there are still BE CPUs out there but they are rare and especially
rare in large platforms that process big data, which is primarily our target.
- One notable exception to this dominance of LE is TCP/IP, which uses BE for
the headers, but the payloads are endian insensitive, they are just blobs of
bytes. (this is because TCP/IP was developed in the 1970's).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]