[cl-plus-ssl-devel] trivial-gray-streams becomes a separate project
Chun Tian (binghe)
binghe.lisp at gmail.com
Sat Jun 25 05:53:04 UTC 2011
Hi, David
I'm not sure, but I think it's possible to change MCL's any behavior by just loading new code into it, to make it looking like having native support of Gray Streams.
And I think the whole purpose is just to make those packages which depends on trivial-gray-streams running well on MCL, and I'll try to analyze any issue in this process and figure out a solution to fix it.
For example, today, when I can try to load Chunga (depend by Hunchentoot) into MCL, I found it try to define a method on OPEN-STREAM-P, which is a standard CL ordinary function but generic function in MCL:
(defmethod open-stream-p ((stream chunked-stream))
"A chunked stream is open if its underlying stream is open."
(open-stream-p (chunked-stream-stream stream)))
To make above code runs on MCL, MCL's own function OPEN-STREAM-P need to be overridden, and this is quite possible and I'm just working on it.
Any way, I hope my initial work being merged first to have a base point, and then people like you and me could have more patches to fix any rest issue in it.
--binghe
在 2011-6-25,00:18, David Lichteblau 写道:
> Quoting Chun Tian (binghe) (binghe.lisp at gmail.com):
>> The MCL support code was written by Terje Norderhaug with my little
>> modifications, it's partly confirmed by my own projects which depend on
>> trivial-gray-streams and running on MCL; the SCL support code is from IOlib
>> project, untested (because I don't have a valid license), but I believe it
>> should work, at least no harm to other platforms.
>
> Cool, thanks. Quick feedback:
>
> It looks to me like many definitions are recursive, i.e. the gray
> streams methods call MCL internals, which call gray steams methods.
>
> trivial-gray-streams does not attempt to offer user code the ability to
> call low-level STREAM-foo functions. Rather, it aims to allows stream
> implementors to define STREAM-foo methods such that the CL stream system
> will end up calling that implementation.
>
> I.e. the method CCL:STREAM-POSITION seems correct in calling
> STREAM-FILE-POSITION, but the reverse method on STREAM-FILE-POSITION
> that calls CCL:STREAM-POSITION is meaningless and should either say
> (error "not implemented")
> or the method could be left out entirely, leaving it to the Lisp to
> signal the condition that no method is applicable.
>
> (If I'm reading the code right.)
>
>
> d.
>
> _______________________________________________
> cl-plus-ssl-devel mailing list
> cl-plus-ssl-devel at common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cl-plus-ssl-devel
More information about the cl-plus-ssl-devel
mailing list