4

我用一些很好的函数来研究 Common Lisp 项目:

CL-USER> (list-all-packages)
CL-USER> (describe (asdf:find-system "asdf"))

如何列出所有系统都知道asdfquicklispsbcl?我试图从文档中挖掘它,但还没有找到它。

4

2 回答 2

5

在 ASDF 中注册的所有系统:

(asdf:registered-systems)

我通过键入asdf:systems并让自动完成提示一个名称找到了一个。符号是导出的,所以这是公平的游戏。显然它是无证的。

Quicklisp 有一个分布的概念dists

(ql-dist:all-dists)

每个 dist 都有不同的版本(http://blog.quicklisp.org/2011/08/going-back-in-dist-time.html):

(ql-dist:available-versions (ql-dist:dist "quicklisp"))

每个 dist 提供系统:

(ql-dist:provided-systems (ql-dist:dist "quicklisp"))

每个系统都有一个版本,您可以列出所有版本:

(ql-dist:provided-releases (ql-dist:dist "quicklisp"))

一致的实现有一个 列表*MODULES*,这对于您的实现作为内置的系统非常有用;对于 SBCL:

CL-USER> (require 'sb-mpfr)
("SB-MPFR" "SB-GMP")

CL-USER> *modules*
("SB-GMP" "SB-MPFR" ...)
于 2018-09-28T07:41:27.713 回答
1

此外,您可以方便地搜索所有 quickdist 的系统,查找它们的文档和依赖项:

http://quickdocs.org

于 2018-09-28T17:31:39.870 回答