I'd like to add SLIME support for compiling entire (multi-file) systems, and am finding that each backend handles compilation slightly differently.
I believe I need to add a new function compile-system-for-emacs that looks not unlike compile-{file,string}-for-emacs : set up compiler condition hook stuff, then call (asdf:operate 'asdf:oop systemname)
You'd think I would be able to do that once instead of n times for n backends, but apparently not. I don't have n lisps installed nor the will to test them all either. So, I have (committage imminent)
- created a new GF call-with-compilation-hooks and a macro with-compilation-hooks that expands into a call to it
(It's implemented for SBCL and CMUCL, because they already have and use with-compilation-hooks)
- created a compile-system-for-emacs for SBCL which uses with-compilation-hooks. I believe the contents are portable CL and will work on any backend, if the maintainer of that backend has implemented call-with-compilation-hooks. If anyone is found copying compile-system-for-emacs into their own backend file and hacking it, they'd better have a good reason.
Let's not needlessly duplicate entities, hey?
-dan