I'm getting a weird behaviour--when executing a macro while compiling a
file using ASDF, SBCL generates the following output:
debugger invoked on a SB-INT:BUG in thread #<THREAD "initial thread"
{A68B5F9}>: failed AVER: "(NULL CURRENT)"
This is probably a bug in SBCL itself. (Alternatively, SBCL might
have been corrupted by bad user code, e.g. by an undefined Lisp
operation like (FMAKUNBOUND 'COMPILE), or by stray pointers from
alien code or from unsafe Lisp code; or there might be a bug in the
OS or hardware that SBCL is running on.) If it seems to be a bug in
SBCL itself, the maintainers would like to know about it. Bug
reports are welcome on the SBCL mailing lists, which you can find at
<http://sbcl.sourceforge.net/>.
Oddly, when compiling by hand the bug doesn't appear to rear its ugly
head--and of course loading from the FASL is no problem.
I've instrumented my macro (both the macro itself and the code
generated), and the crash happens at the very end, when the generated
code is returned. As I noted, this only happens when compiling through
ASDF--it compiles cleanly with COMPILE-FILE, so it's possible it's a
strange ASDF bug.
My macros returns a bunch of PROGNs containing various definitions,
including a bunch of DEF-CLP-FUNCTIONs, a DEFMETHOD and a
DEF-VIEW-CLASS, as well as SETFing a couple of hash table (which I made
sure are created at compile time using EVAL-WHEN).
This is with SBCL 0.9.14.
--
Robert Uhl <http://public.xdi.org/=ruhl>
Every cloud has a silver lining but every year lightning kills hundreds
of people who are looking for it. --Oliver Barker
|