~ 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