diff --git a/collects/typed-scheme/core.rkt b/collects/typed-scheme/core.rkt index 04ac1879..e2e1bc90 100644 --- a/collects/typed-scheme/core.rkt +++ b/collects/typed-scheme/core.rkt @@ -20,9 +20,12 @@ (define (mb-core stx) (syntax-parse stx - [(mb (~optional (~and #:optimize (~bind [opt? #'#t]))) forms ...) + [(mb (~optional (~or (~and #:optimize (~bind [opt? #'#t])) ; kept for backward compatibility + (~and #:no-optimize (~bind [opt? #'#f])))) + forms ...) (let ([pmb-form (syntax/loc stx (#%plain-module-begin forms ...))]) - (parameterize ([optimize? (or (optimize?) (attribute opt?))]) + (parameterize ([optimize? (or (and (not (attribute opt?)) (optimize?)) + (and (attribute opt?) (syntax-e (attribute opt?))))]) (tc-setup stx pmb-form 'module-begin new-mod tc-module after-code (with-syntax* diff --git a/collects/typed-scheme/utils/utils.rkt b/collects/typed-scheme/utils/utils.rkt index 78768203..47712145 100644 --- a/collects/typed-scheme/utils/utils.rkt +++ b/collects/typed-scheme/utils/utils.rkt @@ -25,7 +25,7 @@ at least theoretically. ;; provide macros rep utils typecheck infer env private types) -(define optimize? (make-parameter #f)) +(define optimize? (make-parameter #t)) (define-for-syntax enable-contracts? #f) (define show-input? (make-parameter #f))