(setq *internal-real-time-base-seconds* seconds)
uint)))))
-;;; REMOVEME once runtime nonmonotonicity problem is debugged
-(defvar *last-utime-sec*)
-(defvar *last-utime-usec*)
-(defvar *last-stime-sec*)
-(defvar *last-stime-usec*)
-(defvar *last-internal-run-time*)
-(push (lambda ()
- (makunbound '*last-internal-run-time*))
- *before-save-initializations*)
-
(defun get-internal-run-time ()
#!+sb-doc
"Return the run time in the internal time format. This is useful for
stime-usec
(floor micro-seconds-per-internal-time-unit 2))
micro-seconds-per-internal-time-unit))))
-
- ;; REMOVEME once runtime nonmonotonicity problem is debugged
- (when (boundp '*last-internal-run-time*)
- (unless (>= result *last-internal-run-time*)
- (error "non-monotonic:~@
- UTIME-SEC ~S ~S~@
- UTIME-USEC ~S ~S~@
- STIME-SEC ~S ~S~@
- STIME-USEC ~S ~S~@
- RESULT ~S ~S"
- *last-utime-sec* utime-sec
- *last-utime-usec* utime-usec
- *last-stime-sec* stime-sec
- *last-stime-usec* stime-usec
- *last-internal-run-time* result)))
- (setf *last-utime-sec* utime-sec
- *last-utime-usec* utime-usec
- *last-stime-sec* stime-sec
- *last-stime-usec* stime-usec
- *last-internal-run-time* result)
-
result)))
\f
;;;; Encode and decode universal times.
;;; Try to compile the closure arg to %TIME if it is interpreted.
(defun massage-time-function (fun)
- (cond
- ((sb!eval:interpreted-function-p fun)
- (multiple-value-bind (def env-p) (function-lambda-expression fun)
- (declare (ignore def))
- (cond
- (env-p
- (warn "TIME form in a non-null environment, forced to interpret.~@
- Compiling entire form will produce more accurate times.")
- fun)
- (t
- (compile nil fun)))))
- (t fun)))
+ ;; This is just a placeholder as of the switch from IR1 interpreter
+ ;; to bytecode interpreter. Someday it might make sense to complain
+ ;; about bytecoded FUN and/or compile it to native code, so I've
+ ;; left the placeholder in place, but as of sbcl-0.7.0 it's not
+ ;; obvious how to do the right thing easily, so I haven't actually
+ ;; done it. -- WHN
+ fun)
-;;; Return all the files that we want time to report.
+;;; Return all the data that we want TIME to report.
(defun time-get-sys-info ()
(multiple-value-bind (user sys faults) (sb!sys:get-system-info)
(values user sys faults (get-bytes-consed))))