SBCL 错误消息



当我使用 SBCL(我最喜欢的实现)时,我经常在 REPL 中看到这种错误消息

CL-USER> (vgplot:fred) ; Evaluation aborted on
#<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Symbol ~S not found in the ~A package." {1004289123}>. CL-USER>

我认为该消息的意思是"在 VGPLOT 包中找不到符号 FRED"。

我想我在构建 SBCL 时做错了什么(尽管我似乎找不到确切的内容),只是想知道是否有人可以提供有关如何使其消失的建议,因为它很烦人。

你可以

这样做:

(defmethod print-object :around ((condition simple-condition) stream)
  (print-unreadable-object (condition stream)
    (apply #'format stream (simple-condition-format-control condition)
                           (simple-condition-format-arguments condition))
    (terpri stream)
    (call-next-method)))

这会将所有simple-condition(其中sb-int:simple-reader-error是其中之一)的格式化描述添加到其打印表单中。 我真的不认为这是一个"好主意",它可能会产生一些意想不到的后果。

一个更好的解决方案是修改史莱姆/swank以打印此信息本身,但我不知道该怎么做。

最新更新