14 Dec 2006 21:57
Proposal: make asdf output go to *standard-output*
Richard M Kreuter <kreuter <at> progn.net>
2006-12-14 20:57:43 GMT
2006-12-14 20:57:43 GMT
Hello,
I'd like to propose that asdf send its output to *standard-output* (by
having asdf:operate bind asdf::*verbose-out* to cl:*standard-output*
instead of *trace-output*), and that it be documented that .asd files
and asdf extensions that print output should do so to
*standard-output*, too. A patch to this effect is appended.
Here's the rationale: there has be some way to stifle output during
asdf:operate in order for programs to use asdf in contexts where it's
necessary to be persnickety about output (e.g., Unix-style scripts and
cron jobs). At present, there's no way to do this without digging
into asdf.lisp itself, and then there are various deficiencies:
(0) asdf:operate's verbose keyword doesn't stifle very much output
when nil is supplied. Compiler and loader output, as well as any
compile-time or load-time print operations in .asd files or in
system components still get out.
(1) asdf:operate's verbose keyword only stifles output from that call
to operate -- output will still be emitted if asdf:operate is
called during the operation without :verbose nil. This is the de
facto standard way to require prerequisite asdf systems, and there
are a several incidences of this in the wild.
(2) The stream that asdf uses for output internally, *verbose-out*, is
not exported, and so it's unclear where systems and extensions are
supposed to send their output. There's at least one system
available that prints to *standard-output* in the .asd file.
(Continue reading)
RSS Feed