1 @node Extensible Streams
2 @comment node-name, next, previous, up
3 @chapter Extensible Streams
5 SBCL supports various extensions of ANSI Common Lisp streams.
9 A type of stream that can read and write both @code{character} and
10 @code{(unsigned-byte 8)} values.
13 User-overloadable CLOS classes whose instances can be used as Lisp
14 streams (e.g. passed as the first argument to @code{format}).
17 The bundled contrib module @dfn{sb-simple-streams} implements a subset
18 of the Franz Allegro simple-streams proposal.
28 @node Bivalent Streams
29 @section Bivalent Streams
31 A @dfn{bivalent stream} can be used to read and write both
32 @code{character} and @code{(unsigned-byte 8)} values. A bivalent
33 stream is created by calling @code{open} with the argument @code{:element-type
34 :default}. On such a stream, both binary and character data can be
35 read and written with the usual input and output functions.
37 @c Horrible visual markup
39 Streams are @emph{not} created bivalent by default for performance
40 reasons. Bivalent streams are incompatible with
41 @code{fast-read-char}, an internal optimization in sbcl's stream
42 machinery that bulk-converts octets to characters and implements a
43 fast path through @code{read-char}.
49 @include class-sb-gray-fundamental-stream.texinfo
50 @include fun-sb-gray-stream-advance-to-column.texinfo
51 @include fun-sb-gray-stream-clear-input.texinfo
52 @include fun-sb-gray-stream-clear-output.texinfo
53 @include fun-sb-gray-stream-finish-output.texinfo
54 @include fun-sb-gray-stream-force-output.texinfo
55 @include fun-sb-gray-stream-fresh-line.texinfo
56 @include fun-sb-gray-stream-line-column.texinfo
57 @include fun-sb-gray-stream-line-length.texinfo
58 @include fun-sb-gray-stream-listen.texinfo
59 @include fun-sb-gray-stream-peek-char.texinfo
60 @include fun-sb-gray-stream-read-byte.texinfo
61 @include fun-sb-gray-stream-read-char-no-hang.texinfo
62 @include fun-sb-gray-stream-read-char.texinfo
63 @include fun-sb-gray-stream-read-line.texinfo
64 @include fun-sb-gray-stream-read-sequence.texinfo
65 @include fun-sb-gray-stream-start-line-p.texinfo
66 @include fun-sb-gray-stream-terpri.texinfo
67 @include fun-sb-gray-stream-unread-char.texinfo
68 @include fun-sb-gray-stream-write-byte.texinfo
69 @include fun-sb-gray-stream-write-char.texinfo
70 @include fun-sb-gray-stream-write-sequence.texinfo
71 @include fun-sb-gray-stream-write-string.texinfo
74 @comment node-name, next, previous, up
75 @section Simple Streams
76 @include sb-simple-streams/sb-simple-streams.texinfo