From: Martin A. <ma...@at...> - 2001-10-23 09:16:31
|
Martin Atzmueller wrote: > > > > > >>>>> "Martin" == Martin Atzmueller <ma...@at...> writes: > > > > Martin> We could go for the approach taken by ACL: > > Martin> - have two new generic functions STREAM-READ-SEQUENCE and > > Martin> STREAM-WRITE-SEQUENCE: > > Martin> These would by called by READ-SEQUENCE, and WRITE-SEQUENCE, if called > > Martin> on a gray stream. > > Martin> And, > > >> What would be the best way to efficiently read the bytes (characters, > > >> maybe?) out of a Gray stream? > > Martin> they could also be specialized on whatever is appropriate for the > > Martin> gray-stream at hand. > > [...] > Well, I'm not really happy with the path that CMUCL might have taken > there, if that code is correct, because CMUCL has > > stream-read-sequence SEQ stream start end, > ^^^ > whereas I would like > > stream-read-sequence STREAM SEQ start end. > ^^^^^^ ^^^ > IMHO that is more conformant with the other gray-stream methods. > Each of these has the STREAM parameter coming first. > And, according to ACL documentation, ACL does it this way, too. > > Well, I've implemented STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE, > and both READ-SEQUENCE and WRITE-SEQUENCE should call the gray-streams > methods now. Attached is a patch, that makes STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE available. Both READ-SEQUENCE and WRITE-SEQUENCE should now call these methods on a gray-stream. The generic methods have default-methods specialized on FUNDAMENTAL-CHARACTER-INPUT- and FUNDAMENTAL-CHARACTER-OUTPUT-STREAM. I've also added some code to test for this in gray-streams.impure.lisp. Cheers, Martin -- Martin Atzmueller <ma...@at...> |