diff options
Diffstat (limited to 'guile.init')
-rw-r--r-- | guile.init | 51 |
1 files changed, 26 insertions, 25 deletions
@@ -3,7 +3,7 @@ ;;; ;;; This code is in the public domain. -(if (not (and (string<=? "1.6" (version)) (string<? (version) "1.7"))) +(if (not (and (string<=? "1.6" (version)) (string<? (version) "1.8.3"))) (define-module (ice-9 slib))) ; :no-backtrace (define slib-module (current-module)) @@ -43,13 +43,17 @@ ;;; (implementation-vicinity) should be defined to be the pathname of ;;; the directory where any auxillary files to your Scheme ;;; implementation reside. -(define implementation-vicinity - (let* ((path (or (%search-load-path "ice-9/q.scm") - (error "Could not find ice-9/q.scm in " %load-path))) - (vic (substring path 0 (- (string-length path) 11)))) - (lambda () vic))) +;; (define implementation-vicinity +;; (let* ((path (or (%search-load-path "ice-9/q.scm") +;; (error "Could not find ice-9/q.scm in " %load-path))) +;; (vic (substring path 0 (- (string-length path) 11)))) +;; (lambda () vic))) +;; ;;; Rob Browning says %site-dir exists since Guile-1.6 -;;(define implementation-vicinity %site-dir) +(define implementation-vicinity + (cond ((and (defined? 'getenv) (getenv "GUILE_IMPLEMENTATION_PATH")) + => (lambda (path) (lambda () path))) + (else %site-dir))) ;;; (library-vicinity) should be defined to be the pathname of the ;;; directory where files of Scheme library functions reside. @@ -64,6 +68,9 @@ (and path (substring path 0 (- (string-length path) 10)))) ;; Use this path if your scheme does not support GETENV ;; or if SCHEME_LIBRARY_PATH is not set. +;; Changed from /usr/lib/slib to /usr/share/slib by tb@debian.org for +;; Debian packaging. +;; "/usr/lib/slib/" "/usr/share/slib/" (in-vicinity (implementation-vicinity) "slib/")))) (lambda () library-path))) @@ -115,8 +122,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))))) @@ -152,6 +158,13 @@ ;;; initially supported by this implementation. (define slib:features (append + (apply append + (map (lambda (sym) (if (defined? sym) (list sym) '())) + '(getenv + program-arguments + current-time + char-ready?))) + '( source ;can load scheme source files ;(SLIB:LOAD-SOURCE "filename") @@ -159,6 +172,7 @@ ;(SLIB:LOAD-COMPILED "filename") vicinity srfi-59 + srfi-96 ;; Scheme report features ;; R5RS-compliant implementations should provide all 9 features. @@ -203,7 +217,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. @@ -231,19 +245,7 @@ array array-for-each - ) - - (if (defined? 'getenv) - '(getenv) - '()) - - (if (defined? 'current-time) - '(current-time) - '()) - - (if (defined? 'char-ready?) - '(char-ready?) - '()))) + ))) ;;@ (FILE-POSITION <port> . <k>) (define (file-position port . args) @@ -379,7 +381,6 @@ (let ((ie (interaction-environment))) (lambda (expression) (eval expression ie))))) -;; slib:eval-load definition moved to "require.scm" ;;; Define SLIB:EXIT to be the implementation procedure to exit or ;;; return if exiting not supported. @@ -455,7 +456,7 @@ ;;; If your implementation provides R4RS macros: (define macro:eval slib:eval) -(define macro:load slib:load) +(define macro:load slib:load-source) (define slib:warn warn) (define slib:error error) |