Search code examples
lispcommon-lispquicklisp

Using `qlot` from a Lisp REPL


I'm interested in using the qlot library from inside of a Lisp image to manage multiple local instances of quicklisp.

There doesn't seem to be any documentation on how to use it, except through a non-Lisp CLI interface, and the obvious

(qlot:with-local-quicklisp (#P"/a/path/here/") (qlot:install :skippy))

or

(qlot:with-local-quicklisp (#P"/a/path/here/") (qlot:quickload :skippy))

give me

Component "skippy" not found
   [Condition of type ASDF/FIND-SYSTEM:MISSING-COMPONENT]

What I'm looking for is a way to install a particular library by name. Basically, exactly how one would use ql:quickload, but targeting a specific, local directory instead of ~/quicklisp. What am I doing wrong?


Solution

  • It looks like the intent is to modify dynamically scoped variables in a way that makes using ql:quickload directly possible.

    So

    (qlot:with-local-quicklisp (#P"/a/path/to/some/quicklisp/")
      (qlot/util:with-package-functions :ql (quickload)
        (quickload :skippy)))
    

    will result in skippy being installed in the quicklisp instance at #P"/a/path/to/some/quicklisp/" instead of the default location.

    This leaves me a bit perplexed as to what qlot:quickload is for; its describe output doesn't shed additional light.