diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:40 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:40 -0800 |
commit | 4684239efa63dc1b2c1cbe37ef7d3062029f5532 (patch) | |
tree | 606a687e9279e9bf6048925878968df9875a4973 /bigloo.init | |
parent | 64f037d91e0c9296dcaef9a0ff3eb33b19a2ed34 (diff) | |
download | slib-upstream/3b1.tar.gz slib-upstream/3b1.zip |
Import Upstream version 3b1upstream/3b1
Diffstat (limited to 'bigloo.init')
-rw-r--r-- | bigloo.init | 40 |
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")) |