我已经使用allegro常见的lisp运行了一个lisp程序,持续了几天。我现在需要使用clisp,但是当我尝试编译它时,我得到:
SYSTEM::%FIND-PACKAGE: There is no package with name
"COMMON-GRAPHICS-USER"
我是lisp的新手所以我一直在寻找解决方案,但我找不到。
我怀疑这是非常基本的,但我仍然不知道如何解决它。
答案 0 :(得分:2)
包是(基本上)Common Lisp中的命名空间:使用包查找符号(即名称),通常存在于包中,并且有一个当前包的概念,包知道他们愿意看哪些其他包符号等等。所以包不是像Python那样加载的东西,尽管在加载东西时可能会创建包。 (为了增加混乱,当然人们会调用已经加载的代码集合!)
所以这种失败意味着包系统的当前状态是错误的,特别是它可能试图在名称为{的包中查找符号(通过阅读器或其他机制) {1}}并且此包不存在。 (它可能也试图直接找到一个包,例如当另一个包要求使用这个包时。)
不幸的是,几乎可以肯定的是,这个软件包在Allegro CL中仅存在 作为Common Graphics的一部分,这是一个ACL的东西:可能是有人编写了一个可移植版本,但我我不知道。
很遗憾,您尝试运行的代码很可能是Allegro CL特有的。
注意:以上内容并不是CL软件包系统的全面描述:如果您想详细了解它,请从the standard开始。有一个老笑话,有充分的理由说明为什么在第11章中描述了包,尽管我个人认为这是不合理的。