It's useful for ASDF: OPERATE to indicate whether it did something.
Based on that, you can make the decision, for instance, whether to save
a new image or not. This can be useful in reducing incremental build
times. For instance, I take advantage of this in a Makefile, where
saving the image triggers additional steps which load that image to
create derived images.
Fucking Google Groups will eat this, but you get the idea:
Index: asdf/asdf.lisp
===================================================================
RCS file:
/usr/local/cvsroot/clkd/F-D02ABF0BACBEAE95E15455DB2BDD3A1D.lisp,v
retrieving revision 1.3
diff -u -r1.3 asdf/asdf.lisp
--- asdf/asdf.lisp 1 Jan 2007 03:31:51 -0000 1.3
+++ asdf/asdf.lisp 9 Jan 2007 06:53:04 -0000
@@ -882,28 +882,31 @@
(unless (version-satisfies system version)
(error 'missing-component :requires system :version version))
(let ((steps (traverse op system)))
- (with-compilation-unit ()
- (loop for (op . component) in steps do
- (loop
- (restart-case
+ (if steps
+ (with-compilation-unit ()
+ (loop for (op . component) in steps do
+ (loop
+ (restart-case
(progn (perform op component)
(return))
- (retry ()
- :report
- (lambda (s)
- (format s ··@<Retry performing ~S on ····@:>"
- op component)))
- (accept ()
- :report
- (lambda (s)
- (format s
- ··@<Continue, treating ~S on ~S as ~
- having been ············@:>"
- op component))
- (setf (gethash (type-of op)
- (component-operation-times component))
- (get-universal-time))
- (return)))))))))
+ (retry ()
+ :report
+ (lambda (s)
+ (format s ··@<Retry performing ~S on ····@:>"
+ op component)))
+ (accept ()
+ :report
+ (lambda (s)
+ (format s
+ ··@<Continue, treating ~S on ~S as ~
+ having been ············@:>"
+ op component))
+ (setf (gethash (type-of op)
+ (component-operation-times component))
+ (get-universal-time))
+ (return))))
+ finally (return t)))
+ nil))))
(defun oos (&rest args)
"Alias of OPERATE function"
From: Richard M Kreuter
Subject: Re: [PATCH] ASDF: return status indication from OPERATE
Date:
Message-ID: <87ac0suo5h.fsf@progn.net>
"Kaz Kylheku" <········@gmail.com> writes:
> It's useful for ASDF: OPERATE to indicate whether it did something.
Why did you send this patch to comp.lang.lisp, rather than the cclan
mailing list?
--
RmK