From 1d758ee78221a87e477e62ab9cca03c816adf49a Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Tue, 27 Jul 2010 19:46:36 -0400 Subject: [PATCH] Added an option to see the result of the optimizer before compiling. --- collects/typed-scheme/optimizer/optimizer.rkt | 6 +++++- collects/typed-scheme/optimizer/utils.rkt | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/collects/typed-scheme/optimizer/optimizer.rkt b/collects/typed-scheme/optimizer/optimizer.rkt index eb07adcd2e..3e7b9e7330 100644 --- a/collects/typed-scheme/optimizer/optimizer.rkt +++ b/collects/typed-scheme/optimizer/optimizer.rkt @@ -2,6 +2,7 @@ (require syntax/parse syntax/id-table racket/dict + racket/pretty (for-template scheme/base scheme/flonum scheme/fixnum scheme/unsafe/ops racket/private/for) @@ -91,7 +92,10 @@ #:with e*:opt-expr #'e #'e*.opt] [e:expr #'e])]) - ((optimize) stx)) + (let ((result ((optimize) stx))) + (when *show-optimized-code* + (pretty-print (syntax->datum result))) + result)) (when (and *log-optimizations?* *log-optimizatons-to-log-file?*) (close-output-port port))))) diff --git a/collects/typed-scheme/optimizer/utils.rkt b/collects/typed-scheme/optimizer/utils.rkt index 088f0fd04d..dfe0b200d3 100644 --- a/collects/typed-scheme/optimizer/utils.rkt +++ b/collects/typed-scheme/optimizer/utils.rkt @@ -7,7 +7,8 @@ (types abbrev type-table utils subtype) (rep type-rep)) -(provide log-optimization *log-optimizations?* *log-optimizatons-to-log-file?* *optimization-log-file* +(provide log-optimization *log-optimizations?* *log-optimizatons-to-log-file?* + *optimization-log-file* *show-optimized-code* subtypeof? isoftype? mk-unsafe-tbl n-ary->binary @@ -25,6 +26,8 @@ (syntax->datum stx) kind) #t)) +;; if set to #t, the optimizer will dump its result to stdout before compilation +(define *show-optimized-code* #f) ;; is the syntax object s's type a subtype of t? (define (subtypeof? s t)