[racket-dev] [plt] Push #22584: master branch updated
I'm not seeing it with the latest.
Did you disable some tools?
Robby
On Sun, May 15, 2011 at 2:42 PM, Stephen Chang <stchang at ccs.neu.edu> wrote:
> 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 ***
>>
>
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/dev
>