(module morc mzscheme ;; (require (only (lib "lang.ss" "r5rs") %make-morc-namespace)) ;; (require (lib "lang.ss" "r5rs")) (define-syntax provide-morc (syntax-rules () [(_) (begin (require (lib "lang.ss" "morc")) (provide (all-from (lib "lang.ss" "morc"))))])) (provide-morc) (read-accept-bar-quote #f) (read-accept-box #f) (read-accept-compiled #f) (read-accept-dot #t) ;; Note: Needed to read non-list pair literals with 360. (read-accept-graph #f) (read-accept-quasiquote #t) (read-accept-reader #f) (read-accept-reader #f) (read-case-sensitive #t) (read-curly-brace-as-paren #f) (read-decimal-as-inexact #t) (read-square-bracket-as-paren #f) ;; (current-namespace (scheme-report-environment 5)) ;; Note: %make-morc-namespace isn't necessary. ;; (define (%make-morc-namespace) ;; ;; Note: This starts with the approach to "scheme-report-environment" ;; ;; support in MzScheme 360. ;; (let ((n (make-namespace 'empty)) ;; (orig (make-namespace))) ;; (parameterize ((current-namespace n)) ;; (namespace-attach-module orig '(lib "lang.ss" "morc")) ;; (namespace-require '(lib "lang.ss" "morc")) ;; (namespace-transformer-require '(lib "lang.ss" "morc")) ;; (letrec-syntax ;; ((one (syntax-rules () ;; ((_ (rename V N)) ;; (namespace-set-variable-value! ;; (quote N) ;; ;; V ;; (dynamic-require '(lib "lang.ss" "morc") (quote N)) ;; )) ;; ((_ V) ;; (one (rename V V))))) ;; (doit (syntax-rules () ;; ((_ X ...) (begin (one X) ...))))) ;; (doit ;; * ;; + ;; - ;; .expand ;; .expand1 ;; .null ;; / ;; all ;; alref ;; coerce ;; compare ;; even ;; expt ;; firstn ;; in ;; is ;; isa ;; iso ;; keep ;; keys ;; len ;; listtab ;; maptable ;; nil ;; no ;; nthcdr ;; odd ;; pos ;; pr ;; prn ;; rem ;; some ;; sqrt ;; t ;; table ;; trues ;; tuples ;; type ;; uniq ;; vals ;; ;; #%datum ;; ;; #%top ;; ;; TODO: Redefine "read-syntax"? ;; ;; ;; ;; (rename read-syntax@ read-syntax) ;; ;;require-for-syntax ;; %make-morc-namespace ;; (rename <=@ <=) ;; (rename <@ <) ;; (rename >=@ >=) ;; (rename >@ >) ;; (rename apply@ apply) ;; (rename cadr@ cadr) ;; (rename car@ car) ;; (rename cdr@ cdr) ;; (rename cons@ cons) ;; (rename list@ list) ;; (rename map@ map) ;; (rename sort@ sort) ;; (rename string@ string) ;; ;; def ;; ;; each ;; ;; fn ;; ;; for ;; mac ;; ;; obj ;; ;; pop ;; ;; push ;; ;; quasiquote ;; ;; quote ;; ;; repeat ;; ;; tostring ;; ;; unquote ;; ;; unquote-splicing ;; w/uniq ;; ;; while ;; ;; with ;; ;; (rename %app #%app) ;; ;; (rename %module-begin #%module-begin) ;; ;; (rename =@ =) ;; ;; (rename and@ and) ;; ;; (rename case@ case) ;; ;; (rename do@ do) ;; ;; (rename if@ if) ;; ;; (rename let@ let) ;; ;; (rename or@ or) ;; ;;(rename when@ when) ;; ))))) ;; ;; (current-namespace (%make-morc-namespace)) )