(Thanks to Marius Vollmer)
+2001-03-20 Keisuke Nishida <kxn30@po.cwru.edu>
+
+ * time.scm (time): Reimplemented as a procedure call.
+ (Thanks to Marius Vollmer)
+
2001-03-20 Keisuke Nishida <kxn30@po.cwru.edu>
* safe-r5rs.scm (list): Export.
2001-03-20 Keisuke Nishida <kxn30@po.cwru.edu>
* safe-r5rs.scm (list): Export.
:use-module (ice-9 format)
:export (time))
:use-module (ice-9 format)
:export (time))
-(define-macro (time form)
+(define (time-proc proc)
(let* ((gc-start (gc-run-time))
(let* ((gc-start (gc-run-time))
- (tms-start (times))
- (result (eval form (interaction-environment)))
- (tms-end (times))
- (gc-end (gc-run-time)))
+ (tms-start (times))
+ (result (proc))
+ (tms-end (times))
+ (gc-end (gc-run-time)))
(define (get proc start end)
(/ (- (proc end) (proc start)) internal-time-units-per-second))
(display "clock utime stime cutime cstime gctime\n")
(format #t "~5,2F ~5,2F ~5,2F ~6,2F ~6,2F ~6,2F\n"
(define (get proc start end)
(/ (- (proc end) (proc start)) internal-time-units-per-second))
(display "clock utime stime cutime cstime gctime\n")
(format #t "~5,2F ~5,2F ~5,2F ~6,2F ~6,2F ~6,2F\n"
- (get tms:clock tms-start tms-end)
- (get tms:utime tms-start tms-end)
- (get tms:stime tms-start tms-end)
- (get tms:cutime tms-start tms-end)
- (get tms:cstime tms-start tms-end)
- (get id gc-start gc-end))
+ (get tms:clock tms-start tms-end)
+ (get tms:utime tms-start tms-end)
+ (get tms:stime tms-start tms-end)
+ (get tms:cutime tms-start tms-end)
+ (get tms:cstime tms-start tms-end)
+ (get id gc-start gc-end))
+
+(define-macro (time exp)
+ `(,time-proc (lambda () ,exp)))