1.0.33.10: Make slam.sh usable to obtain a trace-file post-build.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 12 Dec 2009 20:55:15 +0000 (20:55 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 12 Dec 2009 20:55:15 +0000 (20:55 +0000)
  * Have slam.lisp re-load build-order.lisp-expr in order to obtain new
flags as needed.

  * Also check for outdated/non-extant trace file for stems flagged as
requiring one.

src/cold/slam.lisp
version.lisp-expr

index aa3b1f7..02d91ad 100644 (file)
        (> (file-write-date output)
           (file-write-date input))))
 
+;;; One possible use-case for slam.sh is to generate a trace-file for
+;;; a file that is suddenly of interest, but was not of interest
+;;; before.  In order for this to work, we need to reload the stems
+;;; and flags from build-order.lisp-expr, the user needs to have added
+;;; :trace-file as a flag.
+(setf *stems-and-flags* (read-from-file "build-order.lisp-expr"))
+
 (do-stems-and-flags (stem flags)
   (unless (position :not-target flags)
     (let ((srcname (stem-source-path stem))
           (objname (stem-object-path stem flags :target-compile)))
-      (unless (output-up-to-date-wrt-input-p objname srcname)
+      (unless (and (output-up-to-date-wrt-input-p objname srcname)
+                   ;; Back to our "new-trace-file" case, also build if
+                   ;; a trace file is desired but is out-of-date.
+                   (or (not (position :trace-file flags))
+                       (output-up-to-date-wrt-input-p
+                        (concatenate 'string (stem-remap-target stem)
+                                     ".trace")
+                        srcname)))
         (target-compile-stem stem flags)))))
index 90938a4..18f2b3f 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.33.9"
+"1.0.33.10"