2

我可以发誓这以前曾经工作过。

CL-USER 7 > (ql:quickload 'rutils)
加载“rutils”:
  加载 1 个 ASDF 系统:
    金红石
; 加载“rutils”
[包编辑器-hints.named-readtables]..
…………
[包 rutils.readtable]............
[包 rutils.core]..........................
[包 rutils.misc]..........................
[包 rutils.anaphora]............
[包 rutils.list].......................
[包 rutils.string].......................
[包 rutils.hash-table].............
[包 rutils.hash-set]............
[包 rutils.array]..........................
[包rutils.sequence].............
[包 rutils.pair]..........................
[包 rutils.tree].......................
[包 rutils.abbr].......................
[包 rutils].......................
[包rutil]......
……
...
..
.

错误:重新定义宏 := 从包 KEYWORD { *handle-warn-on-redefinition* 可见是 :ERROR }
   1(继续)无论如何都要重新定义它。
   2 尝试再次加载 /Users/agam/.cache/common-lisp/lw-7.1.0-macosx-x64/Users/agam/quicklisp/dists/quicklisp/software/rutils-20180228-git/core/abbr.64xfasl。
   3 放弃加载/Users/agam/.cache/common-lisp/lw-7.1.0-macosx-x64/Users/agam/quicklisp/dists/quicklisp/software/rutils-20180228-git/core/abbr.64xfasl。
   4 尝试加载另一个文件而不是 /Users/agam/.cache/common-lisp/lw-7.1.0-macosx-x64/Users/agam/quicklisp/dists/quicklisp/software/rutils-20180228-git/core/abbr .64xfasl。
   5 重新编译 abbr 并尝试再次加载它
   6 重试加载 FASL
   #.
   7 继续,处理加载 FASL
   #
     已经成功了。
   8 重试 ASDF 操作。
   9 重置配置后重试 ASDF 操作。
  10 重试 ASDF 操作。
  11 重置配置后重试 ASDF 操作。
  12(中止)放弃“rutils”
  13 返回顶部循环级别 0。

键入 :b 进行回溯或键入 :c 继续。
输入 :bug-form "" 作为错误报告模板或 :? 其他选项。

有什么线索吗?

4

1 回答 1

4

我可以通过跑步让它消失,CL-USER 10 > (setf *handle-warn-on-redefinition* :warn)但这是正确的方法吗?

是的,这是摆脱这个问题的一种方法。例如,您可以在文件的主目录中设置它.lispworks。默认情况下,LispWorks 会尝试保护关键字包(以及其他一些关键字)免受用户更改的影响。

另请注意,您可以使用第一次重新启动来重新定义它并继续。

于 2018-04-29T08:19:14.537 回答