Open fosskers opened 2 weeks ago
The searching logic is in ASDF bundled with SBCL, so there's nothing Qlot can do about it.
I personally don't use ~/common-lisp
because of the problem.
This section will help you to solve it. https://github.com/fukamachi/qlot?tab=readme-ov-file#asdf-configuration-to-prevent-from-loading-by-mistake
Can you paste the content of qlot
script? (such as /usr/local/bin/qlot
)
#!/bin/sh
exec /usr/lib/qlot/scripts/run.sh "$@"
which leads to https://github.com/fukamachi/qlot/blob/master/scripts/run.sh
Thanks, I will try the other configuration option. Or I'll hand-configure that :directory
field if I notice it's the wrong value.
If I add
(push ".qlot" asdf::*default-source-registry-exclusions*)
(asdf:initialize-source-registry)
to my SBCL config and run sbcl
, I'm told:
Package ASDF does not exist.
and a condition is raised.
You must add (require 'asdf)
in case you haven't loaded ASDF or Quicklisp before.
It seems the loaded Qlot will be overwritten by another Qlot in ~/common-lisp (or in other user space) by ASDF in any case.
Describe the bug
I was trying to load the
:ultralisp
system so that I could develop it. Note that Ultralisp depends on theqlot
system as a dependency, but when I tried to load, it was complaining thatwith-local-quicklisp
was missing (Ultralisp uses it). You recently readded it, and yet it still couldn't find it. The copy ofqlot
in the project's local.qlot/
was also correct.I then checked
(asdf:find-system :qlot)
and discovered it was loading my local clone of qlot, found at~/code/common-lisp/qlot/
. Note: this path is not in myasdf:*central-registry*
list. I then looked at.qlot/source-registry.conf
and found this:I compared this to the same file in another project (transducers) and found it referencing
/usr/lib/qlot/
instead, which matches my official installation of the qlot package. So, as an experiment I deleted that.qlot/
as well as my local clone ofqlot
and reranqlot install
intransducers/
. Now I see:^^^ It found a version of itself in a very strange place! My conclusion is that Qlot appears to be searching for itself (its systems?) whereever it can find them, including in locations that ASDF doesn't normally look. And also that it searches in
/home/user/...
before it looks in global places like/usr/lib/
.I don't know why Qlot needs to "find itself" like this, but either way, I'd expect it to prioritize the
/usr/lib/
variant. At least whenqlot
is being used as a dependency in a project, it should prioritize the version found in.qlot/
.Reproducible steps
qlot
systems in various locations on your filesystem.qlot init
/qlot install
.source-registry.conf
..qlot/
you made, and rerunqlot install
.Error messages
No specific errors.
Versions: