Clisp 找不到包

Clisp can't find package

我已经 运行 一个带有 allegro common lisp 的 lisp 程序已经有几天了。我现在需要使用 clisp,但是当我尝试编译它时,我得到:

SYSTEM::%FIND-PACKAGE: There is no package with name
      "COMMON-GRAPHICS-USER"

我是 lisp 的新手,所以我一直在寻找解决方案,但我找到了 none。

我怀疑它很基础,但我仍然不知道如何解决它。

包(本质上)是 Common Lisp 中的命名空间:使用包查找符号(即名称),通常存在于包中,并且有当前包的概念,包知道它们愿意使用哪些其他包查找符号等等。所以包不是以它们的方式加载的东西,比如说,在 Python 中,尽管包可能是在加载某些东西时创建的。 (更令人困惑的是,当然人们也调用确实加载的代码集合 'packages'!)

所以这种失败意味着包系统的当前状态是错误的,特别是它可能正在尝试查找一个符号(通过 reader 或通过其他机制)名称为 COMMON-GRAPHICS-USER 的包,但此包不存在。 (它也可能试图直接找到一个包,例如当另一个包要求使用这个包时。)

不幸的是,几乎可以肯定的是,这个包 在 Allegro CL 中作为 Common Graphics 的一部分存在,这是一个 ACL 的东西:可能有人写了一个便携版,但我不知道。

因此很可能您尝试使用的代码 运行 是特定于 Allegro CL 的,很遗憾。


注:以上并非对CL包系统的全面描述:如需详细了解,请从the standard开始。有一个老笑话,第 11 章中描述包是有充分理由的,尽管我个人认为这是不合理的。