From 58097df5cfaf60eaeabed704f33a3e2b2c04acac Mon Sep 17 00:00:00 2001 From: Gary King <gwking@metabang.com> Date: Sun, 21 Jan 2007 14:09:51 +0000 Subject: [PATCH] ASDF now sends output to *standard-output* (thanks to Richard M. Kreuter). --- asdf.lisp | 6 +++--- asdf.texinfo | 28 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/asdf.lisp b/asdf.lisp index e661426c..666ccde8 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1,4 +1,4 @@ -;;; This is asdf: Another System Definition Facility. $Revision: 1.102 $ +;;; This is asdf: Another System Definition Facility. $Revision: 1.103 $ ;;; ;;; Feedback, bug reports, and patches are all welcome: please mail to ;;; <cclan-list@lists.sf.net>. But note first that the canonical @@ -112,7 +112,7 @@ (in-package #:asdf) -(defvar *asdf-revision* (let* ((v "$Revision: 1.102 $") +(defvar *asdf-revision* (let* ((v "$Revision: 1.103 $") (colon (or (position #\: v) -1)) (dot (position #\. v))) (and v colon dot @@ -872,7 +872,7 @@ system.")) (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)) diff --git a/asdf.texinfo b/asdf.texinfo index 33c36b43..b9db57a4 100644 --- a/asdf.texinfo +++ b/asdf.texinfo @@ -188,6 +188,11 @@ evaluating the following form in your Lisp implementation: (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 @@ software. * 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 @@ them to -- a @code{:before} method on perform @code{((op compile-op) (c 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 @@ unbound (so that a developer can evaluate a @code{defsystem} form from 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 @@ where to put its files, because the user is allowed to override @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 -- GitLab