From 532a717ed9d82fd4ae541fcf6dfbbab0e2d6d533 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 28 Nov 2009 17:44:47 +0900 Subject: [PATCH] using relative paths for include files --- config.scm | 12 ++++++++---- lib/chibi/match.module | 2 +- lib/srfi/1.module | 18 +++++++++--------- lib/srfi/1/fold.scm | 4 ++-- lib/srfi/69.module | 4 ++-- lib/srfi/98.module | 2 +- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/config.scm b/config.scm index f93ebd5e..dc54b1fd 100644 --- a/config.scm +++ b/config.scm @@ -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))))) diff --git a/lib/chibi/match.module b/lib/chibi/match.module index 87382e95..afce8975 100644 --- a/lib/chibi/match.module +++ b/lib/chibi/match.module @@ -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")) diff --git a/lib/srfi/1.module b/lib/srfi/1.module index 93477756..3d3da044 100644 --- a/lib/srfi/1.module +++ b/lib/srfi/1.module @@ -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")) diff --git a/lib/srfi/1/fold.scm b/lib/srfi/1/fold.scm index 4c0c2afa..5253dec6 100644 --- a/lib/srfi/1/fold.scm +++ b/lib/srfi/1/fold.scm @@ -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 '())) diff --git a/lib/srfi/69.module b/lib/srfi/69.module index 5d2f040b..fd28ecaa 100644 --- a/lib/srfi/69.module +++ b/lib/srfi/69.module @@ -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")) diff --git a/lib/srfi/98.module b/lib/srfi/98.module index b3e58525..9d124d66 100644 --- a/lib/srfi/98.module +++ b/lib/srfi/98.module @@ -1,5 +1,5 @@ (define-module (srfi 98) (export get-environment-variable get-environment-variables) - (include-shared "srfi/98/env")) + (include-shared "98/env"))