[Cc to flexi-streams-devel]
On Mon, 20 Nov 2006 21:50:16 +0000, "Luís Oliveira" <luismbo(a)gmail.com> wrote:
> Hmm, are you supposed to be able to write a sequence of octets onto
> a flexi-stream with element-type character? I can't tell from the
> documentation, though it apparently it works on most Lisps but
> CLISP. If so, what exactly is the element-type for?
Several Lisps have "bivalent" streams where you can write octets as
well as characters to the same stream regardless of its element type.
(I'd say that in this case the element type is just some kind of
"hint" provided by the person who sets it.) If I were to decide,
flexi streams would also be bivalent - FLEXI-STREAMS is flexible
enough to support that (note the superclasses of FLEXI-INPUT-STREAM,
for example), but apparently CLISP isn't.
I'm not sure if anything in the ANSI spec (or in the Gray streams
specification) explicitely forbids bivalent streams. If that's the
case, at least LispWorks, AllegroCL, and SBCL are non-confirming, but
I like their behaviour. My personal opinion is that CLISP's Gray
stream implementation is simply suboptimal.