当我使用 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以打印此信息本身,但我不知道该怎么做。