Le 23/09/2023 à 00:04, Blake McBride a écrit :
Greetings all!
Asdf noob here. I have spent hours on what I would think would be incredibly simple. Help would sure be appreciated.
I cloned a repo for a package that is available on quicklisp. I modified it. However, everytim I do:
(asdf:load-asd "thepackage.asd")
(asdf:load-system "thepackage")
It loads the standard distribution rather than the copy I am editing. I have tried stuff like:
(asdf:load-asd (concatenate 'string (namestring (truename ".")) "parenscript.asd"))
with no luck. I tried many other things too with no luck.
How can I force asdf to load and use the package in the local directory rather than the cached standard distribution?
There are several confusions.
quicklisp doesn't provide packages, it provides systems.
quicklisp uses asdf to compile and load the systems it has downloaded and installed.
asdf compiles and loads systems, not packages.
Now, since you're using quicklisp, you may avoid using asdf to load a system, an use ql:quickload. This let you also avoid using asdf:*central-registry*, just because it's deprecated. Otherwise it's a very good mechanism, to give a list of directories where asdf should find systems. So good that it has been duplicated in quicklisp, as ql:*local-project-directories*.
So my advice is:
(push #P"/path/to/your/local/copy/" ql:*local-project-directories*) (ql:quickload :your-system)