[Armedbear-devel] controlling from where ASDF loads .abcl files

Mark Evenson evenson at panix.com
Wed Apr 23 06:20:25 UTC 2014

On 23 Apr 2014, at 06:26, Robert Dodier <robert.dodier at gmail.com> wrote:

> Hi,
> I'm trying to use ABCL + ASDF to compile and load Maxima.
> It used to work so I guess there have just been some small
> changes to ABCL and/or ASDF that I need to take account of.

This should be purely in the realm of ASDF, which can change quite a bit in small ways.  

> After (require 'asdf) and (setf asdf:*central-registry*
> '(*default-pathname-defaults*)) (which wasn't necessary before,
> but that doesn't matter),

I think it is a real bad idea to set *CENTRAL-REGISTRY* to a special, and I
suspect this is the root of your problems.

I’ve grown to appreciate the use the ASDF’s configuration DSL, especially under
Windows where symlinking things into *CENTRAL-REGISTRY* locations doesn’t work
very well.

To use:

1.  Create <file:~/.config/common-lisp/source-registry.conf.d/>

2.  Create a file in this directory named “maxima.conf” containing the following form:

	(:tree (:home “tmp/maxima-5.33.0/“))

This should pick up all ASDF definitions recursively under
<file:~/tmp/maxima-5.33.0/> upon startup.

> I find that (asdf:operate 'asdf:load-op
> :maxima) fails with an error like this:
> #<THREAD "interpreter" {EE920}>: Debugger invoked on condition of type
>  File not found:
> /home/robert/.cache/common-lisp/abcl-1.3.0-fasl42-linux-x86
> /home/robert/tmp/maxima-5.33.0/src/binary-abcl/maxima-package.abcl
> But maxima-package.abcl does exist in
> /home/robert/tmp/maxima-5.33.0/src/binary-abcl,
> and (since the current working directory is /home/robert
> /tmp/maxima-5.33.0/src)
> (load "binary-abcl/maxima-package.abcl") succeeds.
> Then I can select option 2 (accept) and continue to the next
> file, autoconf-variables.abcl, load it by hand, continue to the
> next, nregex.abcl, etc etc.
> /home/robert/.cache/common-lisp doesn't exist. How can I tell ASDF to
> look in the same place that it actually wrote the file?

ASDF should be doing this for you.  It certainly does for me in a wide variety
of cases (including inside JAR archives like abcl-contrib).

> Thanks for any advice. I found some ASDF documentation 
> but couldn't figure it out.

The [ASDF manual included with ABCL][1] always refers to the version shipping
with ABCL.  Understanding things can be a bit of a slog sometimes, but in
general the manual has been getting quite better recently.

[1]:  http://abcl.org/trac/browser/trunk/abcl/doc/asdf/asdf.texinfo

"A screaming comes across the sky.  It has happened before but there is nothing 
to compare to it now."

Armedbear-devel mailing list
Armedbear-devel at common-lisp.net

More information about the armedbear-devel mailing list