>>>>> "ew" == Edi Weitz <[EMAIL PROTECTED]> writes:

  ew> I have a long-running application on a web server which uses CMUCL and
  ew> mod_lisp - I can get a Lisp listener via detachtty. Yesterday I had to
  ew> make some changes to the application while it was running (which is of
  ew> course one of the cool things about using Lisp). Specifically, I had
  ew> to redefine a couple of :AROUND and :AFTER methods
  
  ew> #<Standard-Method SLOT-UNBOUND :AROUND (T BET (EQL INVOLVEDP)) {4914655D}>
  ew> 
  ew> Now, my question is: How do I compile this from the listener? Is this
  ew> in fact possible? Which syntax do I have to use?

I'm not sure how things worked in CMUCL 18e, but in the current code
base (go Gerd!) you will find that the method is automatically
compiled even when entered at the listener.

In CVS CMUCL, you can use the following non-standard way of designating
the function object that corresponds to a specific method:

   (function (pcl:fast-method method-name qualifiers specializers))

,----
| CL-USER> (disassemble (function (pcl:fast-method slot-unbound :around (t bet (eql 
involvedp)))))
| 4877EC48:       .entry (pcl:fast-method slot-unbound :around (t bet (eql 
involvedp)))(pcl::.pv-cell. pcl::.next-method-call. class bet slot-name) ; (function
|                                                                                      
                                                             ;  (t ..))
|       60:       pop     dword ptr [ebp-8]
|       63:       lea     esp, [ebp-32]
|       66:       mov     edi, [ebp-16]
| 
|       69:       cmp     ecx, 20
|       6C:       jne     L0
|       6E:       mov     [ebp-12], edi
|       71:       mov     edx, esp             ; No-arg-parsing entry point
|       73:       sub     esp, 12
|       76:       mov     eax, [#x4877EC40]    ; #<FDEFINITION object for 
something-blabla>
|       7C:       xor     ecx, ecx
|       7E:       mov     [edx-4], ebp
|       81:       mov     ebp, edx
|       83:       call    dword ptr [eax+5]
`----

I wouldn't count on this being a stable interface, though. 

-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

Reply via email to