[racket-dev] [plt] Push #22584: master branch updated
I just pulled the latest from git, started drracket, selected
Beginning Student language,
pressed run, and I got this error msg:
send: no such method: get-test-window for class: ...per\stepper-tool.rkt:235:4
=== context ===
C:\plt\collects\racket\private\class-internal.rkt:4550:0: obj-error
C:\plt\collects\test-engine\test-display.scm:36:4: report-success
method in test-display%
C:\plt\collects\mred\private\wx\common\queue.rkt:430:6
C:\plt\collects\mred\private\wx\common\queue.rkt:470:32
C:\plt\collects\mred\private\wx\common\queue.rkt:607:3
Does anyone else get this error? I'm running 5.1.1.5 on windows 7.
On Thu, Apr 28, 2011 at 4:22 PM, <clements at racket-lang.org> wrote:
> clements has updated `master' from fc531c4dbf to d2a21d717c.
> http://git.racket-lang.org/plt/fc531c4dbf..d2a21d717c
>
> =====[ 3 Commits ]======================================================
>
> Directory summary:
> 28.6% collects/stepper/private/
> 14.9% collects/stepper/scribblings/
> 56.4% collects/stepper/
>
> ~~~~~~~~~~
>
> 437baf9 John Clements <clements at racket-lang.org> 2011-04-26 11:36
> :
> | added simple scribblings from old doc.txt
> :
> M collects/stepper/info.rkt | 2 ++
> A collects/stepper/scribblings/stepper.scrbl
>
> ~~~~~~~~~~
>
> e4a834e John Clements <clements at racket-lang.org> 2011-04-28 11:36
> :
> | housekeeping, changed to drracket-tool, moved files to private
> :
> R collects/stepper/{ => private}/view-controller.rkt (96%)
> R collects/stepper/{ => private}/xml-sig.rkt (100%)
> D collects/stepper/break.rkt
> M collects/stepper/info.rkt | 12 +---
> M collects/stepper/stepper-tool.rkt | 78 +++++++++++-----------
> M collects/stepper/stepper+xml-tool.rkt | 38 +++++------
> M collects/stepper/tests/test-docs-complete.rkt | 4 -
> M collects/stepper/xml-tool.rkt | 53 +++++++--------
>
> ~~~~~~~~~~
>
> d2a21d7 John Clements <clements at racket-lang.org> 2011-04-28 13:21
> :
> | refactored stepper tool to work with tabs instead of frames
> :
> M collects/stepper/private/view-controller.rkt | 6 +-
> M collects/stepper/stepper-tool.rkt | 206 +++++++++++++---------
>
> =====[ Overall Diff ]===================================================
>
> collects/stepper/break.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/break.rkt
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -(module break mzscheme
> -
> - (require mzlib/contract)
> -
> - (provide current-breakpoint-handler)
> -
> - (define (default-current-breakpoint-handler)
> - (error 'default-current-breakpoint-handler
> - "The current-breakpoint-handler parameter has not yet been set in this thread."))
> -
> - (define current-breakpoint-handler
> - (make-parameter
> - default-current-breakpoint-handler
> - (lambda (new-handler)
> - (if (and (procedure? new-handler)
> - (procedure-arity-includes? new-handler 0))
> - new-handler
> - (error 'current-breakpoint-handler
> - "Bad value for current-breakpoint-handler: ~e"
> - new-handler)))))
> -
> - (provide/contract [break (-> any)])
> -
> - (define (break)
> - ((current-breakpoint-handler))))
>
> collects/stepper/info.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/info.rkt
> +++ NEW/collects/stepper/info.rkt
> @@ -1,15 +1,11 @@
> #lang setup/infotab
>
> -(define tools '(("stepper+xml-tool.ss")
> - ;; ("debugger-tool.ss")
> - ))
> +(define drracket-tools '(("stepper+xml-tool.ss")))
>
> -(define tool-names (list "The Stepper"
> - ;; "The Debugger"
> - ))
> +(define drracket-tool-names (list "The Stepper"))
>
> -(define tool-icons (list '("foot-up.png" "icons")
> - ;; #f
> - ))
> +(define drracket-tool-icons (list '("foot-up.png" "icons")))
>
> (define compile-omit-paths '("debugger-tool.ss"))
> +
> +(define scribblings '(("scribblings/stepper.scrbl")))
>
> collects/stepper/scribblings/stepper.scrbl
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- /dev/null
> +++ NEW/collects/stepper/scribblings/stepper.scrbl
> @@ -0,0 +1,177 @@
> +#lang scribble/doc
> +
> +@(require scribble/manual)
> +
> + at title{The Stepper}
> +
> + at section{What is the Stepper?}
> +
> +DrRacket includes an "algebraic stepper," a tool which proceeds
> +through the evaluation of a set of definitions and expressions,
> +one step at a time. This evaluation shows the user how DrRacket
> +evaluates expressions and definitions, and can help in debugging
> +programs. Currently, the Stepper is available in the "Beginning
> +Student" and "Intermediate Student" language levels.
> +
> + at section{How do I use the Stepper?}
> +
> +The Stepper operates on the contents of the frontmost DrRacket
> +window. A click on the "Step" button brings up the stepper
> +window. The stepper window has two panes, arranged as follows:
> +
> + at verbatim{
> +------------------
> +| | |
> +| before -> after|
> +| | |
> +------------------
> +}
> +
> +The first, "before," box, shows the current expression. The
> +region highlighted in green is known as the "redex". You may
> +pronounce this word in any way you want. It is short for
> +"reducible expression," and it is the expression which is the
> +next to be simplified.
> +
> +The second, "after," box shows the result of the reduction. The
> +region highlighted in purple is the new expression which is
> +substituted for the green one as a result of the reduction. For
> +most reductions, the only difference between the left- and right-hand
> +sides should be the contents of the green and purple boxes.
> +
> +Please note that the stepper only steps through the expressions
> +in the definitions window, and does not allow the user to enter
> +additional expressions. So, for instance, a definitions buffer
> +which contains only procedure definitions will not result in
> +any reductions.
> +
> + at section{How Does the Stepper work?}
> +
> +In order to discover all of the steps that occur during the evaluation
> +of your code, the Stepper rewrites (or "instruments") your code.
> +The inserted code uses a mechanism called "continuation marks" to
> +store information about the program's execution as it is running,
> +and makes calls to the Stepper before, after and during the evaluation
> +of each expression, indicating the current shape of the program.
> +
> +What does this instrumented code look like? For the curious, here's the
> +expanded version of @racket[(define (f x) (+ 3 x))] in the beginner
> +language [*]:
> +
> + at racketblock[
> +(module #%htdp (lib "lang/htdp-beginner.ss")
> + (#%plain-module-begin
> + (define-syntaxes (f)
> + (#%app make-first-order-function
> + (quote procedure)
> + (quote 1)
> + (quote-syntax f)
> + (quote-syntax #%app)))
> + (define-values (test~object) (#%app namespace-variable-value (quote test~object)))
> + (begin
> + (define-values (f)
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda () (#%plain-app "#<procedure:...rivate/marks.rkt:70:2>"))
> + (#%plain-app
> + call-with-values
> + (#%plain-lambda ()
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda () (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"
> + (#%plain-lambda () beginner:+)))
> + (#%plain-app
> + "#<procedure:closure-storing-proc>"
> + (#%plain-lambda (x)
> + (begin
> + (let-values (((arg0-1643 arg1-1644 arg2-1645)
> + (#%plain-app
> + values
> + "#<*unevaluated-struct*>"
> + "#<*unevaluated-struct*>"
> + "#<*unevaluated-struct*>")))
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"
> + (#%plain-lambda () beginner:+)
> + (#%plain-lambda () x)
> + (#%plain-lambda () arg0-1643)
> + (#%plain-lambda () arg1-1644)
> + (#%plain-lambda () arg2-1645)))
> + (begin
> + (#%plain-app "#<procedure:result-exp-break>")
> + (begin
> + (set! arg0-1643
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"))
> + beginner:+))
> + (set! arg1-1644
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"))
> + (quote 3)))
> + (set! arg2-1645
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>")) x))
> + (begin
> + (#%plain-app "#<procedure:normal-break>")
> + (with-continuation-mark "#<debug-key-struct>"
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"
> + (#%plain-lambda () arg0-1643)
> + (#%plain-lambda () arg1-1644)
> + (#%plain-lambda () arg2-1645)))
> + (if (#%plain-app
> + "#<procedure:annotated-proc?>"
> + arg0-1643)
> + (#%plain-app
> + arg0-1643
> + arg1-1644
> + arg2-1645)
> + (#%plain-app
> + call-with-values
> + (#%plain-lambda ()
> + (#%plain-app arg0-1643 arg1-1644 arg2-1645))
> + (#%plain-lambda args
> + (#%plain-app
> + "#<procedure:result-value-break>"
> + args)
> + (#%plain-app
> + "#<procedure:apply>"
> + values
> + args))))))))))))
> + (#%plain-lambda ()
> + (#%plain-app
> + "#<procedure:...rivate/marks.rkt:70:2>"
> + (#%plain-lambda () beginner:+))) #f)))
> + (#%plain-lambda args
> + (#%plain-app "#<procedure:apply>" values args)))))
> + (#%plain-app "#<procedure:exp-finished-break>"
> + (#%plain-app
> + list
> + (#%plain-app
> + list
> + "#<procedure:...ate/annotate.rkt:1256:93>"
> + #f
> + (#%plain-lambda () (#%plain-app list f))))))))
> +
> +(let-values (((done-already?) (quote #f)))
> + (#%app dynamic-wind void
> + (lambda () (#%app dynamic-require (quote (quote #%htdp)) (quote #f)))
> + (lambda () (if done-already?
> + (#%app void)
> + (let-values ()
> + (set! done-already? (quote #t))
> + (#%app test*)
> + (#%app current-namespace
> + (#%app module->namespace
> + (quote (quote #%htdp)))))))))]
> +
> +
> +[*] : In order to allow things like @verbatim{#<procedure:apply>} in scribble, I've taken the cheap solution of wrapping them in quotes. These are not actually strings, they're opaque 3D syntax elements.
> \ No newline at end of file
>
> collects/stepper/stepper+xml-tool.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/stepper+xml-tool.rkt
> +++ NEW/collects/stepper/stepper+xml-tool.rkt
> @@ -1,25 +1,19 @@
> -(module stepper+xml-tool mzscheme
> - (require mzlib/unit
> - drscheme/tool
> - "stepper-tool.ss"
> - "xml-tool.ss"
> - "view-controller.ss"
> - "private/shared.ss")
> +#lang racket
>
> - (provide tool@)
> +(require drracket/tool
> + "stepper-tool.rkt"
> + "xml-tool.rkt"
> + "private/view-controller.rkt")
>
> - ;; the xml and stepper tools are combined, so that the stepper can create XML
> - ;; snips. note that both of these tools provide 'void' for phase1 and phase2
> - ;; (which together make up the tool-exports^), so we can provide either one
> - ;; of these for the compound unit. Doesn't matter.
> -
> - ;; NNNURRRG! This is not true any more. But that should be okay, because the
> - ;; stepper-tool phase1 is the non-void one. -- JBC, 2006-09-28
> +(provide tool@)
>
> - (define tool@
> - (compound-unit/infer
> - (import drscheme:tool^)
> - (export STEPPER-TOOL)
> - (link xml-tool@
> - view-controller@
> - [((STEPPER-TOOL : drscheme:tool-exports^)) stepper-tool@]))))
> +;; the xml and stepper tools are combined, so that the stepper can create XML
> +;; snips.
> +
> +(define tool@
> + (compound-unit/infer
> + (import drracket:tool^)
> + (export STEPPER-TOOL)
> + (link xml-tool@
> + view-controller@
> + [((STEPPER-TOOL : drracket:tool-exports^)) stepper-tool@])))
> \ No newline at end of file
>
> collects/stepper/stepper-tool.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/stepper-tool.rkt
> +++ NEW/collects/stepper/stepper-tool.rkt
> @@ -1,27 +1,26 @@
> #lang racket/unit
>
> -(require scheme/class
> - drscheme/tool
> +(require racket/class
> + drracket/tool
> mred
> - mzlib/pconvert
> - string-constants
> (prefix-in frame: framework)
> mrlib/switchable-button
> - (file "private/my-macros.ss")
> - (prefix-in x: "private/mred-extensions.ss")
> - "private/shared.ss"
> + mzlib/pconvert
> + racket/pretty
> + string-constants
> lang/stepper-language-interface
> - scheme/pretty
> - "xml-sig.ss"
> + (prefix-in x: "private/mred-extensions.rkt")
> + "private/shared.rkt"
> + "private/xml-sig.rkt"
> "drracket-button.ss") ;; get the stepper-button-callback private-member-name
>
> -(import drscheme:tool^ xml^ view-controller^)
> -(export drscheme:tool-exports^ stepper-frame^)
> +(import drracket:tool^ xml^ view-controller^)
> +(export drracket:tool-exports^ stepper-frame^)
>
> ;; tool magic here:
> (define (phase1)
> ;; experiment with extending the language... parameter-like fields for stepper parameters
> - (drscheme:language:extend-language-interface
> + (drracket:language:extend-language-interface
> stepper-language<%>
> (lambda (superclass)
> (class* superclass (stepper-language<%>)
> @@ -67,7 +66,7 @@
> (send definitions-text get-next-settings))
>
> (define (settings->language-level settings)
> - (drscheme:language-configuration:language-settings-language settings))
> + (drracket:language-configuration:language-settings-language settings))
>
> (define (stepper-works-for? language-level)
> (or (send language-level stepper:supported?)
> @@ -76,10 +75,10 @@
> ;; the stepper's frame:
>
> (define stepper-frame%
> - (class (drscheme:frame:basics-mixin
> + (class (drracket:frame:basics-mixin
> (frame:frame:standard-menus-mixin frame:frame:basic%))
>
> - (init-field drscheme-frame)
> + (init-field drracket-tab)
>
> ;; PRINTING-PROC
> ;; I frankly don't think that printing (i.e., to a printer) works
> @@ -114,7 +113,7 @@
> (define/augment (on-close)
> (when custodian
> (custodian-shutdown-all custodian))
> - (send drscheme-frame on-stepper-close)
> + (send drracket-tab on-stepper-close)
> (inner (void) on-close))
>
> ;; WARNING BOXES:
> @@ -153,20 +152,91 @@
> [height stepper-initial-height])))
>
>
> - ;; stepper-unit-frame<%> : the interface that the extended drscheme frame
> + ;; stepper-unit-frame<%> : the interface that the extended drracket frame
> ;; fulfils
> - (define stepper-unit-frame<%>
> + (define stepper-tab<%>
> (interface ()
> get-stepper-frame
> on-stepper-close))
>
> - ;; stepper-unit-frame-mixin : the mixin that is applied to the drscheme
> - ;; frame to interact with a possible stepper window
> + ;; stepper-unit-frame-mixin : the mixin that is applied to the drracket
> + ;; frame to interact with a possible stepper window. Specifically, this
> + ;; mixin needs to manage the creation and visibility of the stepper button.
> (define (stepper-unit-frame-mixin super%)
> - (class* super% (stepper-unit-frame<%>)
> + (class* super% ()
> + (inherit get-button-panel register-toolbar-button get-current-tab get-tabs)
> +
> + (super-new)
> +
> + ;; STEPPER BUTTON
> +
> + (define/public (get-stepper-button) stepper-button)
> +
> + (define stepper-button-parent-panel
> + (new horizontal-panel%
> + [parent (get-button-panel)]
> + [stretchable-width #f]
> + [stretchable-height #f]))
> +
> + (define stepper-button
> + (new switchable-button%
> + [parent stepper-button-parent-panel]
> + [label (string-constant stepper-button-label)]
> + [bitmap x:foot-img/horizontal]
> + [alternate-bitmap x:foot-img/vertical]
> + [callback (lambda (dont-care) (send (get-current-tab)
> + stepper-button-callback))]))
> +
> + (register-toolbar-button stepper-button)
> +
> + (define (stepper-button-show)
> + (unless (send stepper-button is-shown?)
> + (send (send stepper-button get-parent)
> + add-child stepper-button)))
> +
> + (define (stepper-button-hide)
> + (when (send stepper-button is-shown?)
> + (send (send stepper-button get-parent)
> + delete-child stepper-button)))
> +
> + ;; when the window closes, notify all of the stepper frames.
> + (define/augment (on-close)
> + (for ([tab (in-list (get-tabs))])
> + (define possible-stepper-frame (send tab get-stepper-frame))
> + (when possible-stepper-frame
> + (send possible-stepper-frame original-program-gone)))
> + (inner (void) on-close))
> +
> + ;; when we change tabs, show or hide the stepper button.
> + (define/augment (on-tab-change old new)
> + (show/hide-stepper-button)
> + (inner (void) on-tab-change old new))
> +
> + ;; add the stepper button to the button panel:
> + (send (get-button-panel) change-children
> + (lambda (x)
> + (cons stepper-button-parent-panel
> + (remq stepper-button-parent-panel x))))
>
> - (inherit get-button-panel register-toolbar-button get-interactions-text get-definitions-text)
> + ;; show or hide the stepper button depending
> + ;; on the language level
> + (define/public (show/hide-stepper-button)
> + (cond [(send (get-current-tab) current-lang-supports-stepper?)
> + (stepper-button-show)]
> + [else
> + (stepper-button-hide)]))
>
> + ;; hide stepper button if it's not supported for the initial language:
> + (show/hide-stepper-button)))
> +
> + ;; stepper-tab-mixin : the mixin that is applied to drracket tabs, to
> + ;; interact with a possible stepper window.
> + (define (stepper-tab-mixin super%)
> + (class* super% (stepper-tab<%>)
> +
> + (inherit get-ints get-defs get-frame)
> +
> + ;; a reference to a possible stepper frame.
> (define stepper-frame #f)
> (define/public (on-stepper-close)
> (set! stepper-frame #f))
> @@ -178,14 +248,14 @@
> ;; definitions window one at a time and calls 'iter' on each one
> (define (program-expander init iter)
> (let* ([lang-settings
> - (send (get-definitions-text) get-next-settings)]
> - [lang (drscheme:language-configuration:language-settings-language lang-settings)]
> - [settings (drscheme:language-configuration:language-settings-settings lang-settings)])
> - (drscheme:eval:expand-program
> - (drscheme:language:make-text/pos
> - (get-definitions-text)
> + (send (get-defs) get-next-settings)]
> + [lang (drracket:language-configuration:language-settings-language lang-settings)]
> + [settings (drracket:language-configuration:language-settings-settings lang-settings)])
> + (drracket:eval:expand-program
> + (drracket:language:make-text/pos
> + (get-defs)
> 0
> - (send (get-definitions-text) last-position))
> + (send (get-defs) last-position))
> lang-settings
> #f
> (lambda ()
> @@ -203,108 +273,75 @@
> void ; kill
> iter)))
>
> - ;; STEPPER BUTTON
> -
> - (define/public (get-stepper-button) stepper-button)
> -
> - (define stepper-button-parent-panel
> - (new horizontal-panel%
> - [parent (get-button-panel)]
> - [stretchable-width #f]
> - [stretchable-height #f]))
> -
> - ;; called from drracket-button.rkt, installed via the #lang htdp/bsl (& co) reader into drscheme
> +
> + ;; called from drracket-button.rkt, installed via the #lang htdp/bsl (& co) reader into drracket
> (define/public (stepper-button-callback)
> - (if stepper-frame
> - (send stepper-frame show #t)
> - (let* ([language-level
> - (extract-language-level (get-definitions-text))]
> - [language-level-name (language-level->name language-level)])
> - (if (or (stepper-works-for? language-level)
> - (is-a? language-level drscheme:module-language:module-language<%>))
> - (set! stepper-frame
> - (go this
> - program-expander
> - (+ 1 (send (get-definitions-text) get-start-position))
> - (+ 1 (send (get-definitions-text) get-end-position))))
> - (message-box
> - (string-constant stepper-name)
> - (format (string-constant stepper-language-level-message)
> - language-level-name))))))
> + (cond
> + [stepper-frame (send stepper-frame show #t)]
> + [else (create-new-stepper)]))
>
> - (define stepper-button
> - (new switchable-button%
> - [parent stepper-button-parent-panel]
> - [label (string-constant stepper-button-label)]
> - [bitmap x:foot-img/horizontal]
> - [alternate-bitmap x:foot-img/vertical]
> - [callback (lambda (dont-care) (stepper-button-callback))]))
> + ;; open a new stepper window, start it running
> + (define (create-new-stepper)
> + (let* ([language-level
> + (extract-language-level (get-defs))]
> + [language-level-name (language-level->name language-level)])
> + (if (or (stepper-works-for? language-level)
> + (is-a? language-level drracket:module-language:module-language<%>))
> + (set! stepper-frame
> + (go this
> + program-expander
> + (+ 1 (send (get-defs) get-start-position))
> + (+ 1 (send (get-defs) get-end-position))))
> + (message-box
> + (string-constant stepper-name)
> + (format (string-constant stepper-language-level-message)
> + language-level-name)))))
>
> - (register-toolbar-button stepper-button)
> + (define/override (enable-evaluation)
> + (super enable-evaluation)
> + (send (send (get-frame) get-stepper-button) enable #t))
>
> - (define/augment (enable-evaluation)
> - (send stepper-button enable #t)
> - (inner (void) enable-evaluation))
> + (define/override (disable-evaluation)
> + (super enable-evaluation)
> + (send (send (get-frame) get-stepper-button) enable #f))
>
> - (define/augment (disable-evaluation)
> - (send stepper-button enable #f)
> - (inner (void) disable-evaluation))
> + (define/public (current-lang-supports-stepper?)
> + (stepper-works-for? (extract-language-level (get-defs))))
> +
> + (define/public (notify-stepper-frame-of-change)
> + (when stepper-frame
> + (send stepper-frame original-program-changed)))
>
> (define/augment (on-close)
> (when stepper-frame
> - (send stepper-frame original-program-gone))
> + (send stepper-frame original-program-gone))
> (inner (void) on-close))
> -
> - (define/augment (on-tab-change old new)
> - (check-current-language-for-stepper)
> - (inner (void) on-tab-change old new))
> -
> - (define/public (check-current-language-for-stepper)
> - (if (stepper-works-for?
> - (extract-language-level (get-definitions-text)))
> - (unless (send stepper-button is-shown?)
> - (send (send stepper-button get-parent)
> - add-child stepper-button))
> - (when (send stepper-button is-shown?)
> - (send (send stepper-button get-parent)
> - delete-child stepper-button))))
> -
> - ;; add the stepper button to the button panel:
> - (send (get-button-panel) change-children
> - (lx (cons stepper-button-parent-panel
> - (remq stepper-button-parent-panel _))))
> -
> - ;; hide stepper button if it's not supported for the initial language:
> - (check-current-language-for-stepper)))
> +
> + ))
> +
> +
>
> ;; stepper-definitions-text-mixin : a mixin for the definitions text that
> ;; alerts thet stepper when the definitions text is altered or destroyed
> (define (stepper-definitions-text-mixin %)
> (class %
>
> - (inherit get-top-level-window)
> - (define/private (notify-stepper-frame-of-change)
> - (let ([win (get-top-level-window)])
> - ;; should only be #f when win is #f
> - (when (is-a? win stepper-unit-frame<%>)
> - (let ([stepper-window (send win get-stepper-frame)])
> - (when stepper-window
> - (send stepper-window original-program-changed))))))
> + (inherit get-tab get-top-level-window)
>
> (define/augment (on-insert x y)
> (unless metadata-changing-now?
> - (notify-stepper-frame-of-change))
> + (send (get-tab) notify-stepper-frame-of-change))
> (inner (void) on-insert x y))
>
> (define/augment (on-delete x y)
> (unless metadata-changing-now?
> - (notify-stepper-frame-of-change))
> + (send (get-tab) notify-stepper-frame-of-change))
> (inner (void) on-delete x y))
>
> (define/augment (after-set-next-settings s)
> (let ([tlw (get-top-level-window)])
> (when tlw
> - (send tlw check-current-language-for-stepper)))
> + (send tlw show/hide-stepper-button)))
> (inner (void) after-set-next-settings s))
>
> (define metadata-changing-now? #f)
> @@ -321,28 +358,29 @@
>
> (super-new)))
>
> - ;; apply the mixins dynamically to the drscheme unit frame and
> + ;; apply the mixins dynamically to the drracket unit frame and
> ;; definitions text:
> - (drscheme:get/extend:extend-unit-frame stepper-unit-frame-mixin)
> - (drscheme:get/extend:extend-definitions-text stepper-definitions-text-mixin)
> + (drracket:get/extend:extend-unit-frame stepper-unit-frame-mixin)
> + (drracket:get/extend:extend-definitions-text stepper-definitions-text-mixin)
> + (drracket:get/extend:extend-tab stepper-tab-mixin)
>
> - ;; COPIED FROM drscheme/private/language.ss
> + ;; COPIED FROM drracket/private/language.ss
> ;; simple-module-based-language-convert-value : TST STYLE boolean -> TST
> (define (simple-module-based-language-convert-value value settings)
> - (case (drscheme:language:simple-settings-printing-style settings)
> + (case (drracket:language:simple-settings-printing-style settings)
> [(print) value]
> [(write trad-write) value]
> [(constructor)
> (parameterize
> ([constructor-style-printing #t]
> - [show-sharing (drscheme:language:simple-settings-show-sharing settings)]
> + [show-sharing (drracket:language:simple-settings-show-sharing settings)]
> [current-print-convert-hook
> (leave-snips-alone-hook (current-print-convert-hook))])
> (stepper-print-convert value))]
> [(quasiquote)
> (parameterize
> ([constructor-style-printing #f]
> - [show-sharing (drscheme:language:simple-settings-show-sharing settings)]
> + [show-sharing (drracket:language:simple-settings-show-sharing settings)]
> [current-print-convert-hook
> (leave-snips-alone-hook (current-print-convert-hook))])
> (stepper-print-convert value))]
> @@ -381,19 +419,19 @@
> [(is-a? exp snip%)
> (send exp copy)]
> #;
> - [((drscheme:rep:use-number-snip) exp)
> + [((drracket:rep:use-number-snip) exp)
> (let ([number-snip-type
> - (drscheme:language:simple-settings-fraction-style
> + (drracket:language:simple-settings-fraction-style
> simple-settings)])
> (cond
> [(eq? number-snip-type 'repeating-decimal)
> - (drscheme:number-snip:make-repeating-decimal-snip exp #f)]
> + (drracket:number-snip:make-repeating-decimal-snip exp #f)]
> [(eq? number-snip-type 'repeating-decimal-e)
> - (drscheme:number-snip:make-repeating-decimal-snip exp #t)]
> + (drracket:number-snip:make-repeating-decimal-snip exp #t)]
> [(eq? number-snip-type 'mixed-fraction)
> - (drscheme:number-snip:make-fraction-snip exp #f)]
> + (drracket:number-snip:make-fraction-snip exp #f)]
> [(eq? number-snip-type 'mixed-fraction-e)
> - (drscheme:number-snip:make-fraction-snip exp #t)]
> + (drracket:number-snip:make-fraction-snip exp #t)]
> [else
> (error 'which-number-snip
> "expected either 'repeating-decimal, 'repeating-decimal-e, 'mixed-fraction, or 'mixed-fraction-e got : ~e"
>
> collects/stepper/tests/test-docs-complete.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/tests/test-docs-complete.rkt
> +++ NEW/collects/stepper/tests/test-docs-complete.rkt
> @@ -1,6 +1,2 @@
> #lang racket/base
> (require tests/utils/docs-complete)
> -(check-docs (quote stepper/xml-sig))
> -(check-docs (quote stepper/view-controller))
> -(check-docs (quote stepper/drracket-button))
> -(check-docs (quote stepper/break))
>
> collects/stepper/xml-tool.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/collects/stepper/xml-tool.rkt
> +++ NEW/collects/stepper/xml-tool.rkt
> @@ -1,27 +1,26 @@
> +#lang racket
>
> -(module xml-tool mzscheme
> - (require "private/xml-snip-helpers.rkt"
> - "private/find-tag.rkt"
> - "xml-sig.ss"
> - mzlib/unit
> - mzlib/contract
> - mzlib/class
> - mred
> - framework
> - drscheme/tool
> - xml/xml
> - string-constants)
> +(require "private/xml-snip-helpers.rkt"
> + "private/find-tag.rkt"
> + "private/xml-sig.ss"
> + mred
> + framework
> + drracket/tool
> + xml/xml
> + string-constants)
>
> (provide xml-tool@)
>
> (define orig (current-output-port))
> (define-unit xml-tool@
> - (import drscheme:tool^)
> + (import drracket:tool^)
> (export xml^)
> - (define (phase1) (void))
> - (define (phase2) (void))
> -
> - (preferences:set-default 'drscheme:xml-eliminate-whitespace #t boolean?)
> +
> + ;; these were necessary when this was a stand-alone tool:
> + #;(define (phase1) (void))
> + #;(define (phase2) (void))
> +
> + (preferences:set-default 'drracket:xml-eliminate-whitespace #t boolean?)
>
> (define xml-box-color "forest green")
> (define scheme-splice-box-color "blue")
> @@ -74,7 +73,7 @@
> (define/private (set-eliminate-whitespace-in-empty-tags? new)
> (unless (eq? eliminate-whitespace-in-empty-tags? new)
> (set! eliminate-whitespace-in-empty-tags? new)
> - (preferences:set 'drscheme:xml-eliminate-whitespace new)
> + (preferences:set 'drracket:xml-eliminate-whitespace new)
> (reset-min-sizes)
> (let ([admin (get-admin)])
> (when admin
> @@ -109,7 +108,7 @@
> (define/override (make-snip stream-in)
> (instantiate xml-snip% ()
> [eliminate-whitespace-in-empty-tags?
> - (preferences:get 'drscheme:xml-eliminate-whitespace)]))
> + (preferences:get 'drracket:xml-eliminate-whitespace)]))
> (super-instantiate ())))
>
> ;; this snipclass is for old, saved files (no snip has it set)
> @@ -196,7 +195,7 @@
> (define (get-scheme-box-text%)
> (unless scheme-box-text%
> (set! scheme-box-text%
> - (class ((drscheme:unit:get-program-editor-mixin)
> + (class ((drracket:unit:get-program-editor-mixin)
> (add-file-keymap-mixin
> scheme:text%))
> (inherit copy-self-to)
> @@ -306,7 +305,7 @@
> (let ([xml-text% #f])
> (lambda ()
> (unless xml-text%
> - (set! xml-text% (class ((drscheme:unit:get-program-editor-mixin)
> + (set! xml-text% (class ((drracket:unit:get-program-editor-mixin)
> (xml-text-mixin
> plain-text%))
> (inherit copy-self-to)
> @@ -375,8 +374,8 @@
> (lambda ()
> (instantiate xml-snip% ()
> [eliminate-whitespace-in-empty-tags?
> - (preferences:get 'drscheme:xml-eliminate-whitespace)]))))))
> - (register-capability-menu-item 'drscheme:special:xml-menus (get-insert-menu))
> + (preferences:get 'drracket:xml-eliminate-whitespace)]))))))
> + (register-capability-menu-item 'drracket:special:xml-menus (get-insert-menu))
> (instantiate menu:can-restore-menu-item% ()
> (label (string-constant xml-tool-insert-scheme-box))
> (parent menu)
> @@ -385,7 +384,7 @@
> (lambda (menu evt)
> (insert-snip
> (lambda () (instantiate scheme-snip% () (splice? #f)))))))
> - (register-capability-menu-item 'drscheme:special:xml-menus (get-insert-menu))
> + (register-capability-menu-item 'drracket:special:xml-menus (get-insert-menu))
> (instantiate menu:can-restore-menu-item% ()
> (label (string-constant xml-tool-insert-scheme-splice-box))
> (parent menu)
> @@ -394,10 +393,10 @@
> (lambda (menu evt)
> (insert-snip
> (lambda () (instantiate scheme-snip% () (splice? #t)))))))
> - (register-capability-menu-item 'drscheme:special:xml-menus (get-insert-menu)))
> + (register-capability-menu-item 'drracket:special:xml-menus (get-insert-menu)))
>
> (frame:reorder-menus this)))
>
> - (drscheme:language:register-capability 'drscheme:special:xml-menus (flat-contract boolean?) #t)
> + (drracket:language:register-capability 'drracket:special:xml-menus (flat-contract boolean?) #t)
>
> - (drscheme:get/extend:extend-unit-frame xml-box-frame-extension)))
> + (drracket:get/extend:extend-unit-frame xml-box-frame-extension))
>
> *** See above for renames and copies ***
>