~ chicken-core (chicken-5) f53a6342800eb225b16e0783e49c7f5f3b4db929


commit f53a6342800eb225b16e0783e49c7f5f3b4db929
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Mar 1 21:09:30 2017 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Mar 1 21:09:30 2017 +0100

    split paths consistently; added -no-install-deps

diff --git a/batch-driver.scm b/batch-driver.scm
index 8f6000e2..f6eb5b9c 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -195,9 +195,9 @@
 		       ((memq 'to-stdout options) #f)
 		       (else (make-pathname #f (if filename (pathname-file filename) "out") "c")) ) )
 	(ipath (map chop-separator
-		    (string-split 
-		     (or (get-environment-variable "CHICKEN_INCLUDE_PATH") "") 
-		     ";")))
+		    (##sys#split-path
+		     (or (get-environment-variable "CHICKEN_INCLUDE_PATH") "")))) 
+
 	(opasses (default-optimization-passes))
 	(time0 #f)
 	(time-breakdown #f)
diff --git a/chicken-install.mdoc b/chicken-install.mdoc
index d83f5dbb..1366a941 100644
--- a/chicken-install.mdoc
+++ b/chicken-install.mdoc
@@ -74,6 +74,8 @@ when cross-compiling, compile extension only for host
 when cross-compiling, compile extension only for target
 .It Fl test
 run included test-cases, if available
+.It Fl no-install-deps
+Do not retrieve or install dependencies.
 .It Fl u Ns , Fl update-db
 update export database
 .It Fl repository
diff --git a/chicken-install.scm b/chicken-install.scm
index d21478c0..38b533ee 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -1,6 +1,6 @@
 ;;;; chicken-install.scm
 ;
-; Copyright (c) 2008-2016, The CHICKEN Team
+; Copyright (c) 2008-2017, The CHICKEN Team
 ; All rights reserved.
 ;
 ; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
@@ -89,6 +89,7 @@
 (define purge-mode #f)
 (define keepfiles #f)
 (define print-repository #f)
+(define no-deps #f)
   
 (define platform
   (if (eq? 'mingw (build-platform))
@@ -610,19 +611,21 @@
       canonical-eggs)))
 
 (define (outdated-dependencies egg info)
-  (let ((ds (get-egg-dependencies info)))
-    (for-each
-      (lambda (h) (set! ds (h egg ds)))
-      hacks)
-    (let loop ((deps ds) (missing '()) (upgrade '()))
-      (if (null? deps)
-          (values (reverse missing) (reverse upgrade))
-          (let ((dep (car deps))
-                (rest (cdr deps)))
-            (let-values (((m u) (check-dependency dep)))
-              (loop rest
-                    (if m (cons m missing) missing)
-                    (if u (cons u upgrade) upgrade))))))))
+  (if no-deps
+      (values '() '())
+      (let ((ds (get-egg-dependencies info)))
+        (for-each
+          (lambda (h) (set! ds (h egg ds)))
+          hacks)
+        (let loop ((deps ds) (missing '()) (upgrade '()))
+          (if (null? deps)
+              (values (reverse missing) (reverse upgrade))
+              (let ((dep (car deps))
+                    (rest (cdr deps)))
+                (let-values (((m u) (check-dependency dep)))
+                  (loop rest
+                        (if m (cons m missing) missing)
+                        (if u (cons u upgrade) upgrade)))))))))
 
 (define (get-egg-dependencies info)
   (append (get-egg-property* info 'dependencies '())
@@ -986,6 +989,7 @@ usage: chicken-install [OPTION | EXTENSION[:VERSION]] ...
        -force                   don't ask, install even if versions don't match
   -k   -keep                    keep temporary files
   -s   -sudo                    use external command to elevate privileges for filesystem operations
+       -no-install-deps         do not install dependencies
   -r   -retrieve                only retrieve egg into current directory, don't install (giving -r
                                                                                                           more than once implies `-recursive')
        -recursive               if `-retrieve' is given, retrieve also dependencies
@@ -1055,6 +1059,9 @@ EOF
                   ((equal? arg "-update-db")
                    (set! update-module-db #t)
                    (loop (cdr args)))
+                  ((equal? arg "-no-install-deps")
+                   (set! no-deps #t)
+                   (loop (cdr args)))
                   ((equal? arg "-dry-run")
                    (set! do-not-build #t)
                    (loop (cdr args)))
diff --git a/csi.scm b/csi.scm
index 3b0cf813..20f81917 100644
--- a/csi.scm
+++ b/csi.scm
@@ -189,7 +189,7 @@ EOF
 		   [(addext name)]
 		   [else
 		    (let ([name2 (string-append "/" name)])
-		      (let loop ([ps (string-split path ";")])
+		      (let loop ((ps (##sys#split-path path)))
 			(and (pair? ps)
 			     (let ([name2 (string-append (chop-separator (##sys#slot ps 0)) name2)])
 			       (or (addext name2)
@@ -990,9 +990,8 @@ EOF
 	   [quietflag (member* '("-q" "-quiet") args)]
 	   [quiet (or script quietflag eval?)]
 	   [ipath (map chop-separator 
-		       (string-split 
-			(or (get-environment-variable "CHICKEN_INCLUDE_PATH") "") 
-			";"))] )      
+		       (##sys#split-path
+			(or (get-environment-variable "CHICKEN_INCLUDE_PATH") "")))])
       (define (collect-options opt)
 	(let loop ([opts args])
 	  (cond [(member opt opts) 
diff --git a/manual/Using the compiler b/manual/Using the compiler
index bed6f13f..6f952f5e 100644
--- a/manual/Using the compiler	
+++ b/manual/Using the compiler	
@@ -77,7 +77,7 @@ the source text should be read from standard input.
 
 ; -ignore-repository : Do not load any extensions from the repository (treat repository as empty). Also do not consult compiled (only interpreted) import libraries in {{import}} forms.
 
-; -include-path PATHNAME : Specifies an additional search path for files included via the {{include}} special form. This option may be given multiple times. If the environment variable {{CHICKEN_INCLUDE_PATH}} is set, it should contain a list of alternative include pathnames separated by {{;}}.
+; -include-path PATHNAME : Specifies an additional search path for files included via the {{include}} special form. This option may be given multiple times. If the environment variable {{CHICKEN_INCLUDE_PATH}} is set, it should contain a list of alternative include pathnames separated by {{:}} (unix) or {{;}} (windows).
 
 ; -inline : Enable procedure inlining for known procedures of a size below the threshold (which can be set through the {{-inline-limit}} option).
 
Trap