Re: [Scheme-reports] Bytevectors should be called u8vectors Andy Wingo (19 Jul 2012 19:21 UTC)

Re: [Scheme-reports] Bytevectors should be called u8vectors Andy Wingo 19 Jul 2012 19:18 UTC

On Thu 19 Jul 2012 02:16, Alex Shinn <alexshinn@gmail.com> writes:

> Personally, I was baffled by the R6RS decision to
> include the "v" prefix.  Given a SRFI-4-style API it
> makes sense to use a single common prefix like "v"
> since you otherwise need to take up too many
> characters for #u8, #s16, #f32, #c64, etc.  Given
> an R6RS-style API there's only one blob type and
> this isn't needed.  The syntax change here just
> seemed gratuitous.

Another data point :)  Guile implements SRFI-4 vectors on top of R6RS
bytevectors.  So we do support the #u32(...) read syntax.  It is useful
to be able to specify a vector as a sequence of u32's without regard to
endianness.

So what happens is that bytevectors in Guile have an additional field
indicating their presentation type.  For example, if "v" was created via
#u32(...)  or `list->u32vector' or what have you, then that type is u32,
and they print as u32's.  Regardless one can use any SRFI-4 or
bytevector accessor on any uniform vector.

The ability to address SRFI-4 vectors with accessors of different data
types can inhibit optimization, in the TBAA sense.  Oh well.  I don't
find strict SRFI-4 vectors to be that useful, myself.  I pack bytes more
than I do scientific computing.

Cheers,

Andy
--
http://wingolog.org/

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