qlot icon indicating copy to clipboard operation
qlot copied to clipboard

`asdf:*central-registry*` reset by `qlot:quickload`

Open mtstickney opened this issue 8 years ago • 0 comments

This seems to be a recent change, and it might have been intentional, but qlot is now resetting asdf:*central-registry* inside qlot:with-local-quicklisp, which leads to some odd behavior.

For example, I have a directory with several (dependent) systems in it (e.g. foo/bar.asd and foo/baz.asd, where bar depends on baz). To load that system without getting an error trying to load baz, I have to do the following:

(push #P"foo/" asdf:*central-registry*)
(qlot:with-local-quicklisp (:bar)
  (push #P"foo/" asdf:*central-registry*)
  (ql:quickload :bar))

where previously this would have been sufficient:

(push #P"foo/" asdf:*central-registry*)
(qlot:quickload :bar)

Unfortunately I'm very short on time lately, so I haven't been able to track down the commit that caused it (I've been using an old version for along time). However, from some basic checking it looks like call-with-local-quicklisp rebinds asdf:*central-registry* to a parameter that is always nil when qlot:quickload is used. The default value for that parameter should probably be asdf:*central-registry* rather than nil.

mtstickney avatar Oct 17 '17 18:10 mtstickney