On Sat, Nov 20, 2010 at 11:36 AM, Alessio Stalla alessiostalla@gmail.com wrote:
On Sat, Nov 20, 2010 at 11:04 AM, Erik Huelsmann ehuels@gmail.com wrote:
Hi Alessio,
I think the key is a bit higher up; something must be causing quicklisp to load precompiler.lisp, but not the actual compiler.
Higher up, there's an expression (fset ...); I'm not sure, but I think that might be returning the expression, not the function name.
Yes, I see. Actually if I understand it correctly it will only be used in file compilation; yet it could cause problems with "strange" forms like (setq foo (defun ...)) where foo will be set to the function object instead of the function name, only when loading the FASL, not when loading the source. I'll experiment a bit with this and if I'm right, I'll commit another fix.
With r13045 (http://trac.common-lisp.net/armedbear/changeset/13045) I committed the change to DEFUN in compiled files, so now it should return the function name in all cases. I verified this doesn't break any unit test in our suites. If you want, I can backport both this change and the previous one (13032) to the 0.23 branch.