[Corrected patch] Re: Proposal: make asdf output go to *standard-output*
Richard M Kreuter <[email protected]>
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
I'm sorry, I often reverse the order of arguments to diff. Here's
the corrected patch:
--- asdf.lisp.~1.102.~ 2006-12-13 15:56:20.000000000 -0500
+++ asdf.lisp 2006-12-14 15:12:09.000000000 -0500
@@ -872,7 +872,7 @@
(let* ((op (apply #'make-instance operation-class
:original-initargs args
args))
- (*verbose-out* (if verbose *trace-output* (make-broadcast-stream)))
+ (*verbose-out* (if verbose *standard-output* (make-broadcast-stream)))
(system (if (typep system 'component) system (find-system system))))
(unless (version-satisfies system version)
(error 'missing-component :requires system :version version))
--- asdf.texinfo.~1.5.~ 2004-08-18 08:54:26.000000000 -0400
+++ asdf.texinfo 2006-12-14 15:37:56.000000000 -0500
@@ -188,6 +188,11 @@
(asdf:operate 'asdf:load-op '@var{foo})
@end example
+Output from asdf and asdf extensions are supposed to be sent to the CL
+stream @code{*standard-output*}, and so rebinding that stream around
+calls to @code{asdf:operate} should redirect all output from asdf
+operations.
+
That's all you need to know to use asdf to load systems written by
others. The rest of this manual deals with writing system
definitions for Lisp software you write yourself.
@@ -204,6 +209,7 @@
* The defsystem form::
* A more involved example::
* The defsystem grammar::
+* Other code in .asd files::
@end menu
@node The defsystem form, A more involved example, Defining systems with defsystem, Defining systems with defsystem
@@ -316,7 +322,7 @@
have been processed, but before the component in question has been
compiled.
-@node The defsystem grammar, , A more involved example, Defining systems with defsystem
+@node The defsystem grammar, Other code in .asd files, A more involved example, Defining systems with defsystem
@comment node-name, next, previous, up
@section The defsystem grammar
@@ -409,6 +415,23 @@
within an editor without clobbering its source location)
@end itemize
+@node Other code in .asd files, , The defsystem grammar, Defining systems with defsystem
+@section Other code in .asd files
+
+Files containing defsystem forms are regular Lisp files that are
+executed by @code{load}. Consequently, you can put whatever Lisp code
+you like into these files (e.g., code that examines the compile-time
+environment and adds appropriate features to @code{*features*}).
+However, some conventions should be followed, so that users can
+control certain details of execution of the Lisp in .asd files:
+
+@itemize
+@item
+Any informative output (other than warnings and errors, which are the
+condition system's to dispose of) should be sent to the standard CL
+stream @code{*standard-output*}, so that users can easily control the
+disposition of output from asdf operations.
+@end itemize
@node The object model of asdf, Error handling, Defining systems with defsystem, Top
@@ -594,6 +617,9 @@
@end itemize
+Operations that print output should send that output to the standard
+CL stream @code{*standard-output*}, as the Lisp compiler and loader do.
+
@node Components, , Operations, The object model of asdf
@comment node-name, next, previous, up
@section Components
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV