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.
After (require 'asdf) and (setf asdf:*central-registry* '(*default-pathname-defaults*)) (which wasn't necessary before, but that doesn't matter), 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-ERROR 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?
Thanks for any advice. I found some ASDF documentation but couldn't figure it out.
best,
Robert Dodier
_______________________________________________ Armedbear-devel mailing list Armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
23.04.2014, 08:27, "Robert Dodier" robert.dodier@gmail.com:
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.
After (require 'asdf) and (setf asdf:*central-registry* '(*default-pathname-defaults*)) (which wasn't necessary before, but that doesn't matter), 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-ERROR 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?
Thanks for any advice. I found some ASDF documentation but couldn't figure it out.
best,
Robert Dodier
I have been testing ASDF 3.1.0.116 and noticed that this version of ASDF fixes trivial-features: http://common-lisp.net/project/cl-test-grid/asdf/asdf-diff-41.html
As you can see, ABCL 1.2.0, 1.2.1, 1.3.0 fail trivial-features with similar error:
COMMON-LISP:FILE-ERROR: File not found: /home/testgrid/cl-test-grid/work-dir/agent/test-runs/20140418063041-abcl-1.3.0-svn-14688-fasl42-linux-x86/fasl/test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/tests/utsname.abcl
When ASDF 3.1.0.116 is used instead of the ASDF version shipped with these ABCLs, then trivial-features start working.
So, maybe it was some bug in ASDF wich is fixed now?
BTW, what are .abcl files?
Best regards, - Anton
_______________________________________________ Armedbear-devel mailing list Armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
On 25 Apr 2014, at 13:44, Anton Vodonosov avodonosov@yandex.ru wrote:
BTW, what are .abcl files?
They are the ABCL fasl format.
From the [User Manual][1]
"The CL:COMPILE-FILE interface emits a packed fasl format whose Pathname has the type "abcl". These fasls are operating system neutral byte archives packaged by the zip compression format which contain artifacts whose loading CL:LOAD understands.”
[1]: http://abcl.org/releases/1.3.0/abcl-20140315a.pdf
On 25 Apr 2014, at 13:44, Anton Vodonosov avodonosov@yandex.ru wrote:
When ASDF 3.1.0.116 is used instead of the ASDF version shipped with these ABCLs, then trivial-features start working.
So, maybe it was some bug in ASDF wich is fixed now?
[abcl-1.3.1-rc-2][1] and [abcl trunk][2] both contain ASDF-3.1.0.103 which seem to also successfully load trivial-features. And, yes, I believe that “some bug” has been fixed with ASDF, but I have never tried to bisect the exact cause.
[1]: http://abcl.org/svn/branches/1.3.1/ [2]: http://abcl.org/svn/trunk/abcl/
I have tested manually - can not reproduce the trivial-features-tests load error on any ABCL.
It only happened during test-gird-testing, when output-pathname-translations were overriden to place all fasl file to a temp directory. Probably the error happaned due to some interaction between cffi-grovel, asdf output-translations and cl-test-grid overriding the translations.
I suppose my situation is unrelated the Maxima load error Robert Dodier reported.
Sorry for the noise. Please ignore the trivial-features-tests for now.
Best regards, - Anton
Thanks for taking a look at it, Anton. I think the problem was that maxima.asd defined a nonstandard place for .abcl files to be written, and then ASDF didn't look in that place to load them. At one time (couple of years ago) it worked, but I guess ASDF has changed since then. No problem there. I've figured out how to make it work again, which I posted in another message.
best,
Robert Dodier
Robert Dodier wrote:
Thanks for taking a look at it, Anton. I think the problem was that maxima.asd defined a nonstandard place for .abcl files to be written, and then ASDF didn't look in that place to load them. At one time (couple of years ago) it worked, but I guess ASDF has changed since then. No problem there. I've figured out how to make it work again, which I posted in another message.
best,
Robert Dodier
For the record, *no* system should define the destination for its compiled files. Fare's design principle for ASDF (which I wholeheartedly endorse) is that the system developer knows what the files are, so she gets to specify that. But the system developer does *not* know about the user's machine, so the user (through an API that ASDF exposes) gets to specify where the output files are to live.
If maxima tries to control the location of the compiled files, that's a bug in its ASDF system definition, and you should report that to the maintainers. If they need help with anything related to that, feel free to point them to me for assistance.
best, r
On 23 Apr 2014, at 06:26, Robert Dodier robert.dodier@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-ERROR 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
On 2014-04-23, Mark Evenson evenson@panix.com wrote:
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.
It was suggested by a tutorial. Maybe it worked better for a previous version of ASDF. I also tried setting it to an explicit path -- same error as before (not finding the .abcl file that it successfully generated).
Create a file in this directory named “maxima.conf” containing the following form:
(:tree (:home “tmp/maxima-5.33.0/“))
OK, when I do that, I get a complaint about "invalid source registry". I gather that it needs to have an inheritance spec (I forget now why that seems to be the case). Changed the file content to
(:source-registry (:tree (:home “tmp/maxima-5.33.0/src/“)) :inherit-configuration)
and now the invalid source registry error has gone away but I still get "component :MAXIMA not found". The maxima.asd is in that directory.
I guess there is an asdf-devel mailing list -- I'll try them now. Sorry for the bother.
best
Robert Dodier
_______________________________________________ Armedbear-devel mailing list Armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
armedbear-devel@common-lisp.net