... notation for continuing benchmarks

svn: r4330
This commit is contained in:
Matthew Flatt 2006-09-14 00:37:12 +00:00
parent 08f06adfc2
commit 210cb5affe

View File

@ -64,30 +64,42 @@
;; Process arguments ------------------------------ ;; Process arguments ------------------------------
(for-each (lambda (arg) (let loop ([args args])
(unless (null? args)
(let ([arg (car args)])
(let ([s (string->symbol arg)]) (let ([s (string->symbol arg)])
(cond (cond
[(memq s implementations) [(memq s implementations)
(set! run-implementations (set! run-implementations
(append (or run-implementations null) (append (or run-implementations null)
(list s)))] (list s)))
(loop (cdr args))]
[(assq s no-implementations) [(assq s no-implementations)
=> (lambda (a) => (lambda (a)
(set! run-implementations (set! run-implementations
(remq (cdr a) (remq (cdr a)
(or run-implementations default-implementations))))] (or run-implementations default-implementations)))
(loop (cdr args)))]
[(memq s benchmarks) [(memq s benchmarks)
=>
(lambda (l)
(let* ([...? (and (pair? (cdr args))
(equal? (cadr args) "..."))]
[new (if ...?
l
(list s))])
(set! run-benchmarks (set! run-benchmarks
(append (or run-benchmarks null) (append (or run-benchmarks null)
(list s)))] new))
(loop ((if ...? cddr cdr) args))))]
[(assq s no-benchmarks) [(assq s no-benchmarks)
=> (lambda (a) => (lambda (a)
(set! run-benchmarks (set! run-benchmarks
(remq (cdr a) (remq (cdr a)
(or run-benchmarks default-benchmarks))))] (or run-benchmarks default-benchmarks)))
(loop (cdr args)))]
[else [else
(error 'auto "mysterious argument: ~a" arg)]))) (error 'auto "mysterious argument: ~a" arg)])))))
args)
(values (or run-benchmarks (values (or run-benchmarks
benchmarks) benchmarks)