abcl icon indicating copy to clipboard operation
abcl copied to clipboard

Problem with quicklisp in .abclrc

Open bpecsek opened this issue 3 years ago • 6 comments

I have this in .abclrc

(require "asdf")
(require "abcl-contrib")
(asdf:load-system :quicklisp-abcl)

However, I am getting this when starting abcl (please note that the same is happening with sbcl-1.8.0) I am running it on Ubuntu 21.10

$ uname -a
Linux bpecsek-Lenovo-Y520-15IKBM 5.13.0-22-generic #22-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ ./abcl
Armed Bear Common Lisp 1.8.1-dev
Java 17.0.1 Oracle Corporation
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.166 seconds.
Startup completed in 0.851 seconds.
Error loading /home/bpecsek/.abclrc at line 4 (offset 75)
#<THREAD "interpreter" {2682A675}>: Debugger invoked on condition of type FILE-ERROR
  Cannot probe a wild pathname as a directory.
Restarts:
  0: RETRY                         Retry ASDF operation.
  1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration.
[1] CL-USER(1): 

if I type 0 here it load quicklisp properly

[1] CL-USER(1): 0
; Caught RECURSIVE-OPERATE:
;   Deprecated recursive use of (ASDF/OPERATE:OPERATE 'ASDF/LISP-ACTION:LOAD-OP '("quicklisp")) while visiting (ASDF/LISP-ACTION:LOAD-OP "quicklisp-abcl") - please use proper dependencies instead


; Compilation unit finished
;   Caught 1 WARNING condition

Loading /home/bpecsek/.abclrc completed in 8.315 seconds.
Type ":help" for a list of available commands.
CL-USER(2):

bpecsek avatar Dec 27 '21 22:12 bpecsek

I cannot duplicate: using those forms in .abclrc works for me.

Can you give the output of

:bt 99

when your debugger comes up? This should print a backtrace with potentially more information.

This sort of error seems to occur when there is an asterisk (#\*) character in a path which ABCL currently doesn't handle well as to whether this is a literal asterisk or a wild pathname component. See https://abcl.org/trac/ticket/391 for more context.

easye avatar Dec 28 '21 08:12 easye

Here you go!

$ abcl Armed Bear Common Lisp 1.8.1-dev Java 17.0.1 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.2 seconds. Startup completed in 1.06 seconds. Error loading /home/bpecsek/.abclrc at line 3 (offset 76) #<THREAD "interpreter" {3C1A83B7}>: Debugger invoked on condition of type FILE-ERROR Cannot probe a wild pathname as a directory. Restarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. [1] CL-USER(1): ```:bt 99``
(QUOTE (QUOTE :BT)) [1] CL-USER(2): 99 [1] CL-USER(3):

On Tue, 2021-12-28 at 00:26 -0800, Mark Evenson wrote:

I cannot duplicate: using those forms in .abclrc works for me. Can you give the output of ```:bt 99`` when your debugger comes up? This sort of error seems to occur when there is an asterisk (#*) character in a path which ABCL currently doesn't handle well as to whether this is a literal asterisk or a wild pathname component. See https://abcl.org/trac/ticket/391 for more context. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

bpecsek avatar Dec 29 '21 10:12 bpecsek

On Dec 29, 2021, at 11:22, Bela Pecsek @.***> wrote:

Here you go!

$ abcl Armed Bear Common Lisp 1.8.1-dev Java 17.0.1 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.2 seconds. Startup completed in 1.06 seconds. Error loading /home/bpecsek/.abclrc at line 3 (offset 76) #<THREAD "interpreter" {3C1A83B7}>: Debugger invoked on condition of type FILE-ERROR Cannot probe a wild pathname as a directory. Restarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. [1] CL-USER(1): ```:bt 99``

Unfortunately, that is not what I meant, as the Github Markdown stuff (i.e. “```” is not part of the command.

Please try

:backtrace 99

This is one of the debugger commands. All available commands can be shown via

:help

-- "No, this is not a disentanglement, but a progressive /knotting-into/."

easye avatar Dec 29 '21 10:12 easye

Sorry!:) I have repplyed from email not from the GitHub.

$ abcl Armed Bear Common Lisp 1.8.1-dev Java 17.0.1 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.198 seconds. Startup completed in 0.969 seconds. Error loading /home/bpecsek/.abclrc at line 3 (offset 76) #<THREAD "interpreter" {29F115EF}>: Debugger invoked on condition of type FILE-ERROR Cannot probe a wild pathname as a directory. Restarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. [1] CL-USER(1): :bt 99

0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<FILE-ERROR {2AB90C44}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:383) 3: org.armedbear.lisp.probe_file$pf_probe_directory.execute(probe_file.java:116) 4: org.armedbear.lisp.Symbol.execute(Symbol.java:805) 5: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 6: org.armedbear.lisp.asdf_285.execute(asdf.lisp:3208) 7: org.armedbear.lisp.Symbol.execute(Symbol.java:805) 8: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 9: org.armedbear.lisp.asdf_287.execute(asdf.lisp:3208) 10: org.armedbear.lisp.Symbol.execute(Symbol.java:840) 11: org.armedbear.lisp.LispThread.execute(LispThread.java:955) 12: org.armedbear.lisp.asdf_2557.execute(asdf.lisp:12996) 13: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:150) 14: org.armedbear.lisp.Symbol.execute(Symbol.java:854) 15: org.armedbear.lisp.LispThread.execute(LispThread.java:977) 16: org.armedbear.lisp.asdf_2567.execute(asdf.lisp:12996) 17: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:185) 18: org.armedbear.lisp.Symbol.execute(Symbol.java:885) 19: org.armedbear.lisp.LispThread.execute(LispThread.java:1026) 20: org.armedbear.lisp.asdf_2606.execute(asdf.lisp:12996) 21: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98) 22: org.armedbear.lisp.Symbol.execute(Symbol.java:805) 23: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 24: org.armedbear.lisp.asdf_2609.execute(asdf.lisp:12996) 25: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98) 26: org.armedbear.lisp.Symbol.execute(Symbol.java:805) 27: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 28: org.armedbear.lisp.asdf_2610.execute(asdf.lisp:12996) 29: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:89) 30: org.armedbear.lisp.Symbol.execute(Symbol.java:795) 31: org.armedbear.lisp.LispThread.execute(LispThread.java:881) 32: org.armedbear.lisp.asdf_2611.execute(asdf.lisp:12996) 33: org.armedbear.lisp.Symbol.execute(Symbol.java:805) 34: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 35: org.armedbear.lisp.asdf_1070.execute(asdf.lisp:8799) 36: org.armedbear.lisp.LispThread.execute(LispThread.java:897) 37: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2795) 38: (PROBE-DIRECTORY #P"/home/bpecsek/common-lisp/slime-repl sbcl") 39: (UIOP/FILESYSTEM:SUBDIRECTORIES #P"/home/bpecsek/common-lisp/") 40: (UIOP/FILESYSTEM:COLLECT-SUBDIRECTORIES #P"/home/bpecsek/common-lisp/" #<FUNCTION #<FUNCTION {728A6E88}> {728A6E88}> #<FUNCTION #<FUNCTION {BD74921}> {BD74921}> #<FUNCTION #<FUNCTION {34635C97}> {34635C97}>) 41: (ASDF/SOURCE-REGISTRY:COLLECT-SUBDIRECTORIES-ASD-FILES #P"/home/bpecsek/common-lisp/" :EXCLUDE (".bzr" ".cdv" ".git" ".hg" ".pc" ".svn" "CVS" "RCS" "SCCS" "_darcs" "_sgbak" "autom4te.cache" "cover_db" "_build" "debian") :COLLECT #<FUNCTION #<FUNCTION {3ECA6BD9}> {3ECA6BD9}>) 42: (ASDF/SOURCE-REGISTRY:REGISTER-ASD-DIRECTORY #P"/home/bpecsek/common-lisp/" :RECURSE T :EXCLUDE (".bzr" ".cdv" ".git" ".hg" ".pc" ".svn" "CVS" "RCS" "SCCS" "_darcs" "_sgbak" "autom4te.cache" "cover_db" "_build" "debian") :COLLECT #<FUNCTION #<FUNCTION {3ECA6BD9}> {3ECA6BD9}>) 43: (ASDF/SOURCE-REGISTRY:COMPUTE-SOURCE-REGISTRY NIL) 44: (ASDF/SOURCE-REGISTRY:INITIALIZE-SOURCE-REGISTRY NIL) 45: (ASDF/SOURCE-REGISTRY:ENSURE-SOURCE-REGISTRY) 46: (ASDF/SYSTEM-REGISTRY:SYSDEF-SOURCE-REGISTRY-SEARCH "asdf") 47: (#<FUNCTION #<FUNCTION {1F15ACA6}> {1F15ACA6}> ASDF/SYSTEM-REGISTRY:SYSDEF-SOURCE-REGISTRY-SEARCH) 48: (APPLY #<FUNCTION #<FUNCTION {1F15ACA6}> {1F15ACA6}> (ASDF/SYSTEM-REGISTRY:SYSDEF-SOURCE-REGISTRY-SEARCH)) 49: (MAP NIL #<FUNCTION #<FUNCTION {1F15ACA6}> {1F15ACA6}> (ASDF/PACKAGE-INFERRED-SYSTEM:SYSDEF-PACKAGE-INFERRED-SYSTEM-SEARCH ASDF/SYSTEM-REGISTRY:SYSDEF-CENTRAL-REGISTRY-SEARCH ASDF/SYSTEM-REGISTRY:SYSDEF-SOURCE-REGISTRY-SEARCH)) 50: (ASDF/SYSTEM-REGISTRY:SEARCH-FOR-SYSTEM-DEFINITION "asdf") 51: (#<FUNCTION #<FUNCTION {2EBA6024}> {2EBA6024}>) 52: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION #<FUNCTION {2EBA6024}> {2EBA6024}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 53: (ASDF/FIND-SYSTEM:LOCATE-SYSTEM "asdf") 54: (#<FUNCTION #<FUNCTION {931680}> {931680}>) 55: (APPLY #<FUNCTION #<FUNCTION {931680}> {931680}> NIL) 56: (UIOP/UTILITY:CALL-FUNCTION #<FUNCTION #<FUNCTION {931680}> {931680}>) 57: (ASDF/SESSION:CONSULT-ASDF-CACHE (ASDF/SYSTEM:FIND-SYSTEM "asdf") #<FUNCTION #<FUNCTION {931680}> {931680}>) 58: (#<FUNCTION #<FUNCTION {6DEA21E8}> {6DEA21E8}>) 59: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION #<FUNCTION {931680}> {931680}> :OVERRIDE NIL :KEY (ASDF/SYSTEM:FIND-SYSTEM "asdf") :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 60: (#<FUNCTION #<FUNCTION {5FA8D06F}> {5FA8D06F}> "asdf" NIL) 61: (APPLY #<FUNCTION #<FUNCTION {5FA8D06F}> {5FA8D06F}> ("asdf" NIL)) 62: (#<FUNCTION #<FUNCTION {226E30FE}> {226E30FE}> ("asdf" NIL)) 63: (ASDF/SYSTEM:FIND-SYSTEM "asdf" NIL) 64: (#<FUNCTION #<FUNCTION {3AD11525}> {3AD11525}> "asdf" NIL :REGISTERED NIL) 65: (APPLY #<FUNCTION #<FUNCTION {3AD11525}> {3AD11525}> ("asdf" NIL :REGISTERED NIL)) 66: (#<FUNCTION #<FUNCTION {68896F6}> {68896F6}> ("asdf" NIL :REGISTERED NIL)) 67: (#<FUNCTION #<FUNCTION {1F3A05E0}> {1F3A05E0}> ("asdf" NIL :REGISTERED NIL)) 68: (ASDF/COMPONENT:FIND-COMPONENT "asdf" NIL :REGISTERED NIL) 69: (#<FUNCTION #<FUNCTION {4C002F39}> {4C002F39}> :ASDF NIL :REGISTERED NIL) 70: (APPLY #<FUNCTION #<FUNCTION {4C002F39}> {4C002F39}> (:ASDF NIL :REGISTERED NIL)) 71: (#<FUNCTION #<FUNCTION {7ECA73A1}> {7ECA73A1}> (:ASDF NIL :REGISTERED NIL)) 72: (#<FUNCTION #<FUNCTION {3C3765A8}> {3C3765A8}> (:ASDF NIL :REGISTERED NIL)) 73: (ASDF/COMPONENT:FIND-COMPONENT :ASDF NIL :REGISTERED NIL) 74: (#<FUNCTION #<FUNCTION {73ED62CB}> {73ED62CB}> NIL :ASDF) 75: (APPLY #<FUNCTION #<FUNCTION {73ED62CB}> {73ED62CB}> (NIL :ASDF)) 76: (#<FUNCTION #<FUNCTION {3E59F268}> {3E59F268}> (NIL :ASDF)) 77: (#<FUNCTION #<FUNCTION {1323C979}> {1323C979}> (NIL :ASDF)) 78: (ASDF/COMPONENT:FIND-COMPONENT NIL :ASDF) 79: (#<FUNCTION #<FUNCTION {143EE490}> {143EE490}> ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL) 80: (APPLY #<FUNCTION #<FUNCTION {143EE490}> {143EE490}> (ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL)) 81: (#<FUNCTION #<FUNCTION {CDD37E6}> {CDD37E6}> (ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL)) 82: (#<FUNCTION #<FUNCTION {7D665EA7}> {7D665EA7}>) 83: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION #<FUNCTION {7D665EA7}> {7D665EA7}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 84: (#<FUNCTION #<FUNCTION {70832873}> {70832873}> ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL) 85: (APPLY #<FUNCTION #<FUNCTION {70832873}> {70832873}> (ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL)) 86: (ASDF/OPERATE:OPERATE ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL) 87: (APPLY ASDF/OPERATE:OPERATE ASDF/LISP-ACTION:LOAD-OP :ASDF (:VERBOSE NIL)) 88: (ASDF/OPERATE:LOAD-SYSTEM :ASDF :VERBOSE NIL) 89: (APPLY ASDF/OPERATE:LOAD-SYSTEM (:ASDF :VERBOSE NIL)) 90: (UIOP/PACKAGE:SYMBOL-CALL :ASDF :LOAD-SYSTEM :ASDF :VERBOSE NIL) 91: (ASDF/UPGRADE:UPGRADE-ASDF) 92: (#<FUNCTION #<FUNCTION {13FA5897}> {13FA5897}>) 93: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION #<FUNCTION {13FA5897}> {13FA5897}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 94: (#<FUNCTION #<FUNCTION {76FD3F09}> {76FD3F09}> ASDF/LISP-ACTION:LOAD-OP :QUICKLISP-ABCL) 95: (APPLY #<FUNCTION #<FUNCTION {76FD3F09}> {76FD3F09}> (ASDF/LISP-ACTION:LOAD-OP :QUICKLISP-ABCL)) 96: (#<FUNCTION #<FUNCTION {39A1C417}> {39A1C417}> (ASDF/LISP-ACTION:LOAD-OP :QUICKLISP-ABCL)) 97: (ASDF/OPERATE:OPERATE ASDF/LISP-ACTION:LOAD-OP :QUICKLISP-ABCL) 98: (APPLY ASDF/OPERATE:OPERATE ASDF/LISP-ACTION:LOAD-OP :QUICKLISP-ABCL NIL)

On Wed, 2021-12-29 at 02:25 -0800, Mark Evenson wrote:

On Dec 29, 2021, at 11:22, Bela Pecsek @.***> wrote:

Here you go!

$ abcl Armed Bear Common Lisp 1.8.1-dev Java 17.0.1 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.2 seconds. Startup completed in 1.06 seconds. Error loading /home/bpecsek/.abclrc at line 3 (offset 76) #<THREAD "interpreter" {3C1A83B7}>: Debugger invoked on condition of type FILE-ERROR Cannot probe a wild pathname as a directory. Restarts: 0: RETRY Retry ASDF operation. 1: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting the configuration. [1] CL-USER(1): ```:bt 99``

Unfortunately, that is not what I meant, as the Github Markdown stuff (i.e. “```” is not part of the command.

Please try

:backtrace 99

This is one of the debugger commands. All available commands can be shown via

:help

-- "No, this is not a disentanglement, but a progressive /knotting- into/."

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

bpecsek avatar Dec 29 '21 10:12 bpecsek

There is the problem:

38: (PROBE-DIRECTORY #P"/home/bpecsek/common-lisp/slime-repl sbcl")

You have a file or directory named *slime-repl sbcl* under <file:~/common-lisp/> which is causing ABCL to fail here. If you remove that file/directory or indeed rename it to something not containing asterisk characters, loading quicklisp-abcl should succeed.

Again, this is a bug in ABCL in handling asterisk characters in file names in that there is not a representation of a wildcard distinct from an asterisk. From what I remember SBCL distinguishes the two by representing wildcards as the symbol :wildcard so there is a difference between

:wildcard "slime-repl sbcl" :wildcard

and

*slime-repl sbcl*

which would be my preferred change of our implementation. Not terribly difficult to implement, but involves working in both Java and Lisp as our Pathname hierarchy starts with a Java implementation https://github.com/armedbear/abcl/blob/master/src/org/armedbear/lisp/Pathname.java that is "decorated" via various helpers expressed in Lisp.

easye avatar Dec 29 '21 10:12 easye

Thanks. It did the trick, however those files were automatically created by some software so they might just appear again. ABCL should be fixed since this is a long standing "bug".

On Wed, 2021-12-29 at 02:41 -0800, Mark Evenson wrote:

There is the problem:

38: (PROBE-DIRECTORY #P"/home/bpecsek/common-lisp/slime-repl sbcl") You have a file or directory named "slime-repl sbcl" under <~/common- lisp/> which is causing ABCL to fail here. If you remove that file/directory or indeed rename it to something not containing asterisk characters, loading quicklisp-abcl should succeed. Again, this is a bug in ABCL in handling asterisk characters in file names under in that there is not a representation of a wildcard distinct from an asterisk. From what I remember SBCL distinguishes the two by representing wildcards as the symbol :wildcard so there is a difference between :wildcard "slime-repl sbcl" :wildcard and slime-repl sbcl — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

bpecsek avatar Dec 29 '21 11:12 bpecsek