Package-locked-error during lem install
After cloning from git, installing qlot, running qlot init inside, then running make sdl2-ncurses, I encounter the following error:
...lem/.qlot/dists/quicklisp/software/cl-setlocale-20201220-git/src/constants__grovel.grovel-tmp.lisp
.While evaluating the form starting at line 2, column 0
of #P"/home/user/.local/share/lem/scripts/build-sdl2-ncurses.lisp":
debugger invoked on a PACKAGE-LOCKED-ERROR in thread
#<THREAD tid=10137 "main thread" RUNNING {1000E60133}>:
Lock on package LEM/BUFFER/INTERNAL violated when
removing local nickname LINE for #<PACKAGE "LEM/BUFFER/LINE"> while in
package COMMON-LISP-USER.
See also:
The SBCL Manual, Node "Package Locks"
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [CONTINUE ] Ignore the package lock.
1: [IGNORE-ALL ] Ignore all package locks in the context of this operation.
2: [UNLOCK-PACKAGE ] Unlock the package.
3: [TRY-RECOMPILING ] Recompile package and try loading it again
4: [RETRY ] Retry
loading FASL for #<CL-SOURCE-FILE "lem" "buffer" "package">.
5: [ACCEPT ] Continue, treating
loading FASL for #<CL-SOURCE-FILE "lem" "buffer" "package">
as having been successful.
6: Retry ASDF operation.
7: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
configuration.
8: Retry ASDF operation.
9: Retry ASDF operation after resetting the
configuration.
10: [ABORT ] Give up on "lem-ncurses"
11: [REGISTER-LOCAL-PROJECTS ] Register local projects and try again.
12: [RETRY ] Retry EVAL of current toplevel form.
13: Ignore error and continue loading file "/home/user/.local/share/lem/scripts/build-sdl2-ncurses.lisp".
14: Abort loading file "/home/user/.local/share/lem/scripts/build-sdl2-ncurses.lisp".
15: Ignore runtime option --load "scripts/build-sdl2-ncurses.lisp".
16: Skip rest of --eval and --load options.
17: Skip to toplevel READ/EVAL/PRINT loop.
18: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).
(PACKAGE-LOCK-VIOLATION #<PACKAGE "LEM/BUFFER/INTERNAL"> :SYMBOL NIL :FORMAT-CONTROL "removing local nickname ~A for ~A" :FORMAT-ARGUMENTS ("LINE" #<PACKAGE "LEM/BUFFER/LINE">))
When I unlock-package, or exit and rerun make sdl2-ncurses, it appears to complete successfully. However, when I run lem in ncurses mode, it will hang at a black sceen for about 20 seconds, before giving the following error:
lock on package LEM/BUFFER/INTERNAL violated when removing local nickname LINE for
See also:
The SBCL Manual, Node "Package Locks"
Backtrace for: #<SB-THREAD:THREAD tid=10964 "editor" RUNNING {10038C0003}>
0: ((LAMBDA NIL :IN UIOP/IMAGE:PRINT-BACKTRACE))
1: ((FLET "THUNK" :IN UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX))
2: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<FUNCTION (FLET "THUNK" :IN UIOP/STREAM:CAL
3: (UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX #<FUNCTION (LAMBDA NIL :IN UIOP/IMAGE:PRI
4: (LEM-CORE:POP-UP-BACKTRACE #<SB-EXT:PACKAGE-LOCKED-ERROR "removing local nickna
5: ((LAMBDA (CONDITION) :IN LEM-CORE::TOPLEVEL-COMMAND-LOOP) #<SB-EXT:PACKAGE-LOCK
6: (SB-KERNEL::%SIGNAL #<SB-EXT:PACKAGE-LOCKED-ERROR "removing local nickname ~A f
7: (CERROR "Ignore the package lock." SB-EXT:PACKAGE-LOCKED-ERROR :PACKAGE #<PACKA
8: (SB-EXT:PACKAGE-LOCK-VIOLATION #<PACKAGE "LEM/BUFFER/INTERNAL"> :SYMBOL NIL :FO
9: (SB-IMPL::ASSERT-PACKAGE-UNLOCKED #<PACKAGE "LEM/BUFFER/INTERNAL"> "removing lo
10: (SB-EXT:REMOVE-PACKAGE-LOCAL-NICKNAME "LINE" #<PACKAGE "LEM/BUFFER/INTERNAL">)
11: (UIOP/PACKAGE::INSTALL-PACKAGE-LOCAL-NICKNAMES #<PACKAGE "LEM/BUFFER/INTERNAL"
12: (UIOP/PACKAGE:ENSURE-PACKAGE :LEM/BUFFER/INTERNAL :NICKNAMES NIL :DOCUMENTATIO
13: ("top level form") [toplevel]
14: (SB-FASL::LOAD-FASL-GROUP #S(SB-FASL::FASL-INPUT :STREAM #<SB-SYS:FD-STREAM fo
15: ((LAMBDA NIL :IN SB-FASL::LOAD-AS-FASL))
16: (SB-IMPL::CALL-WITH-LOADER-PACKAGE-NAMES #<FUNCTION (LAMBDA NIL :IN SB-FASL::L
17: (SB-FASL::LOAD-AS-FASL #<SB-SYS:FD-STREAM for "file /home/sybil/.cache/common-
18: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<SB-SYS:FD-STREAM for "file /home/s
19: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :I
20: (LOAD #P"/home/sybil/.cache/common-lisp/sbcl-2.4.5-linux-x64/home/sybil/.local
21: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<FUNCTION (LAMBDA NIL :IN UIOP/LIS
22: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASD
23: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
24: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS (ASDF/LISP-ACTION:LOAD-OP ASDF/LIS
25: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:
26: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {100534A453}
27: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
28: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {100
29: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPON
30: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<AS
31: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
32: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<A
33: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF
34: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
35: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "lem-le
36: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:O
37: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
38: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:O
39: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "lem-le
40: (ASDF/OPERATE:LOAD-SYSTEM "lem-legit" :VERBOSE NIL)
41: (QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS #<FUNCTION (LAMBDA NIL :IN Q
42: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "lem-legit" :PROMPT NIL)
43: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION (T T)) #<unused argument>
44: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION :AROUND (QL-IMPL:SBCL T))
45: ((:METHOD QUICKLISP-CLIENT:QUICKLOAD (T)) "lem-legit" :PROMPT NIL :SILENT NIL
46: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIE
I'm having trouble with this too. As a workaround, I'm selecting CONTINUE on restarts.
https://github.com/lem-project/lem/commit/cab3fad8f45c6f558f81ae1bc50c6124254a92b4 This change has stopped the errors from occurring. I think I've managed to get the SBCL compiler in a good mood.
edit: An error occurred afterwards :(
Same issue happening in fukamachi/.lem#3
I'm currently using the "UNLOVK PACKAGES" option to get past this and it seems to work fine.
This also comes up for me when trying to install cl-lsp via ros install lem-project/lem-mailbox lem-project/micros lem-project/lem cxxxr/cl-lsp, which also prevents accepting any of the resolution choices offered by the condition system, because the --disable-debugger option is apparently used in the context of ros install.
I think this problem has been fixed with this code. https://github.com/lem-project/lem/blob/748c54068b3c5867bc6a25f63fbdcaa747693a25/src/buffer/package.lisp#L6