windows - 在 Windows 10 上安装 Quicklisp 时,我应该将 ~/.config/common-lisp/source-registry.conf.d/projects.conf 放在哪里以便 ASDF 查找?

标签 windows windows-10 common-lisp quicklisp asdf

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

(ql:quickload "quickproject")

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

它正确生成了项目,我可以在 ~/src/lisp/swatchblade 查看源代码.

但我无法通过

加载它

(ql:quickload "swatchblade")

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

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

我将阅读两本手册,其中一本 Xach wrote另一个tailored for Windows 。 Xach推荐~/.config/common-lisp/source-registry.conf.d/projects.conf而第二个建议 ~/.config/common-lisp/source-registry.conf.d/asdf.conf 。我目前正在使用 Xach 编写的版本,因为它在 Linux 上对我有用。

访问the manual for ASDF看来~/AppData/Local/是我应该存储 .config/common-lisp/source-registry.conf.d/projects.conf 的地方。我尝试将其存储在 ~/AppData/Local/config/...以及 ~/AppData/Local/.config/...无济于事。我注意到 Clozure CL 在 ~/AppData/Local/common-lisp 中安装了一些 Quicklisp 数据,所以我尝试输入 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:register-local-projects)

但是运行时:

(ql:quickload "swatch")

它再次失败:

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

他说这可能与this PR有关用于快速项目。

--- 编辑 #2 ---

我最近尝试使用 SBCL,一切似乎都正常。我可以使用 quickproject 创建项目并加载它们。请注意,我无法加载使用 quickproject 创建的项目下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 的当前 session 中工作。

--- 编辑 #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 。正如我之前所说,它可以加载在当前 session 中创建的项目,但无法在新 session 中找到它们。

最佳答案

(asdf::user-source-registry :direction :output)

关于windows - 在 Windows 10 上安装 Quicklisp 时,我应该将 ~/.config/common-lisp/source-registry.conf.d/projects.conf 放在哪里以便 ASDF 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675274/

相关文章:

c - 从文本文件中读取一行并将其删除

ubuntu - 更改 WSL 上的主机名

windows - 如何在 Windows 10 上写入 Access 数据库

ubuntu - 双启动屏幕问题 : windows 10 and Ubuntu

Python 访问对象属性 a la with-slots lisp

windows - 是否需要从 Windows SDK 重新分发 DirectX?

windows - 如何杀死 node.js 上的打开进程?

common-lisp - 在 Lisp 中从字符串创建变量名

database - 处理大型结构化数据集

windows - 新 Microsoft Windows 安装的默认受信任根证书颁发机构