[Lispweb] debugging and serving web pages at the same time in lisp (specifically clisp)

Richard Newman r.newman at reading.ac.uk
Thu Oct 5 05:08:41 CDT 2006


> After playing a bit with araneida's example - it seem that with  
> clisp this is not possible - because (host-serve-events) blocks  
> repl.  I didn't try this on SBCL, but assuming it has multi-threads  
> I can see it being a possibility.

You should still be able to (trace) your functions and Araneida's  
(e.g., handle-request-response). You could also wrap h-r-r, or modify  
your methods, to preserve or print the request object, which will  
allow you to replay a request.

> Another way I can think of is that he built an abstraction layer  
> that allow him to work from repl to reproduce a problem discovered  
> through a web server request, so he can work in session to fix the  
> problem, but I can't see how he can update the running clisp image  
> without having to kill the current web server session (assuming he  
> has something that works similar to araneida) and reload code.
>
> Please let me know if I am missing something obvious.  While I  
> don't know if I agree with the practice of directly changing  
> production code in real-time, the concept is intriguing, and  
> certainly would be great to know how it's done.

I've done it — just play around with your methods and functions while  
serving pages. If you have appropriate conditionals (e.g., you only  
generate the in-development page for your username) you can even do  
this while serving pages to users. Risky, sure, but it works.

-R





More information about the lispweb mailing list