diff options
Diffstat (limited to 'macscheme.init')
-rw-r--r-- | macscheme.init | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/macscheme.init b/macscheme.init index c922bfc..7846135 100644 --- a/macscheme.init +++ b/macscheme.init @@ -72,8 +72,7 @@ ;@ (define sub-vicinity (case (software-type) - ((vms) (lambda - (vic name) + ((vms) (lambda (vic name) (let ((l (string-length vic))) (if (or (zero? (string-length vic)) (not (char=? #\] (string-ref vic (- l 1))))) @@ -113,6 +112,7 @@ ;(SLIB:LOAD-COMPILED "filename") vicinity srfi-59 + srfi-96 ;; Scheme report features ;; R5RS-compliant implementations should provide all 9 features. @@ -156,11 +156,11 @@ ;; Other common features -;;; srfi ;srfi-0, COND-EXPAND finds all srfi-* +;;; srfi-0 ;srfi-0, COND-EXPAND finds all srfi-* ;;; sicp ;runs code from Structure and ;Interpretation of Computer ;Programs by Abelson and Sussman. -;;; defmacro ;has Common Lisp DEFMACRO + defmacro ;has Common Lisp DEFMACRO ;;; record ;has user defined data structures string-port ;has CALL-WITH-INPUT-STRING and ;CALL-WITH-OUTPUT-STRING @@ -268,13 +268,6 @@ ;;; Return argument (define (identity x) x) -;;; SLIB:EVAL is single argument eval using the top-level (user) environment. -(define slib:eval eval) - -;;; If your implementation provides R4RS macros: -;(define macro:eval slib:eval) -;(define macro:load load) - (define *defmacros* (list (cons 'defmacro (lambda (name parms . body) @@ -304,6 +297,8 @@ (string->symbol (string-append "slib:G" (number->string *gensym-counter*)))))) +;;; SLIB:EVAL is single argument eval using the top-level (user) environment. +(define slib:eval eval) (define base:eval slib:eval) (define (defmacro:eval x) (base:eval (defmacro:expand* x))) (define (defmacro:expand* x) @@ -311,7 +306,6 @@ (define (defmacro:load <pathname>) (slib:eval-load <pathname> defmacro:eval)) -;; slib:eval-load definition moved to "require.scm" (define slib:warn (lambda args @@ -362,6 +356,14 @@ ;;; See feature 'COMPILED. (define slib:load-compiled load) +;;; If your implementation provides R4RS macros: +;;(define macro:eval slib:eval) +;;(define macro:load slib:load-source) + +;;; If your implementation provides syntax-case macros: +;;(define syncase:eval slib:eval) +;;(define syncase:load slib:load-source) + ;;; At this point SLIB:LOAD must be able to load SLIB files. (define slib:load slib:load-source) |