~ 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