In attempting to upgrade ASDF, I have broken its operation.
This work-around has not been helpful. https://stackoverflow.com/q/45043190/8770050
Here is the problem, (and Quicklisp seems to be working OK)
CL-USER> (ql:quickload :quickproject) ; Evaluation aborted on #<ASDF-2.26:LOAD-SYSTEM-DEFINITION-ERROR #x213E199E>.
CL-USER> (asdf:asdf-version) "3.3.2"
CL-USER> *features* (:SWANK :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :OS-UNIX :QUICKLISP :ASDF2 :ASDF-UNICODE :CM :SAL :METACLASSES :ASDF :READLINE :REGEXP :SYSCALLS :I18N :LOOP :COMPILER :CLOS :MOP :CLISP :ANSI-CL :COMMON-LISP :LISP=CL :INTERPRETER :SOCKETS :GENERIC-STREAMS :LOGICAL-PATHNAMES :SCREEN :FFI :GETTEXT :UNICODE :BASE-CHAR=CHARACTER :PC386 :UNIX)
My Lisp and Emacs versions, on Ubuntu 16.04, are
$ clisp --version GNU CLISP 2.49 (2010-07-07) (built on allspice.buildd [127.0.1.1])
Emacs version GNU Emacs 24.5.1 (i686-pc-linux-gnu, GTK+ Version 3.18.9) of 2017-09-21 on lgw01-amd64- 050, modified by Debian
Any suggestions on repairing or upgrading my ASDF, gratefully received.
Here is the problem, (and Quicklisp seems to be working OK)
CL-USER> (ql:quickload :quickproject) ; Evaluation aborted on #<ASDF-2.26:LOAD-SYSTEM-DEFINITION-ERROR #x213E199E>.
if you want to get help you'll need to copy-paste the actual error and the backtrace.
On Tue, 2019-09-03 at 11:23 +0200, Attila Lendvai wrote:
Here is the problem, (and Quicklisp seems to be working OK)
CL-USER> (ql:quickload :quickproject) ; Evaluation aborted on #<ASDF-2.26:LOAD-SYSTEM-DEFINITION-ERROR #x213E199E>.
if you want to get help you'll need to copy-paste the actual error and the backtrace.
.quicklisp/ has a new asdf.lisp pasted from ASDF upgrade somewhere
$ ll .quicklisp/
drwxrwxr-x 7 usr usr 4096 Feb 2 2019 ./ drwxr-xr-x 83 usr usr 4096 Sep 3 20:39 ../ -rw-r--r-- 1 usr usr 1873589 Sep 3 22:22 asdf.fas -rw-r--r-- 1 usr usr 1460069 Sep 3 22:22 asdf.lib -rw-rw-r-- 1 usr usr 675466 Feb 1 2019 asdf.lisp -rw-r--r-- 1 usr usr 198729 May 12 2017 asdfold.lisp drwxrwxr-x 3 usr usr 4096 May 12 2017 cache/ -rw-r--r-- 1 usr usr 838 May 12 2017 client-info.sexp drwxrwxr-x 3 usr usr 4096 May 12 2017 dists/ drwxrwxr-x 2 usr usr 4096 May 12 2017 local-projects/ drwxrwxr-x 2 usr usr 4096 May 12 2017 quicklisp/ -rw-r--r-- 1 usr usr 5054 May 12 2017 setup.lisp drwxrwxr-x 2 usr usr 4096 May 12 2017 tmp/
the *inferior-lisp* sign-on says the ASDF is from .quicklisp/
Welcome to GNU CLISP 2.49 (2010-07-07) http://clisp.cons.org/ Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 ... Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
;; Loading file /home/usr/.clisprc.lisp ... ;; Loading file /home/usr/quicklisp/setup.lisp ... ;; Loaded file /home/usr/quicklisp/setup.lisp ;; Compiling file /home/usr/.quicklisp/asdf.lisp ... ; Renamed old ASDF package away to ASDF-2.26 ;; Wrote file /home/usr/.quicklisp/asdf.fas 0 errors, 0 warnings ;; Loading file /home/usr/.quicklisp/asdf.fas ... WARNING: Replacing method #<STANDARD-METHOD (#<STANDARD-CLASS NOT-IMPLEMENTED-ERROR> #<BUILT-IN-CLAS .. .. etc
Backtrace is here. The item 10 looks interesting ..
Error while trying to load definition for system bordeaux-threads from pathname /home/usr/quicklisp/dists/quicklisp/software/bordeaux-threads-v0.8.6/bordeaux- threads.asd: EVAL: undefined function ASDF0::VERSION<= [Condition of type ASDF-2.26:LOAD-SYSTEM-DEFINITION-ERROR]
Restarts: 0: [REINITIALIZE-SOURCE-REGISTRY-AND-RETRY] Retry finding system bordeaux-threads after reinitializing the source-registry. 1: [ABORT] Give up on "quickproject" 2: [RETRY] Retry SLIME REPL evaluation request. 3: [*PROCESS-INPUT] Continue reading input. 4: [ABORT] Return to SLIME's top level. 5: [CLOSE-CONNECTION] Close SLIME connection. --more--
Backtrace: 0: <1/706> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK> [704] frame binding variables (~ = dynamically): | ~ *DEBUGGER-HOOK* <--> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK> 1: <1/701> #<SYSTEM-FUNCTION INVOKE-DEBUGGER> 1 [700] frame binding variables (~ = dynamically): | ~ SYSTEM::*PRIN-STREAM* <--> #<UNBOUND> 2: <1/689> #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1-1-1> - #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1-1-1> 3: <1/685> #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1> [685] unwind-protect frame 4: [682] catch frame for tag SYSTEM::DONE-SIGNALING 5: <1/680> #<SYSTEM-FUNCTION SIGNAL> 1 [679] frame binding variables (~ = dynamically): | ~ *PRINT-READABLY* <--> NIL 6: <1/673> #<SYSTEM-FUNCTION ERROR> [672] frame binding variables (~ = dynamically): | ~ SYSTEM::*ACTIVE-RESTARTS* <--> (#S(RESTART :NAME ASDF-2.26::REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :TEST #<COMP.. 7: <1/660> #<COMPILED-FUNCTION SYSTEM::CHECK-VALUE> - ASDF0::VERSION<= 8: [654] EVAL frame for form (ASDF0::VERSION<= "3.1" (ASDF/UPGRADE:ASDF-VERSION)) 9: <1/651> #<SPECIAL-OPERATOR OR> [650] EVAL frame for form (OR (ASDF0::VERSION<= "3.1" (ASDF/UPGRADE:ASDF-VERSION))) 10: <1/647> #<SPECIAL-OPERATOR UNLESS> [645] EVAL frame for form (UNLESS (OR (ASDF0::VERSION<= "3.1" (ASDF/UPGRADE:ASDF- VERSION))) (ERROR "You need ASDF >= 3.1 to load this system correctly.")) 11: <1/637> #<SYSTEM-FUNCTION SYSTEM::READ-EVAL-READER> 3 [634] frame binding variables (~ = dynamically): | ~ SYSTEM::*READING-STRUCT* <--> NIL 12: <1/616> #<SYSTEM-FUNCTION READ> [612] unwind-protect frame 13: <1/554> #<COMPILED-FUNCTION LOAD> [545] frame binding variables (~ = dynamically): | ~ *DEFAULT-PATHNAME-DEFAULTS* <--> #P"" 14: <1/535> #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1-2> - #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1-2> 15: [534] handler frame for conditions ERROR 16: [528] unwind-protect frame 17: <1/524> #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1> - #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF-1> 18: <1/522> #<COMPILED-FUNCTION ASDF-2.26::CALL-WITH-SYSTEM-DEFINITIONS> - #(NIL "bordeaux-threads" #P"/home/usr/quicklisp/dists/quicklisp/software/bordeaux- threads-v0.8.6/bordeaux-threads.asd") 19: <1/519> #<COMPILED-FUNCTION ASDF-2.26::LOAD-SYSDEF> - NIL 20: <1/503> #<COMPILED-FUNCTION #:|1866 1894 (DEFMETHOD FIND-SYSTEM (# &OPTIONAL #) ...)- 166-1-1-1|> - #<COMPILED-FUNCTION #:|1866 1894 (DEFMETHOD FIND-SYSTEM (# &OPTIONAL #) ...)-166-1- 1-1|> 21: <1/498> #<COMPILED-FUNCTION ASDF-2.26::CALL-WITH-SYSTEM-DEFINITIONS> - NIL 22: <1/494> #<COMPILED-FUNCTION #:|1866 1894 (DEFMETHOD FIND-SYSTEM (# &OPTIONAL #) ...)- 166-1-1|> <2/494> #<STANDARD-GENERIC-FUNCTION ASDF-2.26:FIND-SYSTEM> - #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUT.. 23: <1/491> #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-RECURSE> - "bordeaux-threads" 24: <1/485> #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-RECURSE> - "cl-fad" 25: <1/479> #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-RECURSE> - #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-1> 26: <1/477> #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-1> - #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY-1> 27: <1/471> #<COMPILED-FUNCTION QL-DIST::CALL-WITH-CONSISTENT-DISTS> - #(#(#(NIL "quickproject") ..) ..) 28: <1/466> #<COMPILED-FUNCTION QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY> - #(#(#(NIL "quickproject") NIL) NIL) 29: <1/454> #<COMPILED-FUNCTION QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES> - #<COMPILED-FUNCTION QUICKLISP-CLIENT::QL> 30: <1/451> #<COMPILED-FUNCTION QUICKLISP-CLIENT::QL> .. etc
Others might have some more fruitful input, but I would suggest if using something else than GNU CLISP is an option at all, do it. It's an implementation with significant less support than say ccl or sbcl.
/andreas
On 3 Sep 2019, at 6:33, Andreas Davour wrote:
Others might have some more fruitful input, but I would suggest if using something else than GNU CLISP is an option at all, do it. It's an implementation with significant less support than say ccl or sbcl.
I'm going to second this. We try to test ASDF on clisp, but it's quite hard, since there's no authoritative release process that I can identify (note the 9 year old banner message on startup of your clisp). So I don't know what to test on, and *I do not have time to build implementations from source solely in order to test them.*
Quicklisp packages an ancient version of ASDF (six years old AFAICT). You should try at all costs *not to load this*, but to use a more up-to-date version, either grabbing it from our site or (hopefully) packaged with your CL implementation. It looks like the version from Quicklisp might be loaded first, and then ASDF is trying to upgrade itself, causing this error. Have your `.clisprc` (or whatever it's called) load an up-to-date ASDF *first*, and this problem should go away, since ASDF will not downgrade itself.
I wish Xach would get rid of this old version of ASDF, but there's some reason he won't, which may have to do with bad blood between him and Faré...
On Tue, 2019-09-03 at 09:08 -0500, Robert Goldman wrote:
On 3 Sep 2019, at 6:33, Andreas Davour wrote: Others might have some more fruitful input, but I would suggest if using something else than GNU CLISP is an option at all, do it. It's an implementation with significant less support than say ccl or sbcl. I'm going to second this. We try to test ASDF on clisp, but it's quite hard, since there's no authoritative release process that I can identify (note the 9 year old banner message on startup of your clisp). So I don't know what to test on, and I do not have time to build implementations from source solely in order to test them. Quicklisp packages an ancient version of ASDF (six years old AFAICT). You should try at all costs not to load this, but to use a more up-to-date version, either grabbing it from our site or (hopefully) packaged with your CL implementation. It looks like the version from Quicklisp might be loaded first, and then ASDF is trying to upgrade itself, causing this error. Have your .clisprc (or whatever it's called) load an up-to-date ASDF first, and this problem should go away, since ASDF will not downgrade itself. I wish Xach would get rid of this old version of ASDF, but there's some reason he won't, which may have to do with bad blood between him and Faré...
That's given me something to go on. I'll try a recent ASDF earlier in the path. I have SBCL also, and use it. CLISP should really come to the party, perhaps Xach also. We just want to use this stuff. Thank you, gentlemen.
CLISP has adopted ASDF 3 a few years back in their source code repo (currently at 3.1.7 from 2016), but since they haven't released since 2010 and many distributions stick to the "latest release", CLISP often comes with no ASDF, or sometimes an ancient version of ASDF from 2011, at which point Quicklisp installs its own ancient version of ASDF 2.26 from 2012.
Upgrading from 2.26 to 3.x is only supported if done very early in the build. If for some reason you're doing it mid-build, things are going to break badly. I recommend using a recent Lisp with a recent ASDF. If you really need CLISP rather than say SBCL or CCL, please use a recent checkout rather than the "so stable it's dead" release from 2010.
Another potential hack is to replace the ~/quicklisp/asdf.lisp by a recent one and clear the quicklisp cache (in ~/quicklisp/cache/ I presume but I'm not sure). Or, if CLISP comes with an asdf.fas somehow, replace it with one compile-file'd from a recent ASDF.
Happy hacking!
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org — Question authority! — Yeah, says who?
Working now, with a new ASDF 3.3.2
Now loading asdf.lisp before Quicklisp in the ~/.clisprc.lisp file.
So, this line at the top; (load (compile-file #P"~/.quicklisp/asdf.lisp"))
And I see Faré answered this same question elsewhere back in 2016.
Many thanks to all.
; SLIME 2.19 CL-USER> (ql:quickload :quickproject) To load "quickproject": Load 1 ASDF system: quickproject ; Loading "quickproject" [package alexandria.1.0.0]........................ [package bordeaux-threads]........................ [package cl-fad].................................. [package path].................................... [package html-template]........................... [package quickproject]. (:QUICKPROJECT)
CL-USER>
On Tue, Sep 3, 2019 at 11:56 PM adam ahcnz@orcon.net.nz wrote:
Working now, with a new ASDF 3.3.2
Latest release is 3.3.3.
So, this line at the top; (load (compile-file #P"~/.quicklisp/asdf.lisp"))
Nope. This will compile each and every time. Just compile it once with compile-file. Then, (load (compile-file-pathname #P"...")) it once with compile-file.
—♯ƒ • François-René Rideau If all values are relative, then cannibalism is a matter of taste. — Leo Strauss
On Wed, 2019-09-04 at 11:33 -0400, Faré wrote:
..
Nope. This will compile each and every time. Just compile it once with compile-file. Then, (load (compile-file-pathname #P"...")) it once with compile-file.
Understood and fixed per your suggestion.
Thanks also for earlier suggestions, will move to SBCL soonest.
Applied hack for bug in Quicklisp, https://github.com/xach/quickproject/issues/19
and original app is now working almost perfectly,
; SLIME 2.19 CL-USER> (ql:quickload :quickproject) To load "quickproject": Load 1 ASDF system: quickproject ; Loading "quickproject"
(:QUICKPROJECT) CL-USER> (quickproject:make-project "test-project3") WARNING: Coercing "test-project3" to directory "test-project3" CL-USER>