[trivial-gray-streams-devel] [cl-plus-ssl-devel] trivial-gray-streams becomes a separate project

Chun Tian (binghe) binghe.lisp at gmail.com
Fri Jul 15 01:14:50 UTC 2011


Hi, Anton

I'm a little busy these days in other Lisp projects. I still believe the MCL/SCL support code works, I'll prove this in short future. If no others help me on this, I suggest holding this issue for now.

Regards,

Chun Tian (binghe)

在 2011-7-15,07:44, Anton Vodonosov 写道:

> Hello, 
> 
> Chun Tian, what do you think about all this?
> 
> Best regards,
> - Anton
> 
> 25.06.2011, 16:51, "Anton Vodonosov" <avodonosov at yandex.ru>:
>> Hello.
>> 
>> BTW, there is a trivial-gray-streams-devel list...
>> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/trivial-gray-streams-devel
>> 
>> What I understand:
>> 
>> This code provides Gray streams implementation for MCL and SCL
>> (these project do not implement the Gray streams proposal)
>> 
>> So far trivial-gray-streams only provided compatibility layer between
>> different Gray streams implementations (all the Lisps supported have
>> Gray streams). trivial-gray-streams only re-export the gray stream function
>> provided by exisging Lisps from trivial-gray-streams package and make
>> some fixes/unifications as in case of stream-read-sequence, which is
>> absent in Gray streams proposal and therefore sometimes is implemented differently
>> in different lisps.
>> 
>> If we commit this code, trivial-gray-streams will get somewhat
>> different purpose - in addition to be a compatibility layer on top
>> of Gray streams, it will also provide the Gray streams for MCL and SCL.
>> 
>> Maybe it's better to commit the Gray streams to MCL and SCL...
>> But if it's problematic, why not commit it to trivial-gray-streams...
>> at least there will be no incompatibilities between trivial-gray-stream
>> and MCL/SCL Gray streams (but we will need to care about
>> compatibility between MCL/SCL Gray streams and MCL/SCL internals
>> used in the Gray streams implementation).
>> 
>> Have you tried to suggest the Gray streams implementation to MCL and SCL?
>> 
>> I don't have MCL (and mac to run it), and I can't say I read and understood every line
>> of the code, but if you say the code works...
>> 
>> Could you explain the issue pointed by Daniel, when the gray stream function calls a
>> function from CCL package, and the function in the CCL package calls the Gray streams
>> function? How it is resolved? By inheriting from fundamental-stream and redefining
>> one of the functions or how?
>> 
>> (defmethod stream-file-position ((stream fundamental-stream))
>>   (ccl:stream-position stream))
>> 
>> (defmethod (setf stream-file-position) (position (stream fundamental-stream))
>>   (ccl:stream-position stream position))
>> 
>> (defmethod ccl:stream-position ((stream fundamental-stream) &optional position)
>>   (if position
>>     (setf (stream-file-position stream) position)
>>     (stream-file-position stream)))
>> 
>> Best regards,
>> - Anton
>> 
>> 25.06.2011, 15:58, "Chun Tian (binghe)" <binghe.lisp at gmail.com>;:
>> 
>>>  A updated version of mcl-gray-streams.lisp which could make chunga work on MCL, it replaces CLOSE and OPEN-STREAM-P into generic functions.
>>> 
>>>  在 2011-6-25,13:53, Chun Tian (binghe) 写道:
>>>>   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
>>>  _______________________________________________
>>>  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
>> 
>> _______________________________________________
>> trivial-gray-streams-devel mailing list
>> trivial-gray-streams-devel at common-lisp.net
>> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/trivial-gray-streams-devel





More information about the trivial-gray-streams-devel mailing list