diff --git a/collects/macro-debugger/syntax-browser/browser.ss b/collects/macro-debugger/syntax-browser/browser.ss index a2e99dbc54..f1c827caf5 100644 --- a/collects/macro-debugger/syntax-browser/browser.ss +++ b/collects/macro-debugger/syntax-browser/browser.ss @@ -1,6 +1,6 @@ (module browser mzscheme - (require (lib "unitsig.ss") + (require (lib "unit.ss") "interfaces.ss" "frame.ss" "implementation.ss") @@ -8,12 +8,14 @@ (provide-signature-elements snip^) (define browser@ - (compound-unit/sig + (compound-unit (import) - (link [PREFS : prefs^ (global-prefs@)] - [IMPL : implementation^ (implementation@)] - [FRAME : browser^ (frame@ PREFS (IMPL widget))]) - (export (open FRAME)))) - - (define-values/invoke-unit/sig browser^ browser@) + (link [((PREFS : prefs^)) global-prefs@] + [((WIDGET : widget^)) implementation@] + [((FRAME : browser^)) frame@ PREFS WIDGET]) + (export FRAME))) + + (define-values/invoke-unit browser@ + (import) + (export browser^)) ) diff --git a/collects/macro-debugger/syntax-browser/frame.ss b/collects/macro-debugger/syntax-browser/frame.ss index e6a6af266a..eb478d1ea7 100644 --- a/collects/macro-debugger/syntax-browser/frame.ss +++ b/collects/macro-debugger/syntax-browser/frame.ss @@ -1,7 +1,7 @@ (module frame mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "list.ss") @@ -10,10 +10,11 @@ (provide frame@) (define frame@ - (unit/sig browser^ + (unit (import prefs^ widget^) - + (export browser^) + ;; browse-syntax : syntax -> void (define (browse-syntax stx) (browse-syntaxes (list stx))) diff --git a/collects/macro-debugger/syntax-browser/implementation.ss b/collects/macro-debugger/syntax-browser/implementation.ss index 7562b936e2..48ae42e8c7 100644 --- a/collects/macro-debugger/syntax-browser/implementation.ss +++ b/collects/macro-debugger/syntax-browser/implementation.ss @@ -1,6 +1,6 @@ (module implementation mzscheme - (require (lib "unitsig.ss") + (require (lib "unit.ss") "interfaces.ss" "widget.ss" "syntax-snip.ss" @@ -19,69 +19,55 @@ ;; We create a new unit/sig out of their invocation (define snip-keymap@ - (compound-unit/sig + (compound-unit (import [MENU : context-menu^] [SNIP : snip^]) - (link [KEYMAP : keymap^ (keymap@ MENU SNIP)] - [SNIP-KEYMAP : keymap^ (snip-keymap-extension@ KEYMAP)]) - (export (open SNIP-KEYMAP)))) + (link [((KEYMAP : keymap^)) keymap@ MENU SNIP] + [((SNIP-KEYMAP : keymap^)) snip-keymap-extension@ KEYMAP]) + (export SNIP-KEYMAP))) (define snip-implementation@ - (compound-unit/sig + (compound-unit (import) - (link [PREFS : prefs^ (prefs@)] - [MENU : context-menu^ (context-menu@)] - [KEYMAP : keymap^ (snip-keymap@ MENU SNIP)] - [SNIP-CLASS : snipclass^ (snipclass@ SNIP)] - [SNIP : snip^ (snip@ PREFS KEYMAP MENU SNIP-CLASS)]) - (export (open PREFS) (open SNIP) (open SNIP-CLASS)))) - (define-values/invoke-unit/sig ((open snip^) (open prefs^) (open snipclass^)) - snip-implementation@) - - (define global-prefs@ - (unit/sig prefs^ - (import) - (rename (-width pref:width) - (-height pref:height) - (-props-percentage pref:props-percentage)) - (define -width pref:width) - (define -height pref:height) - (define -props-percentage pref:props-percentage))) - - (define global-snip@ - (unit/sig snip^ - (import) - (rename (-syntax-snip syntax-snip) - (-syntax-snip% syntax-snip%)) - (define -syntax-snip syntax-snip) - (define -syntax-snip% syntax-snip%))) + (link [((PREFS : prefs^)) prefs@] + [((MENU : context-menu^)) context-menu@] + [((KEYMAP : keymap^)) snip-keymap@ MENU SNIP] + [((SNIP-CLASS : snipclass^)) snipclass@ SNIP] + [((SNIP : snip^)) snip@ PREFS KEYMAP MENU SNIP-CLASS]) + (export PREFS SNIP SNIP-CLASS))) + (define-values/invoke-unit snip-implementation@ + (import) + (export snip^ prefs^ snipclass^)) + + (define global-prefs@ (unit-from-context prefs^)) + + (define global-snip@ (unit-from-context snip^)) ;; Everyone else re-uses the global-snip@ unit (define widget-keymap@ - (compound-unit/sig + (compound-unit (import [MENU : context-menu^] [SNIP : snip^]) - (link [KEYMAP : keymap^ (keymap@ MENU SNIP)] - [WKEYMAP : keymap^ (widget-keymap-extension@ KEYMAP)]) - (export (open WKEYMAP)))) - + (link [((KEYMAP : keymap^)) keymap@ MENU SNIP] + [((WKEYMAP : keymap^)) widget-keymap-extension@ KEYMAP]) + (export WKEYMAP))) + (define widget-context-menu@ - (compound-unit/sig + (compound-unit (import) - (link [MENU : context-menu^ (context-menu@)] - [WMENU : context-menu^ (widget-context-menu-extension@ MENU)]) - (export (open WMENU)))) + (link [((MENU : context-menu^)) context-menu@] + [((WMENU : context-menu^)) widget-context-menu-extension@ MENU]) + (export WMENU))) - ;; implementation@ : implementation^ + ;; implementation@ : snip^ widget^ (define implementation@ - (compound-unit/sig + (compound-unit (import) - (link [SNIP : snip^ (global-snip@)] - [MENU : context-menu^ (widget-context-menu@)] - [KEYMAP : keymap^ (widget-keymap@ MENU SNIP)] - [WIDGET : widget^ (widget@ KEYMAP)]) - (export (unit SNIP snip) - (unit WIDGET widget)))) - + (link [((SNIP : snip^)) global-snip@] + [((MENU : context-menu^)) widget-context-menu@] + [((KEYMAP : keymap^)) widget-keymap@ MENU SNIP] + [((WIDGET : widget^)) widget@ KEYMAP]) + (export SNIP WIDGET))) + ) diff --git a/collects/macro-debugger/syntax-browser/interfaces.ss b/collects/macro-debugger/syntax-browser/interfaces.ss index 2b41baadf6..babd7b6f72 100644 --- a/collects/macro-debugger/syntax-browser/interfaces.ss +++ b/collects/macro-debugger/syntax-browser/interfaces.ss @@ -1,7 +1,7 @@ (module interfaces mzscheme (require (lib "class.ss") - (lib "unitsig.ss")) + (lib "unit.ss")) (provide (all-defined)) ;; Signatures @@ -55,10 +55,6 @@ (;; syntax-widget% syntax-widget%)) - (define-signature implementation^ - ([unit widget : widget^] - [unit snip : snip^])) - ;; Class Interfaces ;; syntax-controller<%> diff --git a/collects/macro-debugger/syntax-browser/keymap.ss b/collects/macro-debugger/syntax-browser/keymap.ss index 79e8480642..4ca331ffc1 100644 --- a/collects/macro-debugger/syntax-browser/keymap.ss +++ b/collects/macro-debugger/syntax-browser/keymap.ss @@ -1,7 +1,7 @@ (module keymap mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") "interfaces.ss" "partition.ss") @@ -9,8 +9,9 @@ context-menu@) (define context-menu@ - (unit/sig context-menu^ + (unit (import) + (export context-menu^) (define context-menu% (class popup-menu% @@ -103,8 +104,9 @@ )))) (define keymap@ - (unit/sig keymap^ + (unit (import context-menu^ snip^) + (export keymap^) (define syntax-keymap% (class keymap% diff --git a/collects/macro-debugger/syntax-browser/prefs.ss b/collects/macro-debugger/syntax-browser/prefs.ss index 944ec9ec6f..233b35677d 100644 --- a/collects/macro-debugger/syntax-browser/prefs.ss +++ b/collects/macro-debugger/syntax-browser/prefs.ss @@ -1,6 +1,6 @@ (module prefs mzscheme - (require (lib "unitsig.ss") + (require (lib "unit.ss") (lib "framework.ss" "framework") "interfaces.ss") (provide prefs@) @@ -14,8 +14,9 @@ [(newval) (preferences:set 'prop newval)]))])) (define prefs@ - (unit/sig prefs^ + (unit (import) + (export prefs^) (preferences:set-default 'SyntaxBrowser:Width 700 number?) (preferences:set-default 'SyntaxBrowser:Height 600 number?) diff --git a/collects/macro-debugger/syntax-browser/snipclass.ss b/collects/macro-debugger/syntax-browser/snipclass.ss index ce5854c702..13be5daf50 100644 --- a/collects/macro-debugger/syntax-browser/snipclass.ss +++ b/collects/macro-debugger/syntax-browser/snipclass.ss @@ -1,7 +1,7 @@ (module snipclass mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") (lib "match.ss") (lib "string.ss") @@ -10,8 +10,10 @@ (provide snipclass@) (define snipclass@ - (unit/sig snipclass^ + (unit (import snip^) + (export snipclass^) + ;; COPIED AND MODIFIED from mrlib/syntax-browser.ss (define syntax-snipclass% (class snip-class% @@ -61,7 +63,7 @@ [else stx])) (define (unmarshall-object obj) - (let ([unknown (λ () (string->symbol (format "unknown: ~s" obj)))]) + (let ([unknown (lambda () (string->symbol (format "unknown: ~s" obj)))]) (if (and (pair? obj) (symbol? (car obj))) (case (car obj) diff --git a/collects/macro-debugger/syntax-browser/syntax-snip.ss b/collects/macro-debugger/syntax-browser/syntax-snip.ss index 440e02be49..097a2e9e14 100644 --- a/collects/macro-debugger/syntax-browser/syntax-snip.ss +++ b/collects/macro-debugger/syntax-browser/syntax-snip.ss @@ -1,7 +1,7 @@ (module syntax-snip mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") "interfaces.ss" @@ -12,12 +12,13 @@ snip-keymap-extension@) (define snip@ - (unit/sig snip^ + (unit (import prefs^ keymap^ context-menu^ snipclass^) - + (export snip^) + ;; syntax-snip : syntax -> snip (define (syntax-snip stx) (new syntax-snip% (syntax stx))) @@ -201,9 +202,10 @@ )) (define snip-keymap-extension@ - (unit/sig keymap^ - (import (pre : keymap^)) - + (unit + (import (prefix pre: keymap^)) + (export keymap^) + (define syntax-keymap% (class pre:syntax-keymap% (init-field snip) @@ -214,23 +216,6 @@ (lambda (i e) (send snip show-props))))))) - #; - (define snip-context-menu-extension@ - (unit/sig context-menu^ - (import (pre : context-menu^)) - - (define context-menu% - (class pre:context-menu% - (init-field snip) - - (define/override (after-selection-items) - (super after-selection-items) - (new menu-item% (label "Show syntax properties") - (parent this) - (callback (lambda _ (send snip show-props)))) - (void)) - - (super-new (controller (send snip get-controller))))))) (define style:normal (make-object style-delta% 'change-normal)) diff --git a/collects/macro-debugger/syntax-browser/widget.ss b/collects/macro-debugger/syntax-browser/widget.ss index 91c541fac6..40dc3e8c0b 100644 --- a/collects/macro-debugger/syntax-browser/widget.ss +++ b/collects/macro-debugger/syntax-browser/widget.ss @@ -1,7 +1,7 @@ (module widget mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "list.ss") @@ -17,9 +17,10 @@ widget-context-menu-extension@) (define widget@ - (unit/sig widget^ + (unit (import keymap^) - + (export widget^) + ;; syntax-widget% ;; A syntax-widget creates its own syntax-controller. (define syntax-widget% @@ -140,9 +141,10 @@ )) (define widget-keymap-extension@ - (unit/sig keymap^ - (import (pre : keymap^)) - + (unit + (import (prefix pre: keymap^)) + (export keymap^) + (define syntax-keymap% (class pre:syntax-keymap% (init-field widget) @@ -157,14 +159,15 @@ )))) (define widget-context-menu-extension@ - (unit/sig context-menu^ - (import (pre : context-menu^)) - + (unit + (import (prefix pre: context-menu^)) + (export context-menu^) + (define context-menu% (class pre:context-menu% (inherit-field keymap) (inherit-field props-menu) - + (define/override (on-demand) (send props-menu set-label (if (send (send keymap get-widget) props-shown?) diff --git a/collects/macro-debugger/tool.ss b/collects/macro-debugger/tool.ss index 652fdb2f53..689ab92e83 100644 --- a/collects/macro-debugger/tool.ss +++ b/collects/macro-debugger/tool.ss @@ -3,10 +3,6 @@ (require (lib "class.ss") (lib "list.ss") (lib "unit.ss") - (only (lib "unitsig.ss") - unit/sig - compound-unit/sig - define-values/invoke-unit/sig) (lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "tool.ss" "drscheme") @@ -19,28 +15,20 @@ (prefix sb: "syntax-browser/embed.ss")) (define view-base/tool@ - (unit/sig view:view-base^ - (import) + (unit + (import) + (export view:view-base^) (define base-frame% (frame:standard-menus-mixin frame:basic%)))) (define stepper@ - (compound-unit/sig + (compound-unit (import) - (link [BASE : view:view-base^ (view-base/tool@)] - [STEPPER : view:view^ (view:pre-stepper@ BASE)]) - (export (open STEPPER)))) + (link [((BASE : view:view-base^)) view-base/tool@] + [((STEPPER : view:view^)) view:pre-stepper@ BASE]) + (export STEPPER))) - #;(define stepper@ - (compound-unit/sig - (import) - (link (PREFS : view:prefs^ (view:prefs@)) - (SB : sb:implementation^ (sb:implementation@)) - (BASE : view:view-base^ (view-base/tool@)) - (VIEW : view:view^ (view:view@ PREFS BASE SB))) - (export (open VIEW)))) - - (define-values/invoke-unit/sig view:view^ stepper@) + (define-values/invoke-unit stepper@ (import) (export view:view^)) (provide tool@) diff --git a/collects/macro-debugger/view/browse-deriv.ss b/collects/macro-debugger/view/browse-deriv.ss index 85a1582851..776b59e9c9 100644 --- a/collects/macro-debugger/view/browse-deriv.ss +++ b/collects/macro-debugger/view/browse-deriv.ss @@ -2,7 +2,7 @@ (module browse-deriv mzscheme (require (lib "class.ss") (lib "plt-match.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "hierlist.ss" "hierlist")) @@ -25,8 +25,9 @@ )) (define deriv@ - (unit/sig node^ + (unit (import) + (export node^) ;; Node = (union Derivation Transformation) @@ -76,8 +77,9 @@ )) (define browser@ - (unit/sig browser^ + (unit (import node^) + (export browser^) (define callback-hierlist% (class hierarchical-list% @@ -131,11 +133,11 @@ (define app@ - (compound-unit/sig + (compound-unit (import) - (link [NODE : node^ (deriv@)] - [BROWSER : browser^ (browser@ NODE)]) - (export (open BROWSER)))) + (link [((NODE node^)) deriv@] + [((BROWSER browser^)) browser@ NODE]) + (export BROWSER))) - (define-values/invoke-unit/sig browser^ app@) + (define-values/invoke-unit app@ (export browser^)) ) diff --git a/collects/macro-debugger/view/gui.ss b/collects/macro-debugger/view/gui.ss index 76dc640b6c..884e2f67a4 100644 --- a/collects/macro-debugger/view/gui.ss +++ b/collects/macro-debugger/view/gui.ss @@ -1,7 +1,7 @@ (module gui mzscheme (require (lib "class.ss") - (lib "unitsig.ss") + (lib "unit.ss") (lib "list.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") @@ -32,10 +32,11 @@ ;; Macro Stepper (define view@ - (unit/sig view^ + (unit (import prefs^ view-base^ - (sb : sb:widget^)) + (prefix sb: sb:widget^)) + (export view^) (define macro-stepper-config% (class object% @@ -592,8 +593,9 @@ ;; Extensions (define keymap-extension@ - (unit/sig sb:keymap^ - (import (pre : sb:keymap^)) + (unit + (import (prefix pre: sb:keymap^)) + (export sb:keymap^) (define syntax-keymap% (class pre:syntax-keymap% @@ -619,8 +621,9 @@ (refresh)))))))) (define context-menu-extension@ - (unit/sig sb:context-menu^ - (import (pre : sb:context-menu^)) + (unit + (import (prefix pre: sb:context-menu^)) + (export sb:context-menu^) (define context-menu% (class pre:context-menu% @@ -658,9 +661,10 @@ (super-new))))) (define browser-extension@ - (unit/sig sb:widget^ - (import (pre : sb:widget^) + (unit + (import (prefix pre: sb:widget^) sb:keymap^) + (export sb:widget^) (define syntax-widget% (class pre:syntax-widget% @@ -676,37 +680,35 @@ ;; Linking (define context-menu@ - (compound-unit/sig + (compound-unit (import) - (link [SB:MENU : sb:context-menu^ (sb:widget-context-menu@)] - [V:MENU : sb:context-menu^ (context-menu-extension@ SB:MENU)]) - (export (open V:MENU)))) + (link [((SB:MENU : sb:context-menu^)) sb:widget-context-menu@] + [((V:MENU : sb:context-menu^)) context-menu-extension@ SB:MENU]) + (export V:MENU))) (define keymap@ - (compound-unit/sig + (compound-unit (import [MENU : sb:context-menu^] [SNIP : sb:snip^]) - (link [SB:KEYMAP : sb:keymap^ (sb:widget-keymap@ MENU SNIP)] - [V:KEYMAP : sb:keymap^ (keymap-extension@ SB:KEYMAP)]) - (export (open V:KEYMAP)))) - + (link [((SB:KEYMAP : sb:keymap^)) sb:widget-keymap@ MENU SNIP] + [((V:KEYMAP : sb:keymap^)) keymap-extension@ SB:KEYMAP]) + (export V:KEYMAP))) + (define widget@ - (compound-unit/sig - (import [KEYMAP : sb:keymap^] - [MENU : sb:context-menu^]) - (link [SB:WIDGET : sb:widget^ (sb:widget@ KEYMAP)] - [V:WIDGET : sb:widget^ (browser-extension@ SB:WIDGET KEYMAP)]) - (export (open V:WIDGET)))) + (compound-unit + (import [KEYMAP : sb:keymap^]) + (link [((SB:WIDGET : sb:widget^)) sb:widget@ KEYMAP] + [((V:WIDGET : sb:widget^)) browser-extension@ SB:WIDGET KEYMAP]) + (export V:WIDGET))) (define pre-stepper@ - (compound-unit/sig + (compound-unit (import [BASE : view-base^]) - (link [PREFS : prefs^ (prefs@)] - [MENU : sb:context-menu^ (context-menu@)] - [KEYMAP : sb:keymap^ (keymap@ MENU SNIP)] - [SNIP : sb:snip^ (sb:global-snip@)] - [WIDGET : sb:widget^ (widget@ KEYMAP MENU)] - [VIEW : view^ (view@ PREFS BASE WIDGET)]) - (export (open VIEW)))) - + (link [((PREFS : prefs^)) prefs@] + [((MENU : sb:context-menu^)) context-menu@] + [((KEYMAP : sb:keymap^)) keymap@ MENU SNIP] + [((SNIP : sb:snip^)) sb:global-snip@] + [((WIDGET : sb:widget^)) widget@ KEYMAP] + [((VIEW : view^)) view@ PREFS BASE WIDGET]) + (export VIEW))) ) diff --git a/collects/macro-debugger/view/interfaces.ss b/collects/macro-debugger/view/interfaces.ss index 515941126a..16698a2cba 100644 --- a/collects/macro-debugger/view/interfaces.ss +++ b/collects/macro-debugger/view/interfaces.ss @@ -1,6 +1,6 @@ (module interfaces mzscheme - (require (lib "unitsig.ss")) + (require (lib "unit.ss")) (provide (all-defined)) ;; Signatures diff --git a/collects/macro-debugger/view/prefs.ss b/collects/macro-debugger/view/prefs.ss index 4d0e2dd790..391b7419d8 100644 --- a/collects/macro-debugger/view/prefs.ss +++ b/collects/macro-debugger/view/prefs.ss @@ -1,6 +1,6 @@ (module prefs mzscheme - (require (lib "unitsig.ss") + (require (lib "unit.ss") (lib "framework.ss" "framework") "interfaces.ss") (provide prefs@) @@ -14,8 +14,9 @@ [(newval) (preferences:set 'prop newval)]))])) (define prefs@ - (unit/sig prefs^ + (unit (import) + (export prefs^) (preferences:set-default 'MacroStepper:Frame:Width 700 number?) (preferences:set-default 'MacroStepper:Frame:Height 600 number?) diff --git a/collects/macro-debugger/view/view.ss b/collects/macro-debugger/view/view.ss index 8842013ae7..e45a4c8418 100644 --- a/collects/macro-debugger/view/view.ss +++ b/collects/macro-debugger/view/view.ss @@ -1,6 +1,6 @@ (module view mzscheme - (require (lib "unitsig.ss") + (require (lib "unit.ss") (lib "mred.ss" "mred") (lib "framework.ss" "framework") "interfaces.ss" @@ -8,15 +8,19 @@ (provide (all-defined)) (define view-base@ - (unit/sig view-base^ + (unit (import) + (export view-base^) + (define base-frame% (frame:standard-menus-mixin (frame:basic-mixin frame%))))) - (define-values/invoke-unit/sig view^ - (compound-unit/sig + (define-values/invoke-unit + (compound-unit (import) - (link [BASE : view-base^ (view-base@)] - [STEPPER : view^ (pre-stepper@ BASE)]) - (export (open STEPPER)))) + (link [((BASE : view-base^)) view-base@] + [((STEPPER : view^)) pre-stepper@ BASE]) + (export STEPPER)) + (import) + (export view^)) )