summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-06-16 22:20:28 +0200
committerAndy Wingo <wingo@pobox.com>2010-06-16 22:20:28 +0200
commite44d2e4d9884c25b746b95690bcfb601547220fd (patch)
tree2186d57f0adeace6e54bb7c2d6842bb6f3c35488
parente5602ce73e1b440fe8c70c34d89fd6ff7f8e9d0a (diff)
downloadguile-e44d2e4d9884c25b746b95690bcfb601547220fd.tar.gz
remove encoding of versions into the file system (for now?)
* module/ice-9/boot-9.scm (find-versioned-module): Remove. Still had some bugs (e.g. for "." in the path and in finding compiled files), did too much computation and statting, and we don't really want to promote versioning. Nor do we want to hard-code a particular encoding of versions in the file-system. Perhaps the real way to do this is to be extensible somehow. (try-module-autoload): Just dispatch to primitive-load-path in all cases. * module/rnrs * module/rnrs.scm: * module/rnrs/arithmetic/bitwise.scm: * module/rnrs/arithmetic/fixnums.scm: * module/rnrs/arithmetic/flonums.scm: * module/rnrs/base.scm: * module/rnrs/conditions.scm: * module/rnrs/control.scm: * module/rnrs/enums.scm: * module/rnrs/eval.scm: * module/rnrs/exceptions.scm: * module/rnrs/files.scm: * module/rnrs/hashtables.scm: * module/rnrs/io/simple.scm: * module/rnrs/lists.scm: * module/rnrs/mutable-pairs.scm: * module/rnrs/mutable-strings.scm: * module/rnrs/programs.scm: * module/rnrs/r5rs.scm: * module/rnrs/records/inspection.scm: * module/rnrs/records/procedural.scm: * module/rnrs/records/syntactic.scm: * module/rnrs/sorting.scm: * module/rnrs/syntax-case.scm: * module/rnrs/unicode.scm: Move these files, eliding the "6/" infix, so that they are in the normal (unversioned) module path.
-rw-r--r--module/Makefile.am48
-rw-r--r--module/ice-9/boot-9.scm78
-rw-r--r--module/rnrs.scm (renamed from module/6/rnrs.scm)0
-rw-r--r--module/rnrs/arithmetic/bitwise.scm (renamed from module/rnrs/arithmetic/6/bitwise.scm)0
-rw-r--r--module/rnrs/arithmetic/fixnums.scm (renamed from module/rnrs/arithmetic/6/fixnums.scm)0
-rw-r--r--module/rnrs/arithmetic/flonums.scm (renamed from module/rnrs/arithmetic/6/flonums.scm)0
-rw-r--r--module/rnrs/base.scm (renamed from module/rnrs/6/base.scm)0
-rw-r--r--module/rnrs/conditions.scm (renamed from module/rnrs/6/conditions.scm)0
-rw-r--r--module/rnrs/control.scm (renamed from module/rnrs/6/control.scm)0
-rw-r--r--module/rnrs/enums.scm (renamed from module/rnrs/6/enums.scm)0
-rw-r--r--module/rnrs/eval.scm (renamed from module/rnrs/6/eval.scm)0
-rw-r--r--module/rnrs/exceptions.scm (renamed from module/rnrs/6/exceptions.scm)0
-rw-r--r--module/rnrs/files.scm (renamed from module/rnrs/6/files.scm)0
-rw-r--r--module/rnrs/hashtables.scm (renamed from module/rnrs/6/hashtables.scm)0
-rw-r--r--module/rnrs/io/simple.scm (renamed from module/rnrs/io/6/simple.scm)0
-rw-r--r--module/rnrs/lists.scm (renamed from module/rnrs/6/lists.scm)0
-rw-r--r--module/rnrs/mutable-pairs.scm (renamed from module/rnrs/6/mutable-pairs.scm)0
-rw-r--r--module/rnrs/mutable-strings.scm (renamed from module/rnrs/6/mutable-strings.scm)0
-rw-r--r--module/rnrs/programs.scm (renamed from module/rnrs/6/programs.scm)0
-rw-r--r--module/rnrs/r5rs.scm (renamed from module/rnrs/6/r5rs.scm)0
-rw-r--r--module/rnrs/records/inspection.scm (renamed from module/rnrs/records/6/inspection.scm)0
-rw-r--r--module/rnrs/records/procedural.scm (renamed from module/rnrs/records/6/procedural.scm)0
-rw-r--r--module/rnrs/records/syntactic.scm (renamed from module/rnrs/records/6/syntactic.scm)0
-rw-r--r--module/rnrs/sorting.scm (renamed from module/rnrs/6/sorting.scm)0
-rw-r--r--module/rnrs/syntax-case.scm (renamed from module/rnrs/6/syntax-case.scm)0
-rw-r--r--module/rnrs/unicode.scm (renamed from module/rnrs/6/unicode.scm)0
26 files changed, 32 insertions, 94 deletions
diff --git a/module/Makefile.am b/module/Makefile.am
index d762b62b6..366862225 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -258,32 +258,32 @@ SRFI_SOURCES = \
srfi/srfi-98.scm
RNRS_SOURCES = \
- 6/rnrs.scm \
- rnrs/6/base.scm \
- rnrs/6/conditions.scm \
- rnrs/6/control.scm \
- rnrs/6/enums.scm \
- rnrs/6/eval.scm \
- rnrs/6/exceptions.scm \
- rnrs/6/files.scm \
- rnrs/6/hashtables.scm \
- rnrs/6/lists.scm \
- rnrs/6/mutable-pairs.scm \
- rnrs/6/mutable-strings.scm \
- rnrs/6/programs.scm \
- rnrs/6/r5rs.scm \
- rnrs/6/sorting.scm \
- rnrs/6/syntax-case.scm \
- rnrs/6/unicode.scm \
- rnrs/arithmetic/6/bitwise.scm \
- rnrs/arithmetic/6/fixnums.scm \
- rnrs/arithmetic/6/flonums.scm \
+ rnrs.scm \
+ rnrs/base.scm \
+ rnrs/conditions.scm \
+ rnrs/control.scm \
+ rnrs/enums.scm \
+ rnrs/eval.scm \
+ rnrs/exceptions.scm \
+ rnrs/files.scm \
+ rnrs/hashtables.scm \
+ rnrs/lists.scm \
+ rnrs/mutable-pairs.scm \
+ rnrs/mutable-strings.scm \
+ rnrs/programs.scm \
+ rnrs/r5rs.scm \
+ rnrs/sorting.scm \
+ rnrs/syntax-case.scm \
+ rnrs/unicode.scm \
+ rnrs/arithmetic/bitwise.scm \
+ rnrs/arithmetic/fixnums.scm \
+ rnrs/arithmetic/flonums.scm \
rnrs/bytevectors.scm \
- rnrs/io/6/simple.scm \
+ rnrs/io/simple.scm \
rnrs/io/ports.scm \
- rnrs/records/6/inspection.scm \
- rnrs/records/6/procedural.scm \
- rnrs/records/6/syntactic.scm
+ rnrs/records/inspection.scm \
+ rnrs/records/procedural.scm \
+ rnrs/records/syntactic.scm
EXTRA_DIST += scripts/ChangeLog-2008
EXTRA_DIST += scripts/README
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index b17f747fa..3d09dfb68 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -2196,71 +2196,6 @@ If there is no handler at all, Guile prints an error and then exits."
((not) (not (matches? (cadr version-ref))))
(else (sub-versions-match? version-ref target))))))
-(define (find-versioned-module dir-hint name version-ref roots)
- (define (subdir-pair-less pair1 pair2)
- (define (numlist-less lst1 lst2)
- (or (null? lst2)
- (and (not (null? lst1))
- (cond ((> (car lst1) (car lst2)) #t)
- ((< (car lst1) (car lst2)) #f)
- (else (numlist-less (cdr lst1) (cdr lst2)))))))
- (not (numlist-less (car pair2) (car pair1))))
- (define (match-version-and-file pair)
- (and (version-matches? version-ref (car pair))
- (let ((filenames
- (filter (lambda (file)
- (let ((s (false-if-exception (stat file))))
- (and s (eq? (stat:type s) 'regular))))
- (map (lambda (ext)
- (string-append (cdr pair) name ext))
- %load-extensions))))
- (and (not (null? filenames))
- (cons (car pair) (car filenames))))))
-
- (define (match-version-recursive root-pairs leaf-pairs)
- (define (filter-subdirs root-pairs ret)
- (define (filter-subdir root-pair dstrm subdir-pairs)
- (let ((entry (readdir dstrm)))
- (if (eof-object? entry)
- subdir-pairs
- (let* ((subdir (string-append (cdr root-pair) entry))
- (num (string->number entry))
- (num (and num (exact? num) (append (car root-pair)
- (list num)))))
- (if (and num (eq? (stat:type (stat subdir)) 'directory))
- (filter-subdir
- root-pair dstrm (cons (cons num (string-append subdir "/"))
- subdir-pairs))
- (filter-subdir root-pair dstrm subdir-pairs))))))
-
- (or (and (null? root-pairs) ret)
- (let* ((rp (car root-pairs))
- (dstrm (false-if-exception (opendir (cdr rp)))))
- (if dstrm
- (let ((subdir-pairs (filter-subdir rp dstrm '())))
- (closedir dstrm)
- (filter-subdirs (cdr root-pairs)
- (or (and (null? subdir-pairs) ret)
- (append ret subdir-pairs))))
- (filter-subdirs (cdr root-pairs) ret)))))
-
- (or (and (null? root-pairs) leaf-pairs)
- (let ((matching-subdir-pairs (filter-subdirs root-pairs '())))
- (match-version-recursive
- matching-subdir-pairs
- (append leaf-pairs (filter pair? (map match-version-and-file
- matching-subdir-pairs)))))))
- (define (make-root-pair root)
- (cons '() (string-append root "/" dir-hint)))
-
- (let* ((root-pairs (map make-root-pair roots))
- (matches (if (null? version-ref)
- (filter pair? (map match-version-and-file root-pairs))
- '()))
- (matches (append matches (match-version-recursive root-pairs '()))))
- (and (null? matches) (error "No matching modules found."))
- (cdar (sort matches subdir-pair-less))))
-
(define (make-fresh-user-module)
(let ((m (make-module)))
(beautify-user-module! m)
@@ -2280,7 +2215,7 @@ If there is no handler at all, Guile prints an error and then exits."
((and already
(or (not autoload) (module-public-interface already)))
;; A hit, a palpable hit.
- (if (and version
+ (if (and version
(not (version-matches? version (module-version already))))
(error "incompatible module version already loaded" name))
already)
@@ -2601,10 +2536,13 @@ module '(ice-9 q) '(make-q q-length))}."
;; The initial environment when loading a module is a fresh
;; user module.
(set-current-module (make-fresh-user-module))
- (if version
- (load (find-versioned-module
- dir-hint name version %load-path))
- (primitive-load-path (in-vicinity dir-hint name) #f))
+ ;; Here we could allow some other search strategy (other than
+ ;; primitive-load-path), for example using versions encoded
+ ;; into the file system -- but then we would have to figure
+ ;; out how to locate the compiled file, do autocompilation,
+ ;; etc. Punt for now, and don't use versions when locating
+ ;; the file.
+ (primitive-load-path (in-vicinity dir-hint name) #f)
(set! didit #t)))))
(lambda () (set-autoloaded! dir-hint name didit)))
didit))))
diff --git a/module/6/rnrs.scm b/module/rnrs.scm
index 83fad9866..83fad9866 100644
--- a/module/6/rnrs.scm
+++ b/module/rnrs.scm
diff --git a/module/rnrs/arithmetic/6/bitwise.scm b/module/rnrs/arithmetic/bitwise.scm
index bb3a20797..bb3a20797 100644
--- a/module/rnrs/arithmetic/6/bitwise.scm
+++ b/module/rnrs/arithmetic/bitwise.scm
diff --git a/module/rnrs/arithmetic/6/fixnums.scm b/module/rnrs/arithmetic/fixnums.scm
index cda19331d..cda19331d 100644
--- a/module/rnrs/arithmetic/6/fixnums.scm
+++ b/module/rnrs/arithmetic/fixnums.scm
diff --git a/module/rnrs/arithmetic/6/flonums.scm b/module/rnrs/arithmetic/flonums.scm
index 4fadbd00a..4fadbd00a 100644
--- a/module/rnrs/arithmetic/6/flonums.scm
+++ b/module/rnrs/arithmetic/flonums.scm
diff --git a/module/rnrs/6/base.scm b/module/rnrs/base.scm
index 4358aa4f7..4358aa4f7 100644
--- a/module/rnrs/6/base.scm
+++ b/module/rnrs/base.scm
diff --git a/module/rnrs/6/conditions.scm b/module/rnrs/conditions.scm
index 9c6539fef..9c6539fef 100644
--- a/module/rnrs/6/conditions.scm
+++ b/module/rnrs/conditions.scm
diff --git a/module/rnrs/6/control.scm b/module/rnrs/control.scm
index 69351c6c7..69351c6c7 100644
--- a/module/rnrs/6/control.scm
+++ b/module/rnrs/control.scm
diff --git a/module/rnrs/6/enums.scm b/module/rnrs/enums.scm
index cd7e346ba..cd7e346ba 100644
--- a/module/rnrs/6/enums.scm
+++ b/module/rnrs/enums.scm
diff --git a/module/rnrs/6/eval.scm b/module/rnrs/eval.scm
index d58f87768..d58f87768 100644
--- a/module/rnrs/6/eval.scm
+++ b/module/rnrs/eval.scm
diff --git a/module/rnrs/6/exceptions.scm b/module/rnrs/exceptions.scm
index d810f2b26..d810f2b26 100644
--- a/module/rnrs/6/exceptions.scm
+++ b/module/rnrs/exceptions.scm
diff --git a/module/rnrs/6/files.scm b/module/rnrs/files.scm
index e6851d0ec..e6851d0ec 100644
--- a/module/rnrs/6/files.scm
+++ b/module/rnrs/files.scm
diff --git a/module/rnrs/6/hashtables.scm b/module/rnrs/hashtables.scm
index 48ca5f32d..48ca5f32d 100644
--- a/module/rnrs/6/hashtables.scm
+++ b/module/rnrs/hashtables.scm
diff --git a/module/rnrs/io/6/simple.scm b/module/rnrs/io/simple.scm
index 6afae140e..6afae140e 100644
--- a/module/rnrs/io/6/simple.scm
+++ b/module/rnrs/io/simple.scm
diff --git a/module/rnrs/6/lists.scm b/module/rnrs/lists.scm
index c9d913b29..c9d913b29 100644
--- a/module/rnrs/6/lists.scm
+++ b/module/rnrs/lists.scm
diff --git a/module/rnrs/6/mutable-pairs.scm b/module/rnrs/mutable-pairs.scm
index 3e5da142f..3e5da142f 100644
--- a/module/rnrs/6/mutable-pairs.scm
+++ b/module/rnrs/mutable-pairs.scm
diff --git a/module/rnrs/6/mutable-strings.scm b/module/rnrs/mutable-strings.scm
index 1eeb8f35c..1eeb8f35c 100644
--- a/module/rnrs/6/mutable-strings.scm
+++ b/module/rnrs/mutable-strings.scm
diff --git a/module/rnrs/6/programs.scm b/module/rnrs/programs.scm
index 4daa781ab..4daa781ab 100644
--- a/module/rnrs/6/programs.scm
+++ b/module/rnrs/programs.scm
diff --git a/module/rnrs/6/r5rs.scm b/module/rnrs/r5rs.scm
index ab7485407..ab7485407 100644
--- a/module/rnrs/6/r5rs.scm
+++ b/module/rnrs/r5rs.scm
diff --git a/module/rnrs/records/6/inspection.scm b/module/rnrs/records/inspection.scm
index a142d7cdd..a142d7cdd 100644
--- a/module/rnrs/records/6/inspection.scm
+++ b/module/rnrs/records/inspection.scm
diff --git a/module/rnrs/records/6/procedural.scm b/module/rnrs/records/procedural.scm
index bd1d0d151..bd1d0d151 100644
--- a/module/rnrs/records/6/procedural.scm
+++ b/module/rnrs/records/procedural.scm
diff --git a/module/rnrs/records/6/syntactic.scm b/module/rnrs/records/syntactic.scm
index d46efbc29..d46efbc29 100644
--- a/module/rnrs/records/6/syntactic.scm
+++ b/module/rnrs/records/syntactic.scm
diff --git a/module/rnrs/6/sorting.scm b/module/rnrs/sorting.scm
index 08f44b85b..08f44b85b 100644
--- a/module/rnrs/6/sorting.scm
+++ b/module/rnrs/sorting.scm
diff --git a/module/rnrs/6/syntax-case.scm b/module/rnrs/syntax-case.scm
index 6aa1cef3c..6aa1cef3c 100644
--- a/module/rnrs/6/syntax-case.scm
+++ b/module/rnrs/syntax-case.scm
diff --git a/module/rnrs/6/unicode.scm b/module/rnrs/unicode.scm
index 09140b6bf..09140b6bf 100644
--- a/module/rnrs/6/unicode.scm
+++ b/module/rnrs/unicode.scm