Подавление вывода консоли asdf:load-system

Я создал небольшой проект, используя Steel Bank Common Lisp, и я использую ASDF для его компиляции и загрузки. Команда загрузки:

(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? Я хотел бы получать уведомления только об ошибках/предупреждениях компиляции. В документации не нашел никакой информации.


person Giorgio    schedule 13.04.2014    source источник


Ответы (2)


что о

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

?

Зачем они вообще установлены?

person Faré    schedule 16.04.2014
comment
Вы имеете в виду (setf *load-verbose* nil) и т. д.? Я думаю, что * было интерпретировано как форматирование курсивом в вашем ответе. Во всяком случае, я попробовал это, и это, кажется, работает. - person Giorgio; 17.04.2014

Это мой обходной путь для аналогичной проблемы, которая у меня была с ql:quickload в quicklisp.

(with-output-to-string (*standard-output*)
  ;; asdf:load-system or ql:quickload..
  (asdf:load-system :<your-system>))
person jinwoo    schedule 16.04.2014
comment
Это может привести к довольно большой строке. Лучше бы *standard-output* привязать к потоку, уходящему в нирвану (вроде как /dev/null). Вы можете создать такой поток с make-broadcast-stream без аргументов. - person Svante; 16.04.2014
comment
Не знал о make-broadcast-stream. Это звучит очень удобно. Спасибо! - person jinwoo; 19.04.2014