using relative paths for include files

This commit is contained in:
Alex Shinn 2009-11-28 17:44:47 +09:00
parent 574b1daa32
commit 532a717ed9
6 changed files with 23 additions and 19 deletions

View file

@ -31,6 +31,9 @@
(string-concatenate
(reverse (cons ".module" (cdr (module-name->strings name '()))))))
(define (module-name-prefix name)
(string-concatenate (reverse (cdr (cdr (module-name->strings name '()))))))
(define (load-module-definition name)
(let* ((file (module-name->file name))
(path (find-module-file name file)))
@ -45,7 +48,8 @@
(else #f)))))
(define (eval-module name mod)
(let ((env (make-environment)))
(let ((env (make-environment))
(prefix (module-name-prefix name)))
(for-each
(lambda (x)
(case (and (pair? x) (car x))
@ -55,9 +59,9 @@
((include include-shared)
(for-each
(lambda (f)
(let ((f (if (eq? (car x) 'include)
f
(string-append f *shared-object-extension*))))
(let ((f (string-append
prefix f
(if (eq? (car x) 'include) "" *shared-object-extension*))))
(cond
((find-module-file name f) => (lambda (x) (load x env)))
(else (error "couldn't find include" f)))))

View file

@ -2,5 +2,5 @@
(define-module (chibi match)
(export match match-lambda match-lambda* match-let match-letrec match-let*)
(import (scheme))
(include "chibi/match/match.scm"))
(include "match/match.scm"))

View file

@ -19,13 +19,13 @@
lset-intersection! lset-difference lset-difference! lset-xor lset-xor!
lset-diff+intersection lset-diff+intersection!)
(import (scheme))
(include "srfi/1/predicates.scm"
"srfi/1/selectors.scm"
"srfi/1/search.scm"
"srfi/1/misc.scm"
"srfi/1/constructors.scm"
"srfi/1/fold.scm"
"srfi/1/deletion.scm"
"srfi/1/alists.scm"
"srfi/1/lset.scm"))
(include "1/predicates.scm"
"1/selectors.scm"
"1/search.scm"
"1/misc.scm"
"1/constructors.scm"
"1/fold.scm"
"1/deletion.scm"
"1/alists.scm"
"1/lset.scm"))

View file

@ -91,14 +91,14 @@
init
(take-up-to-reverse (cdr from) to (cons (car from) init))))
(define (filter pred ls)
(define (remove pred ls)
(let lp ((ls ls) (rev '()))
(let ((tail (find-tail pred ls)))
(if tail
(lp (cdr tail) (take-up-to-reverse ls tail rev))
(if (pair? rev) (append-reverse! rev ls) ls)))))
(define (remove pred ls) (filter (lambda (x) (not (pred x))) ls))
(define (filter pred ls) (remove (lambda (x) (not (pred x))) ls))
(define (partition pred ls)
(let lp ((ls ls) (good '()) (bad '()))

View file

@ -12,6 +12,6 @@
hash string-hash string-ci-hash hash-by-identity)
(import (scheme))
(import (srfi 9))
(include-shared "srfi/69/hash")
(include "srfi/69/type.scm" "srfi/69/interface.scm"))
(include-shared "69/hash")
(include "69/type.scm" "69/interface.scm"))

View file

@ -1,5 +1,5 @@
(define-module (srfi 98)
(export get-environment-variable get-environment-variables)
(include-shared "srfi/98/env"))
(include-shared "98/env"))