summaryrefslogtreecommitdiffstats
path: root/bigloo.init
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:40 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:40 -0800
commit4684239efa63dc1b2c1cbe37ef7d3062029f5532 (patch)
tree606a687e9279e9bf6048925878968df9875a4973 /bigloo.init
parent64f037d91e0c9296dcaef9a0ff3eb33b19a2ed34 (diff)
downloadslib-upstream/3b1.tar.gz
slib-upstream/3b1.zip
Import Upstream version 3b1upstream/3b1
Diffstat (limited to 'bigloo.init')
-rw-r--r--bigloo.init40
1 files changed, 25 insertions, 15 deletions
diff --git a/bigloo.init b/bigloo.init
index 13ad86d..54467bb 100644
--- a/bigloo.init
+++ b/bigloo.init
@@ -24,11 +24,14 @@
;;@ (implementation-vicinity) should be defined to be the pathname of
;;; the directory where any auxillary files to your Scheme
;;; implementation reside.
-(define (implementation-vicinity)
- (case (software-type)
- ((unix) (string-append *default-lib-dir* "/"))
- ((ms-dos) "C:\\scheme\\")
- (else "")))
+(define implementation-vicinity
+ (let ((impl-path
+ (or (getenv "BIGLOO_IMPLEMENTATION_PATH")
+ (case (software-type)
+ ((unix) (string-append *default-lib-dir* "/"))
+ ((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.
@@ -98,8 +101,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)))))
@@ -139,6 +141,7 @@
;(SLIB:LOAD-COMPILED "filename")
vicinity
srfi-59
+ srfi-96
;; Scheme report features
;; R5RS-compliant implementations should provide all 9 features.
@@ -182,7 +185,7 @@
;; 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.
@@ -199,7 +202,7 @@
;;; ed ;(ED) is editor
system ;posix (system <string>)
getenv ;posix (getenv <string>)
-;;; program-arguments ;returns list of strings (argv)
+ program-arguments ;returns list of strings (argv)
;;; current-time ;returns time in seconds since 1/1/1970
;; Implementation Specific features
@@ -210,6 +213,11 @@
; non-symbols.
))
+;;@ http://practical-scheme.net/wiliki/schemexref.cgi?command-line
+;;http://practical-scheme.net/wiliki/schemexref.cgi?executable-name
+(define (program-arguments)
+ (cons (executable-name) (command-line)))
+
(define pretty-print pp)
;;; OBJ->STRING returns strings with control characters.
@@ -293,10 +301,6 @@
;;@ 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-macro (defmacro name . forms)
`(define-macro (,name . ,(car forms)) ,@(cdr forms)))
;@
@@ -313,8 +317,6 @@
;;(define (defmacro:expand* x)
;; (require 'defmacroexpand) (apply defmacro:expand* x '()))
-;; slib:eval-load definition moved to "require.scm"
-
;@
(define slib:warn
(lambda args
@@ -408,4 +410,12 @@
;@
(define defmacro:load slib:load-source)
+;;; 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)
+
(slib:load (in-vicinity (library-vicinity) "require"))