On 22 Jun 2018, at 23:55, Stas Boukarev wrote:
On Fri, Jun 22, 2018 at 5:13 PM Robert Goldman <rpgoldman@sift.info> wrote:I have a library that provides
DEF-UNIMPLEMENTED
as a macro for defining stub functions. When you compile a file with unimplemented functions, you get a warning of the typeFOO:UNIMPLEMENTED-STUB
in my libraryFOO
.I'd like to put in an asdf system definition a file spec something like this:
(:file "file-with-stubs" :method (:around (o c) (handler-bind ((foo:unimplemented-stub #'(lambda (c) (print c) (muffle-warning c)) (call-next-method)))
but, of course, the package
foo
doesn't exist when this is read (although I could put(asdf:load-system "foo")
upstream of the enclosing defsystem).This isn't a case that's nicely consistent with Faré's hack for translating strings or keyword symbols, nor does it seem easy to use
find-symbol
for this purpose.You could still use FIND-SYMBOL:(handler-bind ((error (lambda (c) (when (typep c (find-symbol x :foo)))))) (a))
That's a good point, and effectively what I ended up doing. But it's certainly not pleasing, because we end up doing our own type dispatch, on top of that which is built into CL with handler-bind
. Still, this might be the best I can do.
thanks,
r