~ chicken-core (chicken-5) 06d7571f83412c80bca73fef6defd4013a81cd87
commit 06d7571f83412c80bca73fef6defd4013a81cd87
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Mar 3 17:29:35 2017 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Fri Mar 3 17:29:35 2017 +0100
##sys#split-path must handle an #f path (reported by Kooda)
diff --git a/eval.scm b/eval.scm
index 2998393e..f813bd0d 100644
--- a/eval.scm
+++ b/eval.scm
@@ -1213,23 +1213,25 @@
(define ##sys#split-path
(let ((cache '(#f)))
(lambda (path)
- (if (equal? path (car cache))
- (cdr cache)
- (let* ((len (string-length path))
- (lst (let loop ((start 0) (pos 0))
- (cond ((fx>= pos len)
- (if (fx= pos start)
- '()
- (list (substring path start pos))))
- ((char=? (string-ref path pos)
- path-list-separator)
- (cons (substring path start pos)
- (loop (fx+ pos 1)
- (fx+ pos 1))))
- (else
- (loop start (fx+ pos 1)))))))
- (set! cache (cons path lst))
- lst)))))
+ (cond ((not path) '())
+ ((equal? path (car cache))
+ (cdr cache))
+ (else
+ (let* ((len (string-length path))
+ (lst (let loop ((start 0) (pos 0))
+ (cond ((fx>= pos len)
+ (if (fx= pos start)
+ '()
+ (list (substring path start pos))))
+ ((char=? (string-ref path pos)
+ path-list-separator)
+ (cons (substring path start pos)
+ (loop (fx+ pos 1)
+ (fx+ pos 1))))
+ (else
+ (loop start (fx+ pos 1)))))))
+ (set! cache (cons path lst))
+ lst))))))
(define ##sys#find-extension
(let ((file-exists? file-exists?)
diff --git a/setup.defaults b/setup.defaults
index e80322ff..5f176bc0 100644
--- a/setup.defaults
+++ b/setup.defaults
@@ -7,11 +7,20 @@
(version 2)
+;; list of locations (eggs stored in the local fileystem)
+;
+; (location DIRECTORY ...)
+;
+; Note that these override eggs from servers.
+
+(location "/home/felix/chicken/c5-eggs"); XXX
+
+
;; list of servers in the order in which they will be processed
;
-; (server URL)
+; (server URL ...)
;
-; URL may be an alias (see below) or a real URL
+; URL may be an alias (see below) or a real URL.
(server "kitten-technologies")
(server "call-cc")
@@ -28,7 +37,7 @@
->) )
-;; aliases for locations
+;; aliases for servers
;
; (alias (NAME REALNAME) ...)
Trap