Apparently, it is incorrect to try to update ASDF from a system where an older version of ASDF has already been loaded from which some DEFUNs (e.g. SYSTEM-SOURCE-FILE) have since converted to DEFGENERICs. This means that if you have an old clisp from debian and try to use the newer ASDF, you're out of luck.
As a remedy, could we prepend the defpackage in asdf.lisp with the following?
(eval-when (:compile-toplevel :load-toplevel) (let ((package (find-package '#:asdf))) (when package (delete-package package))))
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Instead of loving your enemies, treat your friends a little better. -- Edgar Watson Howe
---------- Forwarded message ---------- From: Sam Steingold sds@gnu.org Date: 2009/7/8 Subject: Re: can't compile-file then load asdf.lisp To: Faré fahree@gmail.com Cc: clisp-list@lists.sourceforge.net
Faré wrote:
If I grab the latest asdf.lisp from git and try to compile-file it
the one I have comes from http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf/ and it compiles and loads just fine.
then load it, I get a weird error message.
WARNING: DEFGENERIC: redefining function SYSTEM-SOURCE-FILE in /dev/shm/tmp/fare/xcvb-0.320/dependencies/asdf/asdf.fas, was defined in top-level *** - ENSURE-GENERIC-FUNCTION: SYSTEM-SOURCE-FILE does not name a generic function
this means that you have defined a regular function (with DEFUN) and now are trying to redefine it with DEFGENERIC. since asdf.lisp does not do that, you, apparently, have this function defined somewhere else.