[Openmcl-devel] Openmcl 060826 and Slime CVS...

Gary Byers gb at clozure.com
Sat Sep 2 15:41:46 PDT 2006


I've caught a few of these things (missing methods for new/"basic"
stream classes); some of the changes in CVS now are hard to bootstrap,
but I'll try to put up new snapshots in a few days.

(Honest.  A few days.  Not several weeks.)

On Sat, 2 Sep 2006, Phil wrote:

> That did the trick and I've been *very* pleasantly surprised by the
> across-the-board speed-up I'm seeing (due to the stream changes, I
> assume)   in 1.1.  Re: the ASDF update in 1.1, there's a code snippet
> at http://www.cliki.net/asdf (under "Stale fasls?") for automatic
> recompilation of fasls which will make this a non-event.  The only
> bit of breakage I've seen so far is with CXML:
>
> ;Compiler warnings for "/Users/phil/.asdf-install-dir/site/
> cxml-2006-01-05/xml/xmlns-normalizer.lisp" :
> ;   Variable QNAME not ignored, in (SAX:START-ELEMENT (NAMESPACE-
> NORMALIZER T T T T)).
> ;   Variable QNAME not ignored, in (SAX:END-ELEMENT (NAMESPACE-
> NORMALIZER T T T)).
> ; Warning: COMPILE-FILE warned while performing #<COMPILE-OP NIL
> #x8B0E4E6> on #<CLOSURE-SOURCE-FILE "xmlns-normalizer" #x8B07356>.
> ; While executing: #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP
> ASDF:CL-SOURCE-FILE)>, in process listener(1).
> > Error: No applicable method for args:
> >         (#<BASIC-FILE-BINARY-INPUT-STREAM ("/Users/phil/.asdf-
> install-dir/site/cxml-2006-01-05/catalog.dtd"/39) #x8D53156> #<VECTOR
> 3912 type (UNSIGNED-BYTE 8), simple> 0 3912)
> >         to #<STANDARD-GENERIC-FUNCTION CCL:STREAM-READ-VECTOR
> #x80AF186>
> > While executing: #<CCL::STANDARD-KERNEL-METHOD NO-APPLICABLE-
> METHOD (T)>, in process listener(1).
> > Type :GO to continue, :POP to abort, :R for a list of available
> restarts.
> > If continued: Skip loading init file.
> > Type :? for other options.
> 1 > (:b)
> (F01359A0) : 0 (FUNCALL #'#<#<CCL::STANDARD-KERNEL-METHOD NO-
> APPLICABLE-METHOD (T)>> #<STANDARD-GENERIC-FUNCTION CCL:STREAM-READ-
> VECTOR #x80AF186> [...]) 48
> (F01359C0) : 2 (READ-SEQUENCE #(0 0 0 0 0 ...) #<BASIC-FILE-BINARY-
> INPUT-STREAM ("/Users/phil/.asdf-install-dir/site/cxml-2006-01-05/
> catalog.dtd"/39) #x8D53156> [...]) 268
> (F01359D0) : 3 (FUNCALL #'#<Anonymous Function #x8D54366>) 312
> (F01359F0) : 4 (FUNCALL #'#<Anonymous Function #x802C1DE>
> #<CCL::FASLSTATE #x73863E>) 48
> (F0135A00) : 5 (%FASLOAD "/Users/phil/.asdf-install-dir/site/
> cxml-2006-01-05/xml/catalog.dfsl" [...]) 852
> (F0135A30) : 7 (FUNCALL #'#<CCL::ATTEMPT-LOAD> #P"/Users/phil/.asdf-
> install-dir/site/cxml-2006-01-05/xml/catalog.dfsl") 44
> (F0135A40) : 8 (%LOAD #P"/Users/phil/.asdf-install-dir/site/
> cxml-2006-01-05/xml/catalog.dfsl" NIL 'CCL::%FASL-READ-
> BYTE :ERROR :DEFAULT) 1160
> (F0135A70) : 10 (LOAD #P"/Users/phil/.asdf-install-dir/site/
> cxml-2006-01-05/xml/catalog.dfsl" [...]) 656
> (F0135A90) : 11 (FUNCALL #'#<#<STANDARD-METHOD ASDF:PERFORM
> (ASDF:LOAD-OP ASDF:CL-SOURCE-FILE)>> #<LOAD-OP NIL #x8B0F506>
> #<CLOSURE-SOURCE-FILE "catalog" #x8B06C16>) 168
> (F0135AB0) : 13 (%%BEFORE-AND-AFTER-COMBINED-METHOD-DCODE '(NIL
> #<#> . 1613578)) 624
> (F0135AD0) : 15 (%%STANDARD-COMBINED-METHOD-DCODE '(NIL # #<#>)
> 1613578) 148
> (F0135AF0) : 17 (OPERATE 'ASDF:LOAD-OP :CXML [...]) 912
> (F0135B20) : 19 (CALL-CHECK-REGS 'ASDF:OPERATE [...]) 72
> (F0135B30) : 20 (LOAD-FROM-STREAM #<BASIC-FILE-CHARACTER-INPUT-STREAM
> ("/Users/Shared/local/src/Languages/Lisp/Lisp-Dev/pb-setup.lisp"/11)
> #x83D573E> #<RESTART ASDF:RETRY #x7388A6>) 224
> (F0135B40) : 21 (%LOAD #P"/Users/Shared/local/src/Languages/Lisp/Lisp-
> Dev/pb-setup.lisp" 'CCL::%RESTARTS% #<RESTART ASDF:ACCEPT
> #x7388CE> :ERROR :DEFAULT) 1520
> (F0135B70) : 23 (LOAD "/Users/Shared/local/src/Languages/Lisp/Lisp-
> Dev/pb-setup.lisp" [...]) 656
> (F0135BA0) : 25 (CALL-CHECK-REGS 'LOAD [...]) 72
> (F0135BB0) : 26 (LOAD-FROM-STREAM #<BASIC-FILE-CHARACTER-INPUT-STREAM
> ("/Users/phil/openmcl-init.lisp"/10) #x83D5CB6> #<RESTART CCL::SKIP-
> LOAD #x738A3E>) 224
> (F0135BC0) : 27 (%LOAD #P"/Users/phil/openmcl-init.lisp" NIL
> #<RESTART CCL::RETRY-LOAD #x738A16> NIL :DEFAULT) 1520
> (F0135BF0) : 29 (LOAD "home:openmcl-init" [...]) 656
> (F0135C10) : 30 (STARTUP-CCL [...]) 428
> (F0135C40) : 31 (FUNCALL #'#<Anonymous Function #x811022E>) 56
> (F0135C60) : 33 (FUNCALL #'#<Anonymous Function #x81553CE>) 364
> (F0135C80) : 34 (RUN-PROCESS-INITIAL-FORM #<PROCESS listener(1)
> [Active] #x83D3EAE> '(#)) 400
> (F0135CC0) : 36 (FUNCALL #'#<Anonymous Function #x810AD16> #<PROCESS
> listener(1) [Active] #x83D3EAE> '(#)) 152
> (F0135CE0) : 37 (FUNCALL #'#<Anonymous Function #x80FE696>) 172
> 1 >
>
> On Aug 27, 2006, at 9:31 AM, Gary Byers wrote:
>
>> I botched it; the new ADD-AUTO-FLUSH-STREAM function and the function
>> that actually does the background FORCE-OUTPUTing both assume that
>> the stream in question is of a particular type (and make assumptions
>> about what kind of locking/sharing mechanism the stream uses and
>> how that's implemented.)  The streams that SLIME wants to have
>> flushed periodically are more abstract Gray streams and they seem
>> to implement their own locking protocol.
>>
>> Until I can get that straightened out, the better advice for SLIME
>> users would be to (temporarily) change swank-openmcl.lisp to avoid
>> using the automatic flushing at all.  That would mean changing
>> anything
>> that originally did:
>>
>>    (push stream ccl::*auto-flush-streams*)
>>
>> to do nothing if the new (but broken) function CCL:ADD-AUTO-FLUSH-
>> STREAM
>> is defined (something like):
>>
>>   (if (fboundp 'ccl::add-auto-flush-stream)
>>     nil; temporarily avoid the auto-flush mechanism
>>     (push stream ccl::*auto-flush-streams*))
>>
>> You do lose a little bit if the stream's output doesn't get flushed
>> out to Emacs periodically; something like
>>
>> (progn (print (fact 1000)) (sleep 5))
>>
>> wouldn't display the buffered output (or at least might not display
>> all of it) until the SLEEP finished and the REPL tried to read
>> something.
>>
>> Sorry for both the botch and the confusion it may cause.
>>
>>
>> On Sun, 27 Aug 2006, Alberto Santini wrote:
>>
>>> Hello.
>>>
>>> I read the release notes about the changes in the streams.
>>>
>>> I use the latest version of Slime (CVS) and I don't know how to
>>> apply the changes suggested for Slime 2.0, when there
>>> was a different implementation (with a defmethod).
>>>
>>> Now the latest code in Slime (swank-openmcl, ~line 182) is:
>>>
>>> (defimplementation make-stream-interactive (stream)
>>>  (typecase stream
>>>    (ccl:fundamental-output-stream
>>>     (push stream ccl::*auto-flush-streams*))))
>>>
>>>
>>> I tried
>>>
>>> (defimplementation make-stream-interactive (stream)
>>>  (typecase stream
>>>    (ccl::add-auto-flush-stream stream
>>>     (push stream ccl::*auto-flush-streams*))))
>>>
>>> but it seems it doesn't work, Slime aborts the connection and I don't
>>> see any error message.
>>>
>>> Any help?
>>>
>>> Thanks in advance,
>>> Alberto Santini
>>> _______________________________________________
>>> Openmcl-devel mailing list
>>> Openmcl-devel at clozure.com
>>> http://clozure.com/mailman/listinfo/openmcl-devel
>>>
>>>
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list