add #:optimize keyword
This commit is contained in:
parent
93835460cb
commit
a6e314d367
|
@ -48,4 +48,4 @@
|
||||||
(syntax-parse stx #:literal-sets (kernel-literals)
|
(syntax-parse stx #:literal-sets (kernel-literals)
|
||||||
[(define-values ~! ids e:opt-expr)
|
[(define-values ~! ids e:opt-expr)
|
||||||
(syntax/loc stx (define-values ids e.opt))]
|
(syntax/loc stx (define-values ids e.opt))]
|
||||||
[_ (printf "nothing happened") stx]))
|
[_ stx]))
|
|
@ -34,8 +34,8 @@
|
||||||
(define-syntax (module-begin stx)
|
(define-syntax (module-begin stx)
|
||||||
(define module-name (syntax-property stx 'enclosing-module-name))
|
(define module-name (syntax-property stx 'enclosing-module-name))
|
||||||
;(printf "BEGIN: ~a~n" (syntax->datum stx))
|
;(printf "BEGIN: ~a~n" (syntax->datum stx))
|
||||||
(syntax-case stx ()
|
(syntax-parse stx
|
||||||
[(mb forms ...)
|
[(mb (~optional (~and #:optimize (~bind [opt? #'#t]))) forms ...)
|
||||||
(nest
|
(nest
|
||||||
([begin (set-box! typed-context? #t)
|
([begin (set-box! typed-context? #t)
|
||||||
(start-timing module-name)]
|
(start-timing module-name)]
|
||||||
|
@ -48,6 +48,8 @@
|
||||||
[infer-param infer]
|
[infer-param infer]
|
||||||
;; do we report multiple errors
|
;; do we report multiple errors
|
||||||
[delay-errors? #t]
|
[delay-errors? #t]
|
||||||
|
;; do we optimize?
|
||||||
|
[optimize? (or (attribute opt?) (optimize?))]
|
||||||
;; this parameter is for parsing types
|
;; this parameter is for parsing types
|
||||||
[current-tvars initial-tvar-env]
|
[current-tvars initial-tvar-env]
|
||||||
;; this parameter is just for printing types
|
;; this parameter is just for printing types
|
||||||
|
@ -81,7 +83,8 @@
|
||||||
|
|
||||||
[with-syntax ([(transformed-body ...)
|
[with-syntax ([(transformed-body ...)
|
||||||
(if (optimize?)
|
(if (optimize?)
|
||||||
(map optimize (syntax->list #'(transformed-body ...)))
|
(begin (printf "optimizing ...\n")
|
||||||
|
(map optimize (syntax->list #'(transformed-body ...))))
|
||||||
#'(transformed-body ...))])])
|
#'(transformed-body ...))])])
|
||||||
(do-time "Typechecked")
|
(do-time "Typechecked")
|
||||||
#;(printf "checked ~a~n" module-name)
|
#;(printf "checked ~a~n" module-name)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user