2

我试图让 Common Lisp 在我的 Windows 10 机器上运行,但在ASDF/(ql:quickload "...")加载项目时遇到了问题。我使用以下命令生成了给定的项目(在创建C:\Users\ig88t\src\lisp文件夹之后):

(ql:快速加载“快速项目”)

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

哪个正确生成项目,我可以在~/src/lisp/swatchblade.

但我无法通过加载它

(ql:快速加载“swatchblade”)

我收到一条错误消息,而不是加载

未找到系统“swatchblade”[QUICKLISP-CLIENT:SYSTEM-NOT-FOUND 类型的条件]

我要阅读两本手册,一本是Xach 编写的,另一本是为 Windows 量身定制的。Xach 推荐~/.config/common-lisp/source-registry.conf.d/projects.conf,而第二个推荐~/.config/common-lisp/source-registry.conf.d/asdf.conf. 我目前正在使用 Xach 编写的版本,因为它在 Linux 上对我有用。

按照ASDF的手册,这似乎~/AppData/Local/是我应该存储的地方.config/common-lisp/source-registry.conf.d/projects.conf。我曾尝试将其存储在~/AppData/Local/config/...~/AppData/Local/.config/...无济于事。我注意到 Clozure CL 在 中安装了一些 quicklisp 数据~/AppData/Local/common-lisp,所以我尝试将source-registry.conf.d文件夹也放在那里,~/AppData/Local/common-lisp/source-registry.conf.d/projects.conf但它没有用。

我尝试了很多不同的变体,将文件夹放置在不同的位置,但我还没有找到合适的变体。我非常感谢在 Windows 上使用 Common Lisp 和 Quicklisp 的任何人提供的任何帮助/建议。

我正在使用 Clozure CL、1.11.5 和 ASDF 版本 3.1.5 附带的 wx86cl64 二进制文件,以防万一。

- - 编辑 - -

在与 Xach 讨论过这个问题后,我尝试了:

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

然后跑:

(ql:注册本地项目)

但在运行时:

(ql:快速加载“样本”)

它再次失败了:

未找到系统“样本”[QUICKLISP-CLIENT:SYSTEM-NOT-FOUND 类型的条件]

他说这可能与quickproject的这个PR有关。

--- 编辑 #2 ---

我最近尝试使用 SBCL,一切似乎都在工作。我可以使用quickproject并加载它们来创建项目。请注意,我无法加载使用quickprojectunder创建的项目CCL。但是,当我重新启动 slime/emacs 时,我无法加载以前在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> 

--- 中场休息......重新启动粘液 ---

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

所以我不知道是什么可能导致问题或如何解决它,但似乎创建/加载项目在 Clozure CL 下永远无法工作,并且只能在 SBCL 的当前会话中工作。

--- 编辑 #3 ---

看来我对 SBCL 的看法是错误的。似乎当我跑步时

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

C:\Users\ig88t\AppData\Roaming\quicklisp\local-projects它在而不是在 中创建一个文件夹C:\Users\ig88t\quicklisp\local-projects。如前所述,它可以加载在当前会话中创建的项目,但无法在新会话中找到它们。

4

1 回答 1

2
(asdf::user-source-registry :direction :output)
于 2018-02-21T19:49:25.770 回答