[Pdx-pm] PowerPC and little-endian
tex at off.org
Wed Mar 1 09:42:11 PST 2006
On Tue, Feb 28, 2006 at 11:11:40PM -0800, jerry gay wrote:
> On 2/28/06, Eric Wilhelm <scratchcomputing at gmail.com> wrote:
> > Hi all,
> > Since I'm in the minority of non-mac owners around here, maybe you all
> > can fill me in on this whole dual-mode software-switched rumor about
> > the powerpc being able to run in either big or little endian mode. I
> > need to unpack some floats and doubles in a cross-platform way and yeah
> > I could do that in pure perl with some of the portable pack/unpack
> > commands and some byte twiddling, but that's going to be slow and so
> > I'll then end up maintaining two pieces of code, so I was thinking I
> > could compile perl to run in little-endian mode.
> from `perldoc -f pack`:
> pack TEMPLATE,LIST
> n An unsigned short in "network" (big-endian) order.
> N An unsigned long in "network" (big-endian) order.
> v An unsigned short in "VAX" (little-endian) order.
> V An unsigned long in "VAX" (little-endian) order.
> (These 'shorts' and 'longs' are _exactly_ 16 bits and
> _exactly_ 32 bits, respectively.)
> maybe that will suffice? it will pack/unpack in the respective byte
> order on any platform, no byte twiddling needed.
There's a big note about how they decided not to tackle floats
* Real numbers (floats and doubles) are in the native
machine format only; due to the multiplicity of float‐
ing formats around, and the lack of a standard "net‐
work" representation, no facility for interchange has
been made. This means that packed floating point data
written on one machine may not be readable on another −
even if both use IEEE floating point arithmetic (as the
endian‐ness of the memory representation is not part of
the IEEE spec). See also perlport.
Personally I think that's a cop out. The java people figured it
On the other hand, what is it I hear people say when someone
complains about a lacking feature? Oh yeah.. "send code". Well, maybe I
More information about the Pdx-pm-list