~ chicken-core (chicken-5) ad725d1298648cc89b0f034e43916098fa4ae891


commit ad725d1298648cc89b0f034e43916098fa4ae891
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Sat Feb 7 23:41:02 2015 +1300
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sun Jul 19 21:12:54 2015 +1200

    Convert the utils unit into a module

diff --git a/README b/README
index 2d7f1cf8..b79457c4 100644
--- a/README
+++ b/README
@@ -285,6 +285,7 @@
 	|   |   `-- 7
 	|   |       |-- chicken.import.so
 	|   |       |-- chicken.ports.import.so
+	|   |       |-- chicken.utils.import.so
 	|   |       |-- csi.import.so
 	|   |       |-- data-structures.import.so
 	|   |       |-- extras.import.so
@@ -300,8 +301,7 @@
 	|   |       |-- setup-download.so
 	|   |       |-- srfi-4.import.so
 	|   |       |-- tcp.import.so
-	|   |       |-- types.db
-	|   |       `-- utils.import.so
+	|   |       `-- types.db
 	|   |-- libchicken.a
 	|   |-- libchicken.dll.a                      (Windows)
 	|   |-- libchicken.dylib                      (Macintosh)
diff --git a/chicken-bug.scm b/chicken-bug.scm
index 42ad182b..e2cd4f05 100644
--- a/chicken-bug.scm
+++ b/chicken-bug.scm
@@ -26,6 +26,7 @@
 
 (require-extension posix tcp data-structures utils extras)
 
+(import chicken.utils)
 
 (define-constant +bug-report-file+ "chicken-bug-report.~a-~a-~a")
 
diff --git a/chicken-install.scm b/chicken-install.scm
index 6d5d266b..1d5a85b0 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -29,11 +29,12 @@
 
 (module main ()
 
-  (import scheme chicken posix data-structures utils irregex extras files)
+  (import scheme chicken posix data-structures irregex extras files)
   (import setup-download setup-api)
 
   (import foreign)
-  (import chicken.ports)
+  (import chicken.ports
+	  chicken.utils)
 
   (include "mini-srfi-1.scm")
 
@@ -43,6 +44,7 @@
       "setup-download.so" "setup-download.import.so"
       "chicken.import.so"
       "chicken.ports.import.so"
+      "chicken.utils.import.so"
       "lolevel.import.so"
       "srfi-1.import.so"
       "srfi-4.import.so"
@@ -52,7 +54,6 @@
       "extras.import.so"
       "tcp.import.so"
       "foreign.import.so"
-      "utils.import.so"
       "csi.import.so"
       "irregex.import.so"
       "types.db"))
diff --git a/chicken-profile.scm b/chicken-profile.scm
index 0a375bbd..688c5361 100644
--- a/chicken-profile.scm
+++ b/chicken-profile.scm
@@ -28,8 +28,7 @@
 (declare
   (block)
   (uses data-structures
-	posix
-	utils))
+	posix))
 
 (include "mini-srfi-1.scm")
 
diff --git a/chicken-status.scm b/chicken-status.scm
index 85eb1a11..02ae33a8 100644
--- a/chicken-status.scm
+++ b/chicken-status.scm
@@ -24,13 +24,13 @@
 ; POSSIBILITY OF SUCH DAMAGE.
 
 
-(require-library setup-api posix data-structures utils ports irregex files)
+(require-library setup-api posix data-structures ports irregex files)
 
 
 (module main ()
   
   (import scheme chicken foreign)
-  (import posix data-structures utils irregex files setup-api extras)
+  (import posix data-structures irregex files setup-api extras)
   (import chicken.ports)
 
   (include "mini-srfi-1.scm")
diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm
index 989b9054..5a259e1f 100644
--- a/chicken-uninstall.scm
+++ b/chicken-uninstall.scm
@@ -33,8 +33,9 @@
   
   (import scheme chicken foreign)
   (import setup-api)
-  (import posix data-structures utils irregex files)
-  (import chicken.ports)
+  (import posix data-structures irregex files)
+  (import chicken.ports
+	  chicken.utils)
 
   (include "mini-srfi-1.scm")
 
diff --git a/chicken.scm b/chicken.scm
index 1ab67fe4..6f13de85 100644
--- a/chicken.scm
+++ b/chicken.scm
@@ -36,7 +36,8 @@
 (include "tweaks")
 
 (import chicken.compiler.batch-driver 
-	chicken.compiler.c-platform)
+	chicken.compiler.c-platform
+        chicken.utils)
 
 (include "mini-srfi-1.scm")
 
diff --git a/csc.scm b/csc.scm
index 9524aa52..ed0a5b23 100644
--- a/csc.scm
+++ b/csc.scm
@@ -27,7 +27,9 @@
 
 (declare
   (block)
-  (uses data-structures ports utils files extras))
+  (uses data-structures utils files extras))
+
+(import chicken.utils)
 
 (include "mini-srfi-1.scm")
 
diff --git a/defaults.make b/defaults.make
index 670b3bce..30e08e72 100644
--- a/defaults.make
+++ b/defaults.make
@@ -268,9 +268,9 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
 # import libraries
 
 PRIMITIVE_IMPORT_LIBRARIES = chicken lolevel srfi-4 data-structures files
-PRIMITIVE_IMPORT_LIBRARIES += posix extras tcp foreign utils csi irregex
+PRIMITIVE_IMPORT_LIBRARIES += posix extras tcp foreign csi irregex
 PRIMITIVE_IMPORT_LIBRARIES += setup-api setup-download
-DYNAMIC_IMPORT_LIBRARIES = ports
+DYNAMIC_IMPORT_LIBRARIES = ports utils
 
 # targets
 
diff --git a/distribution/manifest b/distribution/manifest
index 2b172543..9816c967 100644
--- a/distribution/manifest
+++ b/distribution/manifest
@@ -242,6 +242,8 @@ chicken.import.scm
 chicken.import.c
 chicken.ports.import.scm
 chicken.ports.import.c
+chicken.utils.import.scm
+chicken.utils.import.c
 foreign.import.scm
 foreign.import.c
 lolevel.import.scm
@@ -251,7 +253,6 @@ posix.import.scm
 extras.import.scm
 irregex.import.scm
 tcp.import.scm
-utils.import.scm
 lolevel.import.c
 srfi-4.import.c
 data-structures.import.c
@@ -259,7 +260,6 @@ posix.import.c
 extras.import.c
 irregex.import.c
 tcp.import.c
-utils.import.c
 csi.import.scm
 csi.import.c
 setup-download.scm
diff --git a/modules.scm b/modules.scm
index d012a041..4b91c8e8 100644
--- a/modules.scm
+++ b/modules.scm
@@ -914,6 +914,7 @@
 
 (##sys#register-module-alias 'r5rs 'scheme)
 (##sys#register-module-alias 'ports 'chicken.ports)
+(##sys#register-module-alias 'utils 'chicken.utils)
 
 (register-feature! 'module-environments)
 
diff --git a/rules.make b/rules.make
index 31240b9d..d6ac0efb 100644
--- a/rules.make
+++ b/rules.make
@@ -510,7 +510,8 @@ $(foreach lib, $(filter-out chicken,$(COMPILER_OBJECTS_1)),\
 
 chicken.c: chicken.scm mini-srfi-1.scm \
 		chicken.compiler.batch-driver.import.scm \
-		chicken.compiler.c-platform.import.scm
+		chicken.compiler.c-platform.import.scm \
+		chicken.utils.import.scm
 batch-driver.c: batch-driver.scm mini-srfi-1.scm \
 		chicken.compiler.core.import.scm \
 		chicken.compiler.compiler-syntax.import.scm \
@@ -543,22 +544,30 @@ compiler-syntax.c: compiler-syntax.scm mini-srfi-1.scm \
 		chicken.compiler.core.import.scm
 support.c: support.scm mini-srfi-1.scm \
 		chicken.ports.import.scm
+csc.c: csc.scm \
+		chicken.utils.import.scm
 csi.c: csi.scm \
 		chicken.ports.import.scm
+chicken-bug.c: chicken-bug.scm \
+		chicken.utils.import.scm
 chicken-status.c: chicken-status.scm \
 		chicken.ports.import.scm \
 		setup-api.import.scm
 chicken-install.c: chicken-install.scm \
 		chicken.ports.import.scm \
+		chicken.utils.import.scm \
 		setup-api.import.scm \
 		setup-download.import.scm
 chicken-uninstall.c: chicken-uninstall.scm \
 		chicken.ports.import.scm \
+		chicken.utils.import.scm \
 		setup-api.import.scm
 setup-api.c: setup-api.scm \
-		chicken.ports.import.scm
+		chicken.ports.import.scm \
+		chicken.utils.import.scm
 setup-download.c: setup-download.scm \
 		chicken.ports.import.scm \
+		chicken.utils.import.scm \
 		setup-api.import.scm
 posixunix.c: posixunix.scm \
 		chicken.ports.import.scm
@@ -606,7 +615,7 @@ tcp.c: $(SRCDIR)tcp.scm $(SRCDIR)common-declarations.scm
 srfi-4.c: $(SRCDIR)srfi-4.scm $(SRCDIR)common-declarations.scm
 	$(bootstrap-lib) 
 utils.c: $(SRCDIR)utils.scm $(SRCDIR)common-declarations.scm
-	$(bootstrap-lib) 
+	$(bootstrap-lib) -emit-import-library chicken.utils
 scheduler.c: $(SRCDIR)scheduler.scm $(SRCDIR)common-declarations.scm
 	$(bootstrap-lib) 
 profiler.c: $(SRCDIR)profiler.scm $(SRCDIR)common-declarations.scm
diff --git a/setup-api.scm b/setup-api.scm
index 5823f4c6..2e74bef6 100644
--- a/setup-api.scm
+++ b/setup-api.scm
@@ -66,8 +66,9 @@
      setup-error-handling)
   
   (import scheme chicken foreign
-	  irregex utils posix extras data-structures files
-	  chicken.ports)
+	  irregex posix extras data-structures files
+	  chicken.ports
+	  chicken.utils)
 
 (include "mini-srfi-1.scm")
 
diff --git a/setup-download.scm b/setup-download.scm
index 37eccd8e..8c6e8eb2 100644
--- a/setup-download.scm
+++ b/setup-download.scm
@@ -37,8 +37,9 @@
 			temporary-directory)
 
   (import scheme chicken foreign)
-  (import extras irregex posix utils data-structures tcp files
-	  setup-api)
+  (import extras irregex posix data-structures tcp files
+	  setup-api
+	  chicken.utils)
 
   (include "mini-srfi-1.scm")
 
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 63301f90..cd965f65 100755
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -38,11 +38,12 @@ mkdir -p test-repository
 for x in setup-api.so setup-api.import.so setup-download.so \
       setup-download.import.so chicken.import.so lolevel.import.so \
       srfi-4.import.so data-structures.import.so \
-      chicken.ports.import.so files.import.so posix.import.so \
+      chicken.ports.import.so chicken.utils.import.so files.import.so \
+      posix.import.so \
       extras.import.so \
       irregex.import.so tcp.import.so \
       foreign.import.so \
-      utils.import.so csi.import.so irregex.import.so types.db; do
+      csi.import.so irregex.import.so types.db; do
   cp ../$x test-repository
 done
 
diff --git a/types.db b/types.db
index 201fda0d..4b1945ec 100644
--- a/types.db
+++ b/types.db
@@ -2240,10 +2240,10 @@
 
 ;; utils
 
-(read-all (#(procedure #:enforce) read-all (#!optional (or input-port string)) string))
-(system* (#(procedure #:clean #:enforce) system* (string #!rest) undefined))
-(qs (#(procedure #:clean #:enforce) qs (string) string))
-(compile-file (#(procedure #:clean #:enforce) compile-file (string #!rest) (or false string)))
-(compile-file-options (#(procedure #:clean #:enforce) compile-file-options (#!optional (list-of string)) (list-of string)))
-(scan-input-lines (#(procedure #:enforce) scan-input-lines (* #!optional input-port) *))
-(yes-or-no? (#(procedure #:enforce) yes-or-no? (string #!rest) *))
+(chicken.utils#read-all (#(procedure #:enforce) chicken.utils#read-all (#!optional (or input-port string)) string))
+(chicken.utils#system* (#(procedure #:clean #:enforce) chicken.utils#system* (string #!rest) undefined))
+(chicken.utils#qs (#(procedure #:clean #:enforce) chicken.utils#qs (string) string))
+(chicken.utils#compile-file (#(procedure #:clean #:enforce) chicken.utils#compile-file (string #!rest) (or false string)))
+(chicken.utils#compile-file-options (#(procedure #:clean #:enforce) chicken.utils#compile-file-options (#!optional (list-of string)) (list-of string)))
+(chicken.utils#scan-input-lines (#(procedure #:enforce) chicken.utils#scan-input-lines (* #!optional input-port) *))
+(chicken.utils#yes-or-no? (#(procedure #:enforce) chicken.utils#yes-or-no? (string #!rest) *))
diff --git a/utils.import.scm b/utils.import.scm
deleted file mode 100644
index 6e2c1ece..00000000
--- a/utils.import.scm
+++ /dev/null
@@ -1,35 +0,0 @@
-;;;; utils.import.scm - import library for "utils" module
-;
-; Copyright (c) 2008-2015, The CHICKEN Team
-; All rights reserved.
-;
-; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
-; conditions are met:
-;
-;   Redistributions of source code must retain the above copyright notice, this list of conditions and the following
-;     disclaimer. 
-;   Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
-;     disclaimer in the documentation and/or other materials provided with the distribution. 
-;   Neither the name of the author nor the names of its contributors may be used to endorse or promote
-;     products derived from this software without specific prior written permission. 
-;
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
-; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-; POSSIBILITY OF SUCH DAMAGE.
-
-
-(##sys#register-primitive-module
- 'utils
- '(read-all
-   system*
-   qs
-   compile-file
-   compile-file-options
-   scan-input-lines
-   yes-or-no?))
diff --git a/utils.scm b/utils.scm
index 263b44a8..f3c1e9c2 100644
--- a/utils.scm
+++ b/utils.scm
@@ -31,6 +31,18 @@
   (fixnum)
   (disable-interrupts) )
 
+(module chicken.utils
+  (compile-file
+   compile-file-options
+   read-all
+   scan-input-lines
+   system*
+   yes-or-no?
+   qs)
+
+(import scheme chicken)
+(import data-structures extras files foreign irregex posix)
+
 (include "common-declarations.scm")
 
 (register-feature! 'utils)
@@ -200,4 +212,5 @@ C_confirmation_dialog(char *msg, char *caption, int def, int abort) { return -1;
 		       (printf "~%Please enter \"yes\", \"no\" or \"abort\".~%")
 		       (printf "~%Please enter \"yes\" or \"no\".~%"))
 		   (loop) ) ) ) ) ) ) ) )
-  
+
+)
Trap