... 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])
(let ([s (string->symbol arg)]) (unless (null? args)
(cond (let ([arg (car args)])
[(memq s implementations) (let ([s (string->symbol arg)])
(set! run-implementations (cond
(append (or run-implementations null) [(memq s implementations)
(list s)))] (set! run-implementations
[(assq s no-implementations) (append (or run-implementations null)
=> (lambda (a) (list s)))
(set! run-implementations (loop (cdr args))]
(remq (cdr a) [(assq s no-implementations)
(or run-implementations default-implementations))))] => (lambda (a)
[(memq s benchmarks) (set! run-implementations
(set! run-benchmarks (remq (cdr a)
(append (or run-benchmarks null) (or run-implementations default-implementations)))
(list s)))] (loop (cdr args)))]
[(assq s no-benchmarks) [(memq s benchmarks)
=> (lambda (a) =>
(set! run-benchmarks (lambda (l)
(remq (cdr a) (let* ([...? (and (pair? (cdr args))
(or run-benchmarks default-benchmarks))))] (equal? (cadr args) "..."))]
[else [new (if ...?
(error 'auto "mysterious argument: ~a" arg)]))) l
args) (list s))])
(set! run-benchmarks
(append (or run-benchmarks null)
new))
(loop ((if ...? cddr cdr) args))))]
[(assq s no-benchmarks)
=> (lambda (a)
(set! run-benchmarks
(remq (cdr a)
(or run-benchmarks default-benchmarks)))
(loop (cdr args)))]
[else
(error 'auto "mysterious argument: ~a" arg)])))))
(values (or run-benchmarks (values (or run-benchmarks
benchmarks) benchmarks)