<div> - Implemented SEQUENCE-STREAMs, which are input/output streams defined on some</div><div>   specialized array type. The functions to create them are</div><div>     (ext:make-sequence-input-stream vector &key :start :end :external-format)</div>

<div>     (ext:make-sequence-output-stream vector &key :external-format)</div><div>        * If the array is a string, it is a character stream</div><div>        * If the array is specialized over integers and EXTERNAL-FORMAT is NIL</div>

<div>          the stream is a binary stream.</div><div>        * Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.</div><div>   Reading and writing does not preserve the original word size of the array</div>

<div>   but rather threads the array as a collection of bytes (octets), writing</div><div>   sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make</div><div>   sure that you choose the right endianness to match the shape of the array.</div>

<div><br></div><div>Some examples</div><div><br></div><div><div>> (let ((a (make-array 16 :element-type '(unsigned-byte 8) :initial-element 3 :fill-pointer 0)))</div><div>    (with-open-stream (s (ext:make-sequence-output-stream a))</div>

<div>      (write-byte 2 s) (write-byte 3 s))</div><div>    a)</div><div><br></div><div>#(2 3)</div><div>> (let ((a (make-array 16 :element-type '(unsigned-byte 8) :initial-element 3 :fill-pointer 0)))</div><div>    (with-open-stream (s (ext:make-sequence-output-stream a :external-format :utf-8))</div>

<div>      (write-char #\a s) (write-char #\b s) (write-char (code-char 1024) s))</div><div>    a)</div><div><br></div><div>#(97 98 208 128)</div><div>> (let ((a (make-array 16 :element-type '(unsigned-byte 8) :initial-element 97)))</div>

<div>    (with-open-stream (s (ext:make-sequence-input-stream a))</div><div>      (read-byte s)))</div><div><br></div><div>97</div><div>> (let ((a (make-array 16 :element-type '(unsigned-byte 8) :initial-element 97)))</div>

<div>    (with-open-stream (s (ext:make-sequence-input-stream a :external-format :latin-1))</div><div>      (read-char s)))</div><div><br></div><div>#\a</div></div><div><br></div><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>

c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>