From 285fe64285780900f8ac8b41e9f870bab2a20fd9 Mon Sep 17 00:00:00 2001 From: John Clements Date: Mon, 18 Sep 2006 21:05:32 +0000 Subject: [PATCH] added language-based let-lifting choice parameter svn: r4370 --- collects/lang/htdp-langs.ss | 39 +++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/collects/lang/htdp-langs.ss b/collects/lang/htdp-langs.ss index d2d7b0ae88..8bd53117c6 100644 --- a/collects/lang/htdp-langs.ss +++ b/collects/lang/htdp-langs.ss @@ -29,7 +29,9 @@ tracing todo: ;; this module is shared between the drscheme's namespace (so loaded here) ;; and the user's namespace in the teaching languages - "private/set-result.ss") + "private/set-result.ss" + + (lib "stepper-language-interface.ss" "stepper")) (provide tool@) @@ -450,6 +452,13 @@ tracing todo: key)])) (super-new))) + + (define (stepper-settings-language %) + (class* % (stepper-language<%>) + (init-field stepper:enable-let-lifting) + (inherit [dontcare stepper:enable-let-lifting?]) + (define/override (stepper:enable-let-lifting?) stepper:enable-let-lifting) + (super-new))) ;; rewrite-module : syntax -> syntax ;; rewrites te module to provide all definitions and @@ -921,12 +930,13 @@ tracing todo: ;; phase2 : -> void (define (phase2) (define htdp-language% - ((drscheme:language:get-default-mixin) - (language-extension - (drscheme:language:module-based-language->language-mixin - (module-based-language-extension - (drscheme:language:simple-module-based-language->module-based-language-mixin - simple-htdp-language%)))))) + (stepper-settings-language + ((drscheme:language:get-default-mixin) + (language-extension + (drscheme:language:module-based-language->language-mixin + (module-based-language-extension + (drscheme:language:simple-module-based-language->module-based-language-mixin + simple-htdp-language%))))))) (add-htdp-language (instantiate htdp-language% () @@ -941,7 +951,8 @@ tracing todo: (language-numbers '(-500 -500 5)) (sharing-printing #t) (abbreviate-cons-as-list #t) - (allow-sharing? #t))) + (allow-sharing? #t) + (stepper:enable-let-lifting #t))) (add-htdp-language (instantiate htdp-language% () @@ -965,7 +976,8 @@ tracing todo: (language-numbers '(-500 -500 4)) (sharing-printing #f) (abbreviate-cons-as-list #t) - (allow-sharing? #f))) + (allow-sharing? #f) + (stepper:enable-let-lifting #t))) (add-htdp-language (instantiate htdp-language% () @@ -981,7 +993,8 @@ tracing todo: (sharing-printing #f) (abbreviate-cons-as-list #t) (allow-sharing? #f) - (use-function-output-syntax? #t))) + (use-function-output-syntax? #t) + (stepper:enable-let-lifting #t))) (add-htdp-language (instantiate htdp-language% () @@ -996,7 +1009,8 @@ tracing todo: (language-numbers '(-500 -500 2)) (sharing-printing #f) (abbreviate-cons-as-list #t) - (allow-sharing? #f))) + (allow-sharing? #f) + (stepper:enable-let-lifting #t))) (add-htdp-language (instantiate htdp-language% () @@ -1012,7 +1026,8 @@ tracing todo: (sharing-printing #f) (abbreviate-cons-as-list #f) (allow-sharing? #f) - (accept-quasiquote? #f))) + (accept-quasiquote? #f) + (stepper:enable-let-lifting #t))) (drscheme:get/extend:extend-unit-frame frame-tracing-mixin) (drscheme:get/extend:extend-tab tab-tracing-mixin)))))