Works for me on ASDF.
For load-op and compile-op, times are stored in the operation-times slot of the component, as accessed by component-operation-times. Load-source-op should be doing the same, really. I've just added a method component-operation-time that allows one to do the Right Thing(tm) whatever that right thing is. Maybe we want load-source-op and load-op to share a same time, for instance.
If ABCL is doing the wrong thing, I suggest that you TRACE operation-done-p and/or safe-file-write-date and see what it tells you.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Death is only a milestone - albeit one that is dropped on you from a very great height — Terry Pratchett.
On 2 May 2010 00:17, Alan Ruttenberg alanruttenberg@gmail.com wrote:
Situation:
abcl there is a newer compiled file than source file calling load-op on the system with this file causes the fasl to be repeatedly loaded.
The reason, it appears:
(defmethod perform ((o load-op) (c cl-source-file)) #-ecl (mapcar #'load (input-files o c)) #+ecl (loop :for i :in (input-files o c) :unless (string= (pathname-type i) "fas") :collect (let ((output (compile-file-pathname (lispize-pathname i)))) (load output))))
compared to
(defmethod perform ((o load-source-op) (c cl-source-file)) (let ((source (component-pathname c))) (setf (component-property c 'last-loaded-as-source) (and (load source) (get-universal-time)))))
i.e. the last loaded-time is recorded only when the source is loaded.
-Alan