racket/collects/macro-debugger/util/logger.rkt
2012-12-05 12:19:18 -05:00

24 lines
781 B
Racket

#lang racket/base
(require racket/format)
(provide (all-defined-out))
(define-logger macro-stepper)
(define (log-macro-stepper-time task msecs)
(log-macro-stepper-debug
(format "time for ~a: ~ams" task (~r msecs #:precision 0))))
(define-syntax-rule (with-log-time task body ...)
(let ([time1 (current-inexact-milliseconds)])
(begin0 (begin body ...)
(let ([time2 (current-inexact-milliseconds)])
(log-macro-stepper-time task (- time2 time1))))))
(define-syntax-rule (splicing-with-log-time task body ...)
(begin (define time1 (current-inexact-milliseconds))
body ...
(define time2 (current-inexact-milliseconds))
(define-values ()
(begin0 (values)
(log-macro-stepper-time task (- time2 time1))))))