Commit 08d16943 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

2.26.10: another pass to fix timestamp processing.

* Get rid of *stamp*, use lexical scoping everywhere
* Better handle non-filesystem actions in compute-action-stamp
* Have a simpler mechanism for backward compatibility with operation-done-p
* Have a more robust make-sub-operation, and use it where appropriate
* Test twiddling.
parent da0d1380
......@@ -14,7 +14,7 @@
:licence "MIT"
:description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems."
:version "2.26.9" ;; to be automatically updated by bin/bump-revision
:version "2.26.10" ;; to be automatically updated by bin/bump-revision
:depends-on ()
((:file "asdf")))
This diff is collapsed.
......@@ -186,3 +186,23 @@ is bound, write a message and exit on an error. If
(defmacro test-asdf (&body body)
`(testing-asdf #'(lambda () ,@body)))
(defmacro DBG (tag &rest exprs)
"simple debug statement macro:
outputs a tag plus a list of variable and their values, returns the last value"
;"if not in debugging mode, just compute and return last value"
; #-do-test (declare (ignore tag)) #-do-test (car (last exprs)) #+do-test
(let ((res (gensym))(f (gensym)))
`(let (,res (*print-readably* nil))
(flet ((,f (fmt &rest args) (apply #'format *error-output* fmt args)))
(,f "~&~A~%" ,tag)
#'(lambda (x)
`((,f "~& ~S => " ',x)
(,f "~{~S~^ ~}~%" (setf ,res (multiple-value-list ,x)))))
(apply 'values ,res)))))
(DBG :cas o c just-done base-stamp stamp-lookup out-files in-files null-op op-time dep-stamp out-stamps in-stamps missing-in missing-out all-present earliest-out latest-in done-stamp (stamp<= latest-in earliest-out) (operation-done-p o c))
......@@ -4,7 +4,7 @@
(setf asdf:*central-registry* '(*default-pathname-defaults*))
(asdf:operate 'asdf:load-op 'test-module-depend)
(asdf:load-system 'test-module-depend)
;; test that it compiled
(let ((file1-date (file-write-date (asdf:compile-file-pathname* "file1"))))
......@@ -2,24 +2,23 @@
(load "script-support.lisp")
(in-package :asdf)
(use-package :asdf-test)
(in-package :asdf-test)
#+gcl (trace coerce-pathname)
(format t "dpd: ~S~%f1: ~S~%" *default-pathname-defaults* (merge-pathnames* "file1"))
(format t "dpd: ~S~%f1: ~S~%" *default-pathname-defaults* (asdf::merge-pathnames* "file1"))
(setf *central-registry* '(*default-pathname-defaults*))
(setf asdf:*central-registry* '(*default-pathname-defaults*))
(operate 'load-op 'static-and-serial)
(let* ((file1 (compile-file-pathname* "file1.lisp"))
(asdf:operate 'asdf:load-op 'static-and-serial)
(let* ((file1 (asdf:compile-file-pathname* "file1.lisp"))
(file1-date (file-write-date file1)))
(clear-system 'static-and-serial)
(format t "file: ~S~%date: ~S~%" file1 file1-date)
(assert file1-date)
(format t "file: ~S~%date: ~S~%" file1 file1-date)
;; date should stay same
(asdf:clear-system 'static-and-serial)
(sleep 1)
(operate 'load-op 'static-and-serial)
(asdf:operate 'asdf:load-op 'static-and-serial)
(assert (equal (file-write-date file1) file1-date))))
Supports Markdown
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