On Mon, Sep 21, 2015 at 7:15 PM, Robert Dodier robert.dodier@gmail.com wrote:
Thanks a lot to everybody for the advice. I think I've made some progress. I've attached a patch showing the initial changes I've made, and with this much I can load a trivial system into Maxima.
Do NOT patch ASDF, unless there's a bug. Create an extension and use defsystem-depends-on, as documented in the manual.
I'm working with asdf.lisp 2.26 which is packaged with Quicklisp, since the larger goal is to use Quicklisp to download and install Maxima packages.
Do NOT use ASDF 2.26. It is not supported, and internals are somewhat incompatible. ASDF 3 is available on every single maintained implementation.
Incidentally I'm working with Clisp 2.49.
CLISP isn't currently maintained. Unless you need it due for portability reasons, or love it enough to become its new maintainer, I suggest to use another implementation. If you *must* use CLISP, use our script tools/install-asdf.lisp to overwrite its ASDF with the latest ASDF release (currently 3.1.5).
I've run into some strangeness, maybe someone can explain what's going on.
(1) (asdf:load-system :foo) seems to always cause files to be compiled. That's kind of puzzling.
This typically means that your input-files or output-files are wrong. Your code is not even wrong: it's missing a method on output-files. ASDF 2.26 has also deep unfixable bugs regarding incremental build, and it is unsupported. Use ASDF 3.
(2) The first time asdf.lisp is loaded, Quicklisp writes asdf.fas into its own cache. The second time, I get an error about ASDF:OOS. Any ideas? Here's the error:
Use ASDF 3.
*** - EVAL: undefined function ASDF:OOS The following restarts are available: USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'ASDF:OOS). RETRY :R2 Retry STORE-VALUE :R3 Input a new value for (FDEFINITION 'ASDF:OOS). SKIP :R4 skip (LET # #) RETRY :R5 retry (LET # #) STOP :R6 stop loading file /home/robert/quicklisp/setup.lisp SKIP :R7 skip (LET # #) RETRY :R8 retry (LET # #) STOP :R9 stop loading file /home/robert/.clisprc.lisp Break 1 QL-SETUP[4]>
This is completely useless. Give us a backtrace. From CCL or SBCL, not CLISP. While compiling ASDF and/or your extension with extra debugging information.
Also, don't use (component-pathname c) in your perform method. Use (first (input-files o c)), so users can suitable modify or extend your methods.
Please come back after you've read the manual (notably section 7) and actually tried to apply the recipes there. And/or at least cargo culted from an existing extension.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org A politician divides mankind into two classes: tools and enemies. — Nietzsche