From: Rudi S. <ru...@us...> - 2006-01-19 15:15:15
|
Update of /cvsroot/sbcl/sbcl/doc/manual In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27041/doc/manual Modified Files: streams.texinfo Log Message: 0.9.8.45 Briefly document bivalent streams. Index: streams.texinfo =================================================================== RCS file: /cvsroot/sbcl/sbcl/doc/manual/streams.texinfo,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- streams.texinfo 17 Aug 2004 18:34:29 -0000 1.2 +++ streams.texinfo 19 Jan 2006 15:15:07 -0000 1.3 @@ -2,17 +2,47 @@ @comment node-name, next, previous, up @chapter Extensible Streams -SBCL supports @dfn{Gray streams}, user-overloadable CLOS classes whose -instances can be used as Lisp streams (e.g. passed as the first -argument to @code{format}). Additionally, the bundled contrib module -@dfn{sb-simple-streams} implements a subset of the Franz Allegro -simple-streams proposal. +SBCL supports various extensions of ANSI Common Lisp streams. + +@table @strong +@item Bivalent Streams +A type of stream that can read and write both @code{character} and +@code{(unsigned-byte 8)} values. + +@item Gray Streams +User-overloadable CLOS classes whose instances can be used as Lisp +streams (e.g. passed as the first argument to @code{format}). + +@item Simple Streams +The bundled contrib module @dfn{sb-simple-streams} implements a subset +of the Franz Allegro simple-streams proposal. + +@end table @menu +* Bivalent Streams:: * Gray Streams:: * Simple Streams:: @end menu +@node Bivalent Streams +@section Bivalent Streams + +A @dfn{bivalent stream} can be used to read and write both +@code{character} and @code{(unsigned-byte 8)} values. A bivalent +stream is created by calling @code{open} with the argument @code{:element-type +:default}. On such a stream, both binary and character data can be +read and written with the usual input and output functions. + +@c Horrible visual markup +@quotation +Streams are @emph{not} created bivalent by default for performance +reasons. Bivalent streams are incompatible with +@code{fast-read-char}, an internal optimization in sbcl's stream +machinery that bulk-converts octets to characters and implements a +fast path through @code{read-char}. +@end quotation + @node Gray Streams @section Gray Streams |