Re: [Scheme-reports] Standard Feature Identifiers are too low-level John Cowan (04 Jan 2012 20:14 UTC)

Re: [Scheme-reports] Standard Feature Identifiers are too low-level John Cowan 04 Jan 2012 20:13 UTC

Marc Feeley scripsit:

> The more troublesome endianness aspect is that the ARM allows
> switching the endianness at run time (by flipping a flag in the CPU's
> status register).  Moreover the ARM stores code in little-endian
> format and data in either little-endian or big-endian format (IIRC).
> So what do the little-endian and big-endian features refer to, code or
> data?  It is a mess that simple cond-expand feature identifiers cannot
> address well.

I agree it's a mess.  Surely data would be the thing that required
testing if anything did, however.

> In that case, why not defer the specification of these feature
> identifiers to R7RS-large, if and when they are actually needed?  I
> dislike standardizing things that have not been tested and whose
> usefulness hasn't been demonstrated.

Well, as I say, the ticket has been filed.

> Regarding bytevectors and endianness, Gambit avoids the endianness
> issue by separating the different uniform vector types (e.g. you
> can't treat a u16vector as a u8vector).  I'd be interested to see
> performance figures for your bytevector library proposal and how much
> performance is gained by having access to the endianness through
> a cond-expand, rather than just testing it at run time (i.e. (= 0
> (u8vector-ref '#u16(1) 0))).

Surely anything that avoids run-time tests (other than the unavoidable
argument domain test) can only be a performance win.

In any case, cond-expand is not required to make use of my proposal,
as all implementations must provide native, BE, and LE endianness.
The *implementation* of my proposal does depend on knowing the native
endianness, however, though this could be determined once and for all
at startup time and a hook (function pointer, at the C level) patched
to point to the correct routine for the running processor.

I note that it's trivial to layer SRFI 4 over my proposal, provided
that client code does not depend on the disjointness of the SRFI 4
vector types.  (My proposal does not currently include any lexical syntax.)

--
John Cowan    cowan@ccil.org    http://ccil.org/~cowan
If a traveler were informed that such a man [as Lord John Russell] was
leader of the House of Commons, he may well begin to comprehend how the
Egyptians worshiped an insect.  --Benjamin Disraeli

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports