首页 > 解决方案 > 为什么 ql:quickload 会忽略错误,但 asdf:load-system 不会?

问题描述

我发现有时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,会弹出一个错误并且可以进行调试。

你如何忍受这种行为?

标签: common-lispquicklispasdf

解决方案


这是 Quicklisp 的一个问题,我不知道有什么好的解决方法。

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

但是,在加载您自己的项目时,这是一种不好的行为,这些项目可能会不断变化,并且详细和信息丰富的消息对这些项目很有用。

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


推荐阅读