Commit 80477bdb authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Merge branch 'master' of http://common-lisp.net/project/asdf/asdf

parents dcdc48a0 4711ad45
......@@ -467,6 +467,16 @@ processed in order by OPERATE."))
;;;; General Purpose Utilities
(defmacro while-collecting ((&rest collectors) &body body)
"COLLECTORS should be a list of names for collections. A collector
defines a function that, when applied to an argument inside BODY, will
add its argument to the corresponding collection. Returns multiple values,
a list for each collection, in order.
E.g.,
\(while-collecting \(foo bar\)
\(dolist \(x '\(\(a 1\) \(b 2\) \(c 3\)\)\)
\(foo \(first x\)\)
\(bar \(second x\)\)\)\)
Returns two values: \(A B C\) and \(1 2 3\)."
(let ((vars (mapcar #'(lambda (x) (gensym (symbol-name x))) collectors))
(initial-values (mapcar (constantly nil) collectors)))
`(let ,(mapcar #'list vars initial-values)
......
;;; -*- Lisp -*-
(asdf:defsystem test-redundant-recompile
:components ((:file "file2" :in-order-to ((compile-op (load-op "file1"))
(load-op (load-op "file1"))))
(:file "file1")))
#|
;;;This test system definition attempts to replicate the excess dependencies
;;;that seem to give rise to launchpad bug 590517
;;;(https://bugs.launchpad.net/asdf/+bug/590517)
1) from clean, check that all fasl files build and that some function
defined in the second file is present
2) load again. Check to make sure that nothing is recompiled.
|#
;;; -*- Lisp -*-
(load "script-support")
(load-asdf)
(quit-on-error
(setf asdf:*central-registry* '(*default-pathname-defaults*))
(asdf:operate 'asdf:load-op 'test-redundant-recompile)
;; test that it compiled
(let* ((file1 (asdf:compile-file-pathname* "file1"))
(file2 (asdf:compile-file-pathname* "file2"))
(file1-date (file-write-date file1))
(file2-date (file-write-date file2)))
(format t "~&test-redundant-recompile 1: ~S ~S~%" file1 file1-date)
(format t "~&test-redundant-recompile 2: ~S ~S~%" file2 file2-date)
(assert file1-date)
(assert file2-date)
;; and loaded
(assert (symbol-value (find-symbol (symbol-name :*file1*) :test-package)))
;; now rerun the load-op and check that no files are recompiled
;;(trace asdf::operation-done-p asdf::traverse)
(asdf:operate 'asdf:load-op 'test-redundant-recompile)
(assert (= file1-date (file-write-date file1)))
(assert (= file2-date (file-write-date file2)))))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment