quicklisp-client
quicklisp-client copied to clipboard
ql:quickload makes (wrong) load decisions about dependency without loading the main ASDF system.
As discussed on armedbear-devel (http://thread.gmane.org/gmane.lisp.asdf.devel/2916/focus=2780)
When I (ql:quickload :modf) quicklisp loads closer-mop without even downloading modf from internet. This is visible on ABCL, because on ABCL closer-mop is not a dependency for modf and when closer-mop is loaded it fails.
Snippet form modf.asd
:depends-on (:alexandria
#-abcl :closer-mop
:iterate)
So, the preconditions: closer-mop installed, modf is not installed, quicklisp 2013-01-28.
Steps to reproduce with ABCL:
# install quicklisp
wget http://beta.quicklisp.org/quicklisp.lisp
java -jar abcl.jar --noinit --nosystem --batch --load quicklisp.lisp --eval "(quicklisp-quickstart:install :path \"quicklisp2/\")" --eval "(ql-dist:install-dist \"http://beta.quicklisp.org/dist/quicklisp/2013-01-28/distinfo.txt\" :replace t :prompt nil)"
# fetch closer-mop (doesn't matter that this closer-mop doesn't work on ABCL, we only want to install it)
# works the same if closer-mop is installed with another lisp:
java -jar abcl.jar --noinit --nosystem --batch --load quicklisp2/setup.lisp --eval "(ql:quickload :closer-mop)"
# finally, reproduce the problem
java -jar abcl.jar --noinit --nosystem --noinform --load quicklisp2/setup.lisp
CL-USER(1): (ql:quickload :modf)
Error loading C:/Users/anton/unpacked/abcl/abcl-bin-1.1.0/quicklisp2/dists/quicklisp/software/closer-mop-20130128-darcs/closer-mop.asd at line 43
....