1

在 Ubuntu Raring 上的 Emacs 中。我在 Emacs 中加载了 SBCL,因为我一直在使用它。在键入 M-- Mx slime 以加载 ACL 后,我键入 (ql:quickload "ieee-floats") 以在 emacs 中新安装的 ACL 上加载我的第一个库并收到此错误:

 While searching for system "ieee-floats":
    #P"/home/b/quicklisp/dists/quicklisp/software/c2ffi/README"
    evaluated to
    #P"/home/b/quicklisp/dists/quicklisp/software/c2ffi/README"
 which is
    not a directory.

我的 ACL asdf: central-registry的前几行是:

  (#P"/home/w/quicklisp/quicklisp/"
   #P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/README"
   #P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/autoclean"
   #P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/config.h"
   #P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/configure.ac"  

所以 acl 只是查看第一个文件并停止。同样在 ACL 中的 asdf: central-registry中,它列出了根目录中的所有文件以及文件夹,但在 SBCL 中,它只列出了 quicklisp/dist/software 中的所有根文件夹,而 SBCL 用于安装 quicklisp 库 i/e

ACL 列出所有根文件夹文件

  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/SPEC"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/README"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/trivial-features.asd"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/tests"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/COPYRIGHT"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/trivial-features-tests.asd"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/src"
  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/release.sh"

SBCL'S - 仅列出根文件夹

  #P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/"

并且 sbcl 和 acl 初始化文件包含相同的内容:

 (require :asdf)
 ;put all subdirectories of quicklisp\software into asdf:*central-registry*
  (dolist (dir (directory "/home/w/quicklisp/dists/quicklisp/software/*/"))
  (pushnew dir asdf:*central-registry* :test #'equal))

 ;;; The following lines added by ql:add-to-init-file:
 #-quicklisp
 (let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                        (user-homedir-pathname))))
   (when (probe-file quicklisp-init)
     (load quicklisp-init)))
4

1 回答 1

2

*central-registry*是搞砸了。您;put all subdirectories的 init 文件中的位导致了问题。删除它,您就可以使用它ql:quickload来加载库,例如(ql:quickload :vecto).

于 2013-10-15T14:47:23.883 回答