Подавление вывода asdf:load-system консоли
-
21-12-2019 - |
Вопрос
Я создал небольшой проект, используя 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
?Я хотел бы получать уведомления только об ошибках/предупреждениях компиляции.В документации я не нашел никакой информации.
Решение
как насчет
(setf *load-verbose* nil)
(setf *load-print* nil)
(setf *compile-verbose* nil)
(setf *compile-print* nil)
?
Зачем они вообще установлены?
Другие советы
Это мой обходной путь для аналогичной проблемы, которая возникла у меня с ql:quickload в Quicklisp.
(with-output-to-string (*standard-output*)
;; asdf:load-system or ql:quickload..
(asdf:load-system :<your-system>))