aboutsummaryrefslogtreecommitdiffstats
path: root/RScheme.init
diff options
context:
space:
mode:
authorThomas Bushnell, BSG <tb@debian.org>2008-02-04 20:29:13 -0500
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:41 -0800
commit71dab84adaa579f9386dd8ee09006d3cac625723 (patch)
tree8022514642d25edffdb4bdd130020674b0efd844 /RScheme.init
parent897451458bd8eec628c7bbfaccba0dd069830f0f (diff)
parent4684239efa63dc1b2c1cbe37ef7d3062029f5532 (diff)
downloadslib-71dab84adaa579f9386dd8ee09006d3cac625723.tar.gz
slib-71dab84adaa579f9386dd8ee09006d3cac625723.zip
Import Debian changes 3b1-1debian/3b1-1
slib (3b1-1) unstable; urgency=low * New upstream release. * guile.init (library-vicinity): Repeat change from 3a4-2. * slib.texi (Library Catalogs): Repeat change from 3a3-3. * slib.sh: Repeat change from 3a5-3. * slib.1: Repeat change from 3a5-4. * Makefile: Repeat change from 3a2-1.
Diffstat (limited to 'RScheme.init')
-rw-r--r--RScheme.init49
1 files changed, 25 insertions, 24 deletions
diff --git a/RScheme.init b/RScheme.init
index 87aacdb..a9607f4 100644
--- a/RScheme.init
+++ b/RScheme.init
@@ -31,11 +31,15 @@
;;; the directory where any auxillary files to your Scheme
;;; implementation reside.
-(define (implementation-vicinity)
- (case (software-type)
- ((unix) "/usr/local/lib/rs/0.7.1/")
- ((vms) "scheme$src:")
- ((ms-dos) "C:\\scheme\\")))
+(define implementation-vicinity
+ (let ((impl-path
+ (or (getenv "RSCHEME_IMPLEMENTATION_PATH")
+ (case (software-type)
+ ((unix) "/usr/local/lib/rs/0.7.1/")
+ ((vms) "scheme$src:")
+ ((ms-dos) "C:\\scheme\\")
+ (else "")))))
+ (lambda () impl-path)))
;;; (library-vicinity) should be defined to be the pathname of the
;;; directory where files of Scheme library functions reside.
@@ -103,8 +107,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)))))
@@ -144,6 +147,7 @@
;(SLIB:LOAD-COMPILED "filename")
vicinity
srfi-59
+ srfi-96
;; Scheme report features
;; R5RS-compliant implementations should provide all 9 features.
@@ -187,11 +191,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
@@ -283,14 +287,6 @@
;;; Return argument
;;(define (identity x) x)
-;;; If your implementation provides eval 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)
@@ -320,14 +316,14 @@
(string->symbol
(string-append "slib:G" (number->string *gensym-counter*))))))
-(define base:eval slib:eval)
-(define (defmacro:eval x) (base:eval (defmacro:expand* x)))
+;;; SLIB:EVAL is single argument eval using the top-level (user)
+;;; environment.
+(define slib:eval eval)
+(define (defmacro:eval x) (eval (defmacro:expand* x)))
(define (defmacro:expand* x)
(require 'defmacroexpand) (apply defmacro:expand* x '()))
-
(define (defmacro:load <pathname>)
(slib:eval-load <pathname> defmacro:eval))
-;; slib:eval-load definition moved to "require.scm"
(define slib:warn
(lambda args
@@ -372,17 +368,22 @@
;;; (SLIB:LOAD-SOURCE "foo") should load "foo.scm" or with whatever
;;; suffix all the module files in SLIB have. See feature 'SOURCE.
-
(define (slib:load-source f) (load (string-append f ".scm")))
;;; (SLIB:LOAD-COMPILED "foo") should load the file that was produced
;;; by compiling "foo.scm" if this implementation can compile files.
;;; See feature 'COMPILED.
-
(define slib:load-compiled load)
;;; At this point SLIB:LOAD must be able to load SLIB files.
-
(define slib:load slib:load-source)
+;;; If your implementation provides R4RS macros:
+;;(define macro:eval slib:eval)
+;;(define macro:load load)
+
+;;; If your implementation provides syntax-case macros:
+;;(define syncase:eval slib:eval)
+;;(define syncase:load slib:load-source)
+
(slib:load (in-vicinity (library-vicinity) "require"))