From: <to...@te...> - 2002-09-12 14:36:15
|
Hello all, When compiling or evaluating function constants, such as in (eval `(lambda () (funcall ,(lambda () nil)))) I get the following error message: debugger invoked on condition of type SB-INT:BUG: failed AVER: "(LEAF-HAS-SOURCE-NAME-P LEAF)" If this is a real bug, the problem could be that PROPAGATE-FUN-CHANGE tries to fetch LEAF-SOURCE-NAME without checking that leaf has a source name (via LEAF-HAS-SOURCE-NAME-P). The enclosed patch puts the test before the access. (I'm assuming that SBCL allows function constants as evaluable forms; if it shouldn't, then would a better fix be to have a more informative error message?) I haven't touched the code that dispatches depending on whether leaf-source-name is a symbol in PROPAGATE-FUN-CHANGE; although allowing setf functions seemed to work ok in a couple of quick tests I ran, I'd want to look into it a bit more, due to the fact that I don't actually understand what I'm doing. Hope this is of some help, --Tony |