Revision of SRFI 66 available Michael Sperber (18 Apr 2005 16:07 UTC)
If you like "u8vector" ... Michael Sperber (15 May 2005 13:15 UTC)
[srfi-66] List of bytes to byte-vector Jens Axel Søgaard (15 May 2005 18:14 UTC)
Re: If you like "u8vector" ... Thomas Bushnell BSG (15 May 2005 20:03 UTC)
Re: If you like "u8vector" ... Per Bothner (17 May 2005 04:19 UTC)
Re: If you like "u8vector" ... Michael Sperber (17 May 2005 19:35 UTC)
Re: If you like "u8vector" ... Per Bothner (17 May 2005 20:09 UTC)
Re: If you like "u8vector" ... Marc Feeley (17 May 2005 12:11 UTC)

Re: If you like "u8vector" ... Per Bothner 17 May 2005 04:19 UTC

>>>>>>"Moiself" == Michael Sperber <xxxxxx@informatik.uni-tuebingen.de> writes:
>
>
> Moiself> I haven't done anything yet wrt. the naming issue---that's still
> Moiself> pending.  I'd like to hold a little poll.  For that, it'd be helpful
> Moiself> if the camp in favor of "u8vector" could suggest names for what's
> Moiself> currently READ-BYTE, READ-BYTES, and READ-BYTES-N in SRFI 68.

One factor is that if you have binary I/O you might want to read other
kinds of binary numbers and just byte arrays:  A picture might be an
array of 32-bit integers, for example.  The "java.nio" package
introduced in JDK 1.4 does support reading/writing uniform arrays that
are not bytes, so this is not a complete fanciful idea.

So using a name like read-u8-n generalizes to read-u32-n in a way that
read-byte-n doesn't.

Though I don't think I'd often read a vector of u32, I think reading a
single u32 a common operation.  Many binary files formats have 16-bit
or 32-bits values.  Of course there are byte-order issues - see below.

So I suggest renaming read-byte to read-u8.

I'm afraid I'm not sure I understand the distinction between input-bytes
and input-bytes-all:  the spec says input-bytes-all may block
indefinitely on streams connected to interactive readers, but doesn't
say that about input-bytes - is that an oversight?

A name suggestion, if I'm understanding this right:
input-bytes -> input-u8-some and input-bytes-all -> input-u8-all.
The reverse is also possible: input-some-u8 and input-all-u8.
If so: read-bytes -> read-u8-some/read-some-u8 and
read-bytes-all -> read-u8-all/read-all-u8.

We might also consider:
read-u32le/input-u32le: read a little-endian 32-bit unsigned int.
(or read-u32-le or read-u32l.)
read-u32be/input-u32be: read a big-endian 32-bit unsigned int.
Likewise for u16/s16/s32/... etc.

We might also consider:
read-u32: either read-u32le or read-u32be, depending on whether the
port is in little-endian or big-endian mode, which might be settable.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/