Edi Weitz writes:
 > 
 > Hi!
 > 
 > I have a long-running application on a web server which uses CMUCL and
 > mod_lisp - I can get a Lisp listener via detachtty. Yesterday I had to
 > make some changes to the application while it was running (which is of
 > course one of the cool things about using Lisp). Specifically, I had
 > to redefine a couple of :AROUND and :AFTER methods, i.e. I attached to
 > the listener and entered something like this
 > 
 >   * (defmethod slot-unbound :around ((class t)
 >                                      (bet bet)
 >                                      (slot-name (eql 'involvedp)))
 >       (setf (slot-value bet 'involvedp)
 >               (something-blabla)))
 > 
 >   #<Standard-Method SLOT-UNBOUND :AROUND (T BET (EQL INVOLVEDP)) {4914655D}>
 > 
 > Now, my question is: How do I compile this from the listener? Is this
 > in fact possible? Which syntax do I have to use?

What I'd do is (funcall (compile nil `(lambda () ,+)))

 > (I ended up putting the new definitions into a file and then used
 > COMPILE-FILE and LOAD but this seems to be a bit clumsy and not the
 > Right Way[TM].)

This is actually what I do in practice.  I keep the files around with
names like patch-2004-01-27.lisp, so I can see exactly what it was
that I fed the application.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               

Reply via email to