如何安排 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 News Blog)