/usr/share/racket/pkgs/lazy/lazy-tool.rkt is in racket-common 6.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #lang racket/base
(require racket/unit
racket/class
string-constants
drracket/tool
lang/stepper-language-interface)
(provide tool@)
(define tool@
(unit
(import drracket:tool^)
(export drracket:tool-exports^)
(define (stepper-settings-language %)
(if (implementation? % stepper-language<%>)
(class* % (stepper-language<%>)
(init-field stepper:supported)
(init-field stepper:enable-let-lifting)
(init-field stepper:show-lambdas-as-lambdas)
(define/override (stepper:supported?)
stepper:supported)
(define/override (stepper:enable-let-lifting?)
stepper:enable-let-lifting)
(define/override (stepper:show-lambdas-as-lambdas?)
stepper:show-lambdas-as-lambdas)
(super-new))
(class* % ()
(init stepper:supported)
(init stepper:enable-let-lifting)
(init stepper:show-lambdas-as-lambdas)
(super-new))))
; extends class implementing module-based-language<%> to use different
; default-settings, ie, 'constructor printing-style instead of 'print
(define (module-based-language-extension %)
(class* % ()
(define/override (default-settings)
(drracket:language:make-simple-settings
#t ; case sensitive
'constructor ; printing-style
'mixed-fraction-e ; fraction-style
#f ; show-sharing
#t ; insert-newlines
'none)) ; annotations
(define/override (default-settings? s)
(and (super default-settings? s)
(eq? (drracket:language:simple-settings-printing-style s)
'constructor)))
; (equal? (drracket:language:simple-settings->vector s)
; (drracket:language:simple-settings->vector (default-settings))))
(super-new)))
(define (phase1) (void))
;; phase2 : -> void
(define (phase2)
(define lazy-language%
(stepper-settings-language
((drracket:language:get-default-mixin)
(drracket:language:module-based-language->language-mixin
(module-based-language-extension
(drracket:language:simple-module-based-language->module-based-language-mixin
drracket:language:simple-module-based-language%))))))
(drracket:language-configuration:add-language
(instantiate lazy-language% ()
(one-line-summary "Lazy Racket")
(module '(lib "lazy/lazy.rkt"))
(language-position `(,(string-constant experimental-languages)
"Lazy Racket"))
(language-numbers '(1000 -500))
(stepper:supported #t)
(stepper:enable-let-lifting #t)
(stepper:show-lambdas-as-lambdas #t)))
)))
|