抑制asdf:load-system控制台输出

时间:2014-04-13 16:38:04

标签: common-lisp sbcl asdf

我使用Steel Bank Common Lisp创建了一个小项目,我正在使用ASDF来编译和加载它。 load命令是:

(asdf:load-system :<my-system>)

一切正常(程序编译并运行正常)但我一直得到输出

; compiling file "[...].lisp" (written 13 APR 2014 06:20:03 PM):
; compiling (DEFPACKAGE :<my-package> ...)
; compiling (DEFUN <my-func-1> ...)
; compiling (DEFUN <my-func-2> ...)
; compiling (DEFUN <my-func-3> ...)

每次重新编译程序时。

我认为此输出来自asdf,因为我使用

调用应用程序
sbcl --noinform --noprint --script runner_sbcl.lisp

其中runner_sbcl.lisp通过asdf:load-system加载实际应用程序。所以我想 此输出不是来自sbcl

有没有办法在asdf:load-system中禁用控制台输出?我希望只收到有关编译错误/警告的通知。 我在文档中找不到任何信息。

2 个答案:

答案 0 :(得分:3)

怎么样

(setf *load-verbose* nil)
(setf *load-print* nil)
(setf *compile-verbose* nil)
(setf *compile-print* nil)

无论如何,他们为什么要设定?

答案 1 :(得分:2)

这是我使用quicklisp的ql:quickload的类似问题的解决方法。

(with-output-to-string (*standard-output*)
  ;; asdf:load-system or ql:quickload..
  (asdf:load-system :<your-system>))