Saturday, November 26, 2011

abcl-servlet unleashed to unsuspecting public...

In the scratching the itch department, one of the current problems I face is debugging vast quantities of code in various Java application servers to which I cannot easily attach a debugger. Surprising, I found that I could attach SLIME to a resident ABCL process in such application servers. Currently, I am in the process of extending that slim SLIME wedge to be able to use its interactive Lisp REPL as a poor man's debugger by dynamically specifying aspects of the program execution which I can use to access trace information.

The DSL I am working towards would allow the following statement, executed interactively in a running JVM to record the arguments and return value of the normalizeURI() function:

(defmethod :around org.example.normalizeURI (url url)
(push args)
(call-next-method)
(push result)
(return result))

A very early draft of code which runs against abcl-1.1.0-dev has been released for forks and comments which only gets as far as establishing the SLIME REPL inside a Tomcat container can be found at http://bitbucket.org/easye/abcl-servlet. At its base, this code is an incorporation of the code from abcl-web pioneered by Alex Mizrahi and then restored by Erik Hülsman.