为什么ql:quickload会忽略错误,而asdf:load-system不会呢?

时间:2018-09-06 18:14:49

标签: common-lisp quicklisp asdf

我发现有时ql:quickload只是无声地跳过了诸如以下的严重错误:

;Compiler warnings for "home:common-lisp;mito-email-auth;src;models.lisp.newest" :
;   In SEND-CODE: In the form ("Для входа на сайт [Skazorama.ru](~A), перейдите по [этой ссылке](~A)" URL URL), "Для входа на сайт [Skazorama.ru](~A), перейдите по [этой ссылке](~A)" is not a symbol or lambda expression.

(我忘了将宏导入包中。该宏会将代码转换为有用的东西)。

但是当我使用asdf:load-system加载该库时,会弹出一个错误,可供调试。

您如何忍受这种行为?

1 个答案:

答案 0 :(得分:7)

这是Quicklisp的问题,我不知道如何解决。

之所以会这样,是因为Quicklisp在设计上抑制了它提供的库的加载输出,并通过打印.来总结进度。想法是,这些支持库是固定的基础结构,并且输出不会产生不必要的额外噪音。

但是,这在加载您自己的项目时是不好的行为,它可能会不断变化,并且详细而有用的消息很有用。

我还没有一个系统可以显示您自己项目的详细输出,以及Quicklisp提供的项目的简洁输出。同时,出于我自己的目的,我发现(ql:quickload "my-project" :verbose t)或根据需要将*quickload-verbose*设置为真实工作。如果这些选项都不适合您,我很想知道更多有关您的配置的信息,例如正在使用什么实现和版本。