4
  1. I made a project with quickproject:make-project in directory "~/projects/{name}/".

  2. I wasn't happy how it turned out and wanted to start over, so I renamed the directory to "~/projects/{name}-old/" and made a new project with quickproject:make-project in the initial directory "~/projects/{name}/".

  3. If I try to load my project with ql:quickload, quicklisp tries to load the old project.

How do I remove the old system, while keeping the old project files where they are?

What should I have done, instead of renaming the directory in step 2.?

chrm
  • 1,258
  • 1
  • 11
  • 16

2 Answers2

3

There was a bug in ASDF that caused a problem like this. You might be able to recover by using (asdf:clear-system "<name>"). If that doesn't work, things should work fine if you restart.

Xach
  • 11,774
  • 37
  • 38
  • 1
    A simple restart has no effect. asdf:clear-system has no effect as well, quicklisp still tries to load the old project. After removing "~/projects/{name}-old/" quicklisp loads the right project, but if I restore the directory it's the same problem all over again. I'm still not sure how quicklisp did find the old project after changing the directory name. – chrm Nov 05 '11 at 11:06
  • 2
    You probably have (:tree "/home/user/projects/") in your ASDF configuration, and for some reason the old directory gets picked first when ASDF traverses the tree. If that's the case, change the .asd file, or move the directory outside the tree. – angus Nov 05 '11 at 12:07
1

Angus is right, in my file ~/.config/common-lisp/source-registry.conf.d/projects.conf there is this entry,

(:tree (:home "projects/"))

and the wrong project gets picked first. To prevent asdf from loading the wrong project I had to rename the asd file. Just changing the package or system definition in the project, like I tried at first, didn't help.

chrm
  • 1,258
  • 1
  • 11
  • 16