5

每次使用 Quicklisp 时,我都觉得自己在玩彩票。我找不到包含软件包列表和文档的网页。

作为一个具体的例子,我在 CL 中找到了基于 Okasakis 纯函数数据结构的(ql:system-apropos "random-access-list")SRFI -101 的实现,因此我进行了搜索。我试过这个:

[1]> (ql:system-apropos-list "random-access-lists")
(#<QL-DIST:SYSTEM random-access-lists / random-access-lists-20120208-git / quicklisp 2016-03-18>)
[2]> 

我知道这个名称random-access-lists不是很具体,所以可能还有其他具有该名称的包。上次我不太幸运,找到了 4 个部分匹配,而最匹配的不是我要找的包。

如何找到有关搜索结果的更多信息?

4

3 回答 3

3

一个有点hacky的解决方案是下载系统并使用ASDF:SYSTEM-DESCRIPTION它来查看它的描述。就像是

(defun describe-ql-system (system)
  (let ((system (asdf:find-system
                 (ql-dist:name
                  (ql-dist:ensure-installed
                   (ql-dist:find-system system))))))
    (format t "~a~%~@[~a~%~]"
            (asdf:system-description system)
            (asdf:system-long-description system))))

(describe-ql-system :random-access-lists)
; Persistent, random-access lists.

稍微更精致的版本:

(defun describe-ql-system (system)
  (let ((system (if (typep system 'ql-dist:system)
                    system
                    (ql-dist:find-system system))))
    (unless (null system)
      (ql-dist:ensure-installed system)
      (handler-case
          (let* ((name (ql-dist:name system))
                 (system (asdf:find-system name)))
            (format t "~&~60,,,'=<~; ~a ~;~>~@
                       ~@[Author:         ~a~%~]~
                       ~@[Maintainer:     ~a~%~]~
                       ~@[Description:    ~a~%~]~
                       ~@[Long description:~@
                       ~a~%~]~%"
                    name
                    (asdf:system-author system)
                    (asdf:system-maintainer system)
                    (asdf:system-description system)
                    (asdf:system-long-description system)))
        (asdf:missing-component ())))))
于 2016-07-31T15:16:30.917 回答
1

也许quickdocs可以在这里提供帮助。请注意,它不是由 Zach Beane 维护的,而是由 Eitaro Fukamachi 维护的,所以我不确定这个文档的最新情况。

于 2016-07-31T14:25:41.957 回答
0

间接地,也可以参考projects/$(project-name)/source.txt下的公共GitHub项目quicklisp/quicklisp-projects,看看是从哪里拉进来的。

反过来,这是一个指向实际存储库的 git 链接,该存储库通常具有一些顶级文档。

于 2016-08-01T14:53:34.187 回答