2

I am trying to get Common Lisp running on my Windows 10 machine and I have run into a problem with getting ASDF/(ql:quickload "...") to load a project. I generated the given project with the following command (after creating a C:\Users\ig88t\src\lisp folder):

(ql:quickload "quickproject")

(quickproject:make-project "~/src/lisp/swatchblade/" :depends-on '(vecto hunchentoot))

Which correctly generates the project and I can view the source at ~/src/lisp/swatchblade.

But I am unable to load it via

(ql:quickload "swatchblade")

Instead of loading, I get an error saying

System "swatchblade" not found [Condition of type QUICKLISP-CLIENT:SYSTEM-NOT-FOUND]

I am going by two manuals, one that Xach wrote and another tailored for Windows. Xach recommends ~/.config/common-lisp/source-registry.conf.d/projects.conf whereas the second recommends ~/.config/common-lisp/source-registry.conf.d/asdf.conf. I am currently using the version Xach wrote as it has worked for me on Linux.

Going by the manual for ASDF it seems that ~/AppData/Local/ is where I should store .config/common-lisp/source-registry.conf.d/projects.conf. I have tried storing it at ~/AppData/Local/config/... as well as ~/AppData/Local/.config/... to no avail. I noticed that Clozure CL installs some quicklisp data in ~/AppData/Local/common-lisp, so I tried putting the source-registry.conf.d folder there as in ~/AppData/Local/common-lisp/source-registry.conf.d/projects.conf as well but it didn't work.

I have tried a lot of different variations of placing the folder in different places but I have not managed to figure out the right one. I would really appreciate any help/suggestions by anyone using Common Lisp and Quicklisp on Windows.

I am using Clozure CL, 1.11.5, and the wx86cl64 binary which comes with ASDF version 3.1.5 in case that matters.

--- edit ---

After talking with Xach about this issue, I tried:

(quickproject:make-project "~/quicklisp/local-projects/swatch" :depends-on '(vecto hunchentoot))

and then ran:

(ql:register-local-projects)

but upon running:

(ql:quickload "swatch")

it failed yet again with:

System "swatch" not found [Condition of type QUICKLISP-CLIENT:SYSTEM-NOT-FOUND]

He said it might be related to this PR for quickproject.

--- edit #2 ---

I recently tried using SBCL and things seemed to be working. I could create projects using quickproject and load them. Note that I am unable to load projects created with quickproject under CCL. However, when I restart slime/emacs, I am unable to load any projects previously created under SBCL.

; SLIME 2.20
CL-USER> (ql:quickload "quickproject")
To load "quickproject":
  Load 1 ASDF system:
    quickproject
; Loading "quickproject"

("quickproject")
CL-USER> (quickproject:make-project "~/quicklisp/local-projects/test/"
                             :depends-on '(vecto))
"test"
CL-USER> (ql:quickload "test")
To load "test":
  Load 1 ASDF system:
    test
; Loading "test"
[package test]
("test")
CL-USER> 

--- intermission... restarting slime ---

; SLIME 2.20
CL-USER> (ql:quickload "test")
; Evaluation aborted on #<QUICKLISP-CLIENT:SYSTEM-NOT-FOUND {10034555B3}>.
CL-USER> 

So I have no clue what could be causing the issue or how to resolve it, but it appears that creating/loading projects never works under Clozure CL and to works only within the current session in SBCL.

--- edit #3 ---

It seems I was wrong about SBCL. It seems that when I run

(quickproject:make-project "~/quicklisp/local-projects/test/"
                             :depends-on '(vecto))

It creates a folder in C:\Users\ig88t\AppData\Roaming\quicklisp\local-projects and not in C:\Users\ig88t\quicklisp\local-projects. It can load projects created within the current session as I said earlier, but is unable to find them in a new session.

ig88th
  • 29
  • 3
  • Is it possible that it's a permission issue? Could you try going into settings of your emacs executable and setting it to always open as administrator and check? Don't run windows, but think you can access the settings by right clicking the binary and going to 'properties'. If that works and fixes the restart slime issue, then maybe try admin mode for CCL binary as well. – Capstone Feb 08 '18 at 04:26
  • @ ˆᵛˆ: I am not sure I understand your suggestion. The problem has nothing to do with emacs. What makes you think that it might be a cause of the problem? Both CCL and SBCL are able to modify/create directories and install new libraries, so I do not think it is a permissions issue. My problem as I understand it is related to the fact that CCL/SBCL do not seem to be able to load projects created with quickproject (it only partially works for SBCL as I have mentioned in my edited post). Thank you for taking the time to suggest something, it is appreciated. – ig88th Feb 08 '18 at 04:39
  • Yes, Windows has strange permissions in my experience and sometimes creating directories works, but reading them might not. No harm in trying though? I thought of it because I remember once running ccl under Windows and modifying the file system which only worked after I put the CCL bin in admin mode. – Capstone Feb 08 '18 at 05:03

1 Answers1

3
(asdf::user-source-registry :direction :output)
Faré
  • 952
  • 5
  • 4