Converting to scheme from mzscheme

svn: r15281
This commit is contained in:
Jay McCarthy 2009-06-25 22:09:54 +00:00
parent 5b505d6f5c
commit a7256c91bf
7 changed files with 779 additions and 816 deletions

View File

@ -1,8 +1,7 @@
#lang scheme
(module date mzscheme
(require "list.ss") (require "list.ss")
(require (rename "frtime.ss" frtime:provide provide)) (require (rename-in (only-in "frtime.ss" provide)
[provide frtime:provide]))
(frtime:provide (frtime:provide
(lifted date->string (lifted date->string
@ -16,35 +15,6 @@
;; Support for Julian calendar added by Shriram; ;; Support for Julian calendar added by Shriram;
;; current version only works until 2099 CE Gregorian ;; current version only works until 2099 CE Gregorian
#|
(define-primitive seconds->date (num -> structure:date))
(define-primitive current-seconds (-> num))
(define-primitive date-second (structure:date -> num))
(define-primitive date-minute (structure:date -> num))
(define-primitive date-hour (structure:date -> num))
(define-primitive date-day (structure:date -> num))
(define-primitive date-month (structure:date -> num))
(define-primitive date-year (structure:date -> num))
(define-primitive date-week-day (structure:date -> num))
(define-primitive date-year-day (structure:date -> num))
(define-primitive date-dst? (structure:date -> bool))
(define-primitive make-date (num num num num num num num num bool ->
structure:date))
(define-primitive expr->string (a -> string))
(define-primitive foldl (case->
((a z -> z) z (listof a) -> z)
((a b z -> z) z (listof a) (listof b) -> z)
((a b c z -> z) z (listof a) (listof b) (listof c) -> z)
(((arglistof x) ->* z) z (listof (arglistof x)) ->* z)))
(define-primitive foldr (case->
((a z -> z) z (listof a) -> z)
((a b z -> z) z (listof a) (listof b) -> z)
((a b c z -> z) z (listof a) (listof b) (listof c) -> z)
(((arglistof x) ->* z) z (listof (arglistof x)) ->* z)))
|#
(define legal-formats (define legal-formats
(list 'american 'chinese 'german 'indian 'irish 'julian 'iso-8601 'rfc2822)) (list 'american 'chinese 'german 'indian 'irish 'julian 'iso-8601 'rfc2822))
@ -387,6 +357,3 @@
(cadr reversed-digits) (cadr reversed-digits)
(car reversed-digits))) (car reversed-digits)))
(loop (cdr (cdr (cdr reversed-digits)))))))))))) (loop (cdr (cdr (cdr reversed-digits))))))))))))
)

View File

@ -1,19 +1,21 @@
(module frp-snip mzscheme #lang scheme/base
(require mzlib/class (require scheme/class
mzlib/string (only-in mzlib/string expr->string)
mzlib/list scheme/list
mzlib/port scheme/port
framework framework
;; FRP requires ;; FRP requires
frtime/core/frp frtime/core/frp
(all-except frtime/lang-ext undefined?) (except-in frtime/lang-ext
(only frtime/lang-core any-nested-reactivity? raise-reactivity) undefined?)
(only-in frtime/lang-core
any-nested-reactivity? raise-reactivity)
;; MrEd require ;; MrEd require
(all-except mred send-event)) (except-in mred send-event))
(define drs-eventspace #f) (define drs-eventspace #f)
@ -163,5 +165,4 @@
(make-object dynamic-snip% beh super-render-fun)] (make-object dynamic-snip% beh super-render-fun)]
[else beh])) [else beh]))
(provide (all-defined)) (provide (all-defined-out))
)

View File

@ -1,10 +1,10 @@
#lang scheme/base
(module frtime-tool mzscheme (require scheme/unit
(require mzlib/unit scheme/class
mzlib/class scheme/bool
mred mred
mzlib/etc (only-in mzlib/etc identity)
mzlib/list scheme/list
drscheme/tool drscheme/tool
string-constants) string-constants)
@ -91,4 +91,4 @@
(define (phase1) (void)) (define (phase1) (void))
(define (phase2) (define (phase2)
(drscheme:language-configuration:add-language (drscheme:language-configuration:add-language
(make-object ((drscheme:language:get-default-mixin) (make-frtime-language big-frtime-language%)))))))) (make-object ((drscheme:language:get-default-mixin) (make-frtime-language big-frtime-language%)))))))

View File

@ -1,5 +1,5 @@
(module graphics-sig mzscheme #lang scheme
(require mzlib/unit) (require scheme/unit)
(provide graphics^ graphics:posn-less^ graphics:posn^) (provide graphics^ graphics:posn-less^ graphics:posn^)
@ -66,7 +66,3 @@
(define-signature graphics^ (define-signature graphics^
((open graphics:posn-less^) ((open graphics:posn-less^)
(open graphics:posn^))) (open graphics:posn^)))
)

View File

@ -1,15 +1,14 @@
(module graphics-unit mzscheme #lang scheme
(require mzlib/unit (require scheme/unit
mred/mred-sig mred/mred-sig
"graphics-sig.ss" "graphics-sig.ss"
"graphics-posn-less-unit.ss") "graphics-posn-less-unit.ss")
(provide graphics@) (provide graphics@)
(define-unit posn@ (import) (export graphics:posn^) (define-unit posn@ (import) (export graphics:posn^)
(define-struct posn (x y))) (define-struct posn (x y) #:mutable))
(define-compound-unit/infer graphics@ (define-compound-unit/infer graphics@
(import mred^) (import mred^)
(export graphics:posn^ graphics:posn-less^) (export graphics:posn^ graphics:posn-less^)
(link posn@ graphics-posn-less@))) (link posn@ graphics-posn-less@))

View File

@ -1,9 +1,9 @@
(module graphics mzscheme #lang scheme
(require mzlib/unit (require scheme/unit
mred/mred-sig mred/mred-sig
mred mred
"graphics-sig.ss" "graphics-sig.ss"
"graphics-unit.ss") "graphics-unit.ss")
(provide-signature-elements graphics:posn^ graphics:posn-less^) (provide-signature-elements graphics:posn^ graphics:posn-less^)
(define-values/invoke-unit/infer graphics@)) (define-values/invoke-unit/infer graphics@)

View File

@ -1,17 +1,19 @@
;; This module defines all the logic necessary for working with lowered ;; This module defines all the logic necessary for working with lowered
;; equivalents at the syntactic level. That is, it treats functions simply ;; equivalents at the syntactic level. That is, it treats functions simply
;; as syntactic identifiers. ;; as syntactic identifiers.
(module lowered-equivs mzscheme #lang scheme
(provide (all-defined)) (provide (except-out (all-defined-out)
(require mzlib/list) module-identifier=?))
(require (only srfi/1 any)) (require (only-in srfi/1 any))
(define module-identifier=? free-identifier=?)
(define lowered-equiv-suffix ":lowered-equiv") (define lowered-equiv-suffix ":lowered-equiv")
;; Given an identifier for a normal binding, return the identifier ;; Given an identifier for a normal binding, return the identifier
;; to be used for the lowered equivalent of that binding. ;; to be used for the lowered equivalent of that binding.
(define (make-lowered-equiv-id id-stx) (define (make-lowered-equiv-id id-stx)
(datum->syntax-object (datum->syntax
id-stx id-stx
(string->symbol (string->symbol
(format "~a~a" (syntax-e id-stx) lowered-equiv-suffix)))) (format "~a~a" (syntax-e id-stx) lowered-equiv-suffix))))
@ -31,7 +33,7 @@
;; strip the lowered-equiv suffix from an identifier ;; strip the lowered-equiv suffix from an identifier
(define (lowered-equiv-id->lifted-id id-stx) (define (lowered-equiv-id->lifted-id id-stx)
(let ([name (symbol->string (syntax-e id-stx))]) (let ([name (symbol->string (syntax-e id-stx))])
(datum->syntax-object (datum->syntax
id-stx id-stx
(string->symbol (string->symbol
(substring name 0 (- (string-length name) (substring name 0 (- (string-length name)
@ -80,7 +82,7 @@
(if ret (if ret
ret ret
(raise (make-exn:no-lowered-equiv (raise (make-exn:no-lowered-equiv
(format "no lowered equiv for ~s" (syntax-object->datum func))))))) (format "no lowered equiv for ~s" (syntax->datum func)))))))
;; convert syntax of the form ((func lowered-equiv) ...) to an equiv map ;; convert syntax of the form ((func lowered-equiv) ...) to an equiv map
(define (stx-to-equiv-map stx) (define (stx-to-equiv-map stx)
@ -91,7 +93,7 @@
;; convert an equiv map to syntax of the form ((func lowered-equiv) ...) ;; convert an equiv map to syntax of the form ((func lowered-equiv) ...)
(define (equiv-map-to-stx equiv-map) (define (equiv-map-to-stx equiv-map)
(datum->syntax-object #'here (datum->syntax #'here
(map (lambda (pair) (list (car pair) (cdr pair))) (map (lambda (pair) (list (car pair) (cdr pair)))
equiv-map))) equiv-map)))
@ -111,5 +113,3 @@
equiv-map)) equiv-map))
(empty-equiv-map) (empty-equiv-map)
symbol-list)) symbol-list))
)