Update of /cvsroot/sbcl/sbcl/contrib/asdf-install
In directory sc8-pr-cvs1:/tmp/cvs-serv21699/contrib/asdf-install
Modified Files:
installer.lisp
Log Message:
0.8.3.10
Restore the GC hooks. *BEFORE-GC-HOOKS* and *AFTER-GC-HOOKS*
are run with interrupts disabled and all other threads
paused. They should take no arguments. This means that
finalization works again: three cheers.
Remove all trace of *GC-NOTIFY-{BEFORE,AFTER,STREAM}* : if you
want to notify the user that G is being C, use a hook.
test/threads.impure.lisp contains a new test which is known
to fail. Don't feel bad about deleting it
Fix asdf-install to actually chase dependencies recursively
instead of just finding the first one then stopping. Now it
seems to be able to install Araneida
Restore inadvertently chopped line to version.lisp-expr
Index: installer.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/contrib/asdf-install/installer.lisp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- installer.lisp 14 Aug 2003 14:06:26 -0000 1.2
+++ installer.lisp 28 Aug 2003 15:32:28 -0000 1.3
@@ -252,17 +252,24 @@
do (format t "Installing ~A in ~A,~A~%"
p source system)
append (install-package source system p)))
- (handler-case
- (asdf:operate 'asdf:load-op asd)
- (asdf:missing-dependency (c)
- (format t
- "Downloading package ~A, required by ~A~%"
- (asdf::missing-requires c)
- (asdf:component-name
- (asdf::missing-required-by c)))
- (one-iter (list
- (symbol-name
- (asdf::missing-requires c)))))))))
+ (handler-bind
+ ((asdf:missing-dependency
+ (lambda (c)
+ (format t
+ "Downloading package ~A, required by ~A~%"
+ (asdf::missing-requires c)
+ (asdf:component-name
+ (asdf::missing-required-by c)))
+ (one-iter (list
+ (symbol-name
+ (asdf::missing-requires c))))
+ (invoke-restart 'retry))))
+ (loop
+ (multiple-value-bind (ret restart-p)
+ (with-simple-restart
+ (retry "Retry installation")
+ (asdf:operate 'asdf:load-op asd))
+ (unless restart-p (return))))))))
(one-iter packages)))
(dolist (l *temporary-files*)
- (when (probe-file l) (delete-file l))))))
+ (when (probe-file l) (delete-file l))))))
|