asdf-configure-source-registry seems to not like CL_SOURCE_REGISTRY being defined
I am not totally sure what is going on, so don't let the title of this lead you astray if you suspect something else is going on.
The issue that I am running into is that I am trying to set CL_SOURCE_REGISTRY via an asdf plugin I am working on per your suggestion on issue #12 (closed). When I do it, and then try to load a system, it gets into a state where it expects the CL_SOURCE_REGISTRY to be a list.
For example, let's say I want to download lake and install it without using roswell. I clone the repo, cd into it, and run the following command:
clpm exec --context=lake -- sbcl \
--eval '(setf clpm-client:*asdf-system-not-found-behavior* :install)' \
--eval '(setf clpm-client:*context-diff-approval-method* t)' \
--eval '(asdf:load-system :lake)' \
--eval '(asdf:clear-system :clpm-client)' \
--eval "(sb-ext:save-lisp-and-die \"lake\" :toplevel #'lake/main:uiop-main :executable t :compression 9)"
Running that will drop me into the debugger, initially because it can't find lake itself:
debugger invoked on a TYPE-ERROR in thread
#<THREAD "main thread" RUNNING {1004AD0243}>:
The value
"/Users/me/.asdf/installs/sbcl/2.0.11/lib/clpm/client/"
is not of type
LIST
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [RETRY ] Retry ASDF operation.
1: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
configuration.
2: Retry ASDF operation.
3: Retry ASDF operation after resetting the
configuration.
4: [CONTINUE ] Ignore runtime option --eval "(asdf:load-system :lake)".
5: [ABORT ] Skip rest of --eval and --load options.
6: Skip to toplevel READ/EVAL/PRINT loop.
7: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).
(CLPM-CLIENT::ASDF-CONFIGURE-SOURCE-REGISTRY (:SOURCE-REGISTRY (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/trivial-types/2012-04-07/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/trivial-indent/2019-10-07/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/trivial-features/2020-07-15/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/named-readtables/2020-09-25/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/lake/2019-12-27/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/documentation-utils/2019-07-11/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/deploy/2020-09-25/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/cl-unicode/2019-05-21/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/cl-syntax/2015-04-07/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/cl-ppcre/2019-05-21/") (:DIRECTORY #P"/Users/me/.local/share/clpm/sources/clpi/quicklisp.common-lisp-project-index.org_443/projects/cl-interpol/2020-07-15/") ...) "/Users/me/.asdf/installs/sbcl/2.0.11/lib/clpm/client/")
source: (REST SPLICE)
0]
If I exit and re-run it, it will compile lake until it hits the first dependency: flexi-streams
. I run it again and it will drop into the debugger with the same error as above, but for the next dependency. I repeat the whole process through each dependency (trivial-gray-streams and split-sequence), and once they are all satisfied, it will compile and build the binary.
Something about setting CL_SOURCE_REGISTRY seems to be breaking clpm-client::asdf-configure-source-registry. My lisp foo isn't good enough to tell what is going on. I tried to set the environment variable to (:source-registry (:directory "/Users/me/.asdf/installs/sbcl/2.0.11/lib/clpm/client/")), and it still evaluates it as a string.
Let me know if you have any ideas or need more data.