如何安排 Quicklisp 加载给定库的本地版本
How to arrange for Quicklisp to load the local version of a given library
我正在使用 Quicklisp 在我的 Common Lisp 项目中加载库,并且
我需要加载一些库的自定义版本,而不是 Quicklisp 提供的版本。
库的自定义版本存储在Quicklisp的本地项目目录中,本地项目已注册。但是 Quicklisp 仍然尝试加载它自己的库版本。
如何让Quicklisp 更喜欢自定义的库? (附带问题:我如何询问 Quicklisp 它将使用哪个位置来加载库?)
如果项目的系统文件可以用 ASDF 加载,它会优先于 Quicklisp 提供的版本加载。最简单的方法是将项目的源代码放入 ~/quicklisp/local-projects/
(或安装 quicklisp 的任何地方,而不是 ~/quicklisp/
)和 运行 (ql:register-local-projects)
。但是其他方法,例如更新 ASDF 注册表配置和通过注册表将项目放在 ASDF 已知的某个地方,也可以。
要找出 Quicklisp 加载项目的位置,您可以使用 (ql:where-is-system "system-name")
。
记住
The local-projects mechanism is configured through a special variable ql:*local-project-directories*.
By default, it includes only the local-projects subdirectory in the Quicklisp install directory, but you can add or remove directories at any time to have more places scanned for systems.
To disable the local-projects mechanism entirely, set ql:*local-project-directories*
to NIL
.
我正在使用 Quicklisp 在我的 Common Lisp 项目中加载库,并且 我需要加载一些库的自定义版本,而不是 Quicklisp 提供的版本。
库的自定义版本存储在Quicklisp的本地项目目录中,本地项目已注册。但是 Quicklisp 仍然尝试加载它自己的库版本。
如何让Quicklisp 更喜欢自定义的库? (附带问题:我如何询问 Quicklisp 它将使用哪个位置来加载库?)
如果项目的系统文件可以用 ASDF 加载,它会优先于 Quicklisp 提供的版本加载。最简单的方法是将项目的源代码放入 ~/quicklisp/local-projects/
(或安装 quicklisp 的任何地方,而不是 ~/quicklisp/
)和 运行 (ql:register-local-projects)
。但是其他方法,例如更新 ASDF 注册表配置和通过注册表将项目放在 ASDF 已知的某个地方,也可以。
要找出 Quicklisp 加载项目的位置,您可以使用 (ql:where-is-system "system-name")
。
记住
The local-projects mechanism is configured through a special variable
ql:*local-project-directories*.
By default, it includes only the local-projects subdirectory in the Quicklisp install directory, but you can add or remove directories at any time to have more places scanned for systems. To disable the local-projects mechanism entirely, setql:*local-project-directories*
toNIL
.