[trivial-gray-streams-devel] trivial-gray-stream-mixin in cl+ssl
Anton Vodonosov
avodonosov at yandex.ru
Sat Mar 9 23:54:28 UTC 2013
Hello James,
Thanks for the report.
Indeed, unpleasant subtle issue. You are on CLISP or CCL, right?
I am thinking how to fix it in trivial-gray-streams. If it will be impossible/difficult,
then I will just fix cl+ssl as you suggests.
Forwarding to both mailing lists for now.
Best regards,
- Anton
10.03.2013, 00:10, "James M. Lawrence" <llmjjmll at gmail.com>:
> Hello, I noticed that cl+ssl has the same issue that I recently had
> with gray streams.
>
> (defclass my-stream
> (trivial-gray-streams:fundamental-binary-input-stream
> trivial-gray-streams:fundamental-binary-output-stream
> trivial-gray-streams:trivial-gray-stream-mixin)
> ())
>
> (defmethod trivial-gray-streams:stream-write-byte
> ((stream my-stream) byte)
> (format t "~&write-byte ~s~%" byte))
>
> (defmethod trivial-gray-streams:stream-write-sequence
> ((stream my-stream) seq start end &key)
> (format t "~&write-sequence ~s ~s ~s~%" seq start end))
>
> (defun test ()
> (write-sequence #(3 4 5) (make-instance 'my-stream)))
>
> CL-USER> (test)
> write-byte 3
> write-byte 4
> write-byte 5
>
> The mixin should be the first superclass. With that change, we get
>
> CL-USER> (test)
> write-sequence #(3 4 5) 0 3
>
> Best,
> James
More information about the trivial-gray-streams-devel
mailing list