Early this year I did a small GUI frontend for the SBCL sampling profiler with CLIM. It wasn't really a success for many reasons, and even I mostly stopped using it after a couple of months.

  • CLIM didn't offer some widgets that would've been really useful for this program.

  • And likewise sb-sprof-ui didn't really make use of any of the cool stuff that CLIM offers, like presentations and DAG rendering.

  • I never really figured out how to reasonably implement features like isearch.

  • CLIM isn't the environment that I normally use. Loading it up to inspect profiling results was always a real pain.

Recently I needed to do some profiling where the call graph inspection abilities of sb-sprof-ui would've been useful, but would also needed to touch the code to add features like disassembling anonymous functions from the call graph view. I just didn't have the stomach for tackling CLIM again, so I turned instead to a more tasteful alternative: Emacs Lisp :-)

But seriously, since I do all other Lisp programming activities with Slime, why not add a better profiling UI to it instead of messing with external programs. From what I'd heard about elisp I thought it'd be a pain in the ass to program with, but it was actually a lot of fun. Even if the elisp programming environment isn't quite as nice as Slime is, and this being my first elisp program I probably did many things the hard way.

Merging this into the main Slime repository will require properly thinking about what the profiler interface should look like, and probably also rewriting the elisp parts to use elisp idiomatically. Since I don't have time to do that right now, you can download the current version from here. (No longer there, but here).

PS. Even if I didn't have a lot of success with CLIM, the Climacs guys are clearly being really productive with it.