~ chicken-core (chicken-5) d4b6dab350b7db7efe0911d3599be277483d3175
commit d4b6dab350b7db7efe0911d3599be277483d3175 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Wed Jan 28 19:35:20 2015 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Sun Jul 19 21:12:54 2015 +1200 Convert the ports unit into a module Makes ports.scm into a proper module (named "chicken.ports") and removes its static, "primitive" import library in favor of one that is dynamically generated during the build. Also removes a now-unnecessary compatibility hack during bootstrapping in irregex-core.scm. diff --git a/README b/README index ac865653..2d7f1cf8 100644 --- a/README +++ b/README @@ -284,6 +284,7 @@ | |-- chicken | | `-- 7 | | |-- chicken.import.so + | | |-- chicken.ports.import.so | | |-- csi.import.so | | |-- data-structures.import.so | | |-- extras.import.so @@ -292,7 +293,6 @@ | | |-- irregex.import.so | | |-- lolevel.import.so | | |-- modules.db - | | |-- ports.import.so | | |-- posix.import.so | | |-- setup-api.import.so | | |-- setup-api.so @@ -305,8 +305,8 @@ | |-- libchicken.a | |-- libchicken.dll.a (Windows) | |-- libchicken.dylib (Macintosh) - | |-- libchicken.so -> libchicken.so.6 (Unix) - | `-- libchicken.so.6 (Unix) + | |-- libchicken.so -> libchicken.so.7 (Unix) + | `-- libchicken.so.7 (Unix) `-- share |-- chicken | |-- doc diff --git a/chicken-install.scm b/chicken-install.scm index eb9e005a..6d5d266b 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -29,11 +29,11 @@ (module main () - (import scheme chicken posix data-structures utils irregex ports extras - files) + (import scheme chicken posix data-structures utils irregex extras files) (import setup-download setup-api) (import foreign) + (import chicken.ports) (include "mini-srfi-1.scm") @@ -42,11 +42,11 @@ '("setup-api.so" "setup-api.import.so" "setup-download.so" "setup-download.import.so" "chicken.import.so" + "chicken.ports.import.so" "lolevel.import.so" "srfi-1.import.so" "srfi-4.import.so" "data-structures.import.so" - "ports.import.so" "files.import.so" "posix.import.so" "extras.import.so" diff --git a/chicken-status.scm b/chicken-status.scm index 3c714272..85eb1a11 100644 --- a/chicken-status.scm +++ b/chicken-status.scm @@ -30,8 +30,8 @@ (module main () (import scheme chicken foreign) - (import posix data-structures utils ports irregex - files setup-api extras) + (import posix data-structures utils irregex files setup-api extras) + (import chicken.ports) (include "mini-srfi-1.scm") diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm index 2bc26166..989b9054 100644 --- a/chicken-uninstall.scm +++ b/chicken-uninstall.scm @@ -33,7 +33,8 @@ (import scheme chicken foreign) (import setup-api) - (import posix data-structures utils ports irregex files) + (import posix data-structures utils irregex files) + (import chicken.ports) (include "mini-srfi-1.scm") diff --git a/csi.scm b/csi.scm index b5231b11..a3bd2903 100644 --- a/csi.scm +++ b/csi.scm @@ -54,6 +54,8 @@ EOF describe dump tty-input? history-list history-count history-add history-ref history-clear history-show) ) +(import chicken.ports) + ;;; Parameters: diff --git a/defaults.make b/defaults.make index 46c07051..670b3bce 100644 --- a/defaults.make +++ b/defaults.make @@ -265,6 +265,13 @@ endif 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 += setup-api setup-download +DYNAMIC_IMPORT_LIBRARIES = ports + # targets CHICKEN_PROGRAM = $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX) @@ -275,8 +282,8 @@ CHICKEN_INSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX) CHICKEN_UNINSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX) CHICKEN_STATUS_PROGRAM = $(PROGRAM_PREFIX)chicken-status$(PROGRAM_SUFFIX) CHICKEN_BUG_PROGRAM = $(PROGRAM_PREFIX)chicken-bug$(PROGRAM_SUFFIX) -IMPORT_LIBRARIES = chicken lolevel srfi-4 data-structures ports files posix extras tcp foreign utils csi irregex -IMPORT_LIBRARIES += setup-api setup-download +IMPORT_LIBRARIES = $(PRIMITIVE_IMPORT_LIBRARIES) \ + $(foreach lib,$(DYNAMIC_IMPORT_LIBRARIES),chicken.$(lib)) ifdef STATICBUILD CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE) diff --git a/distribution/manifest b/distribution/manifest index 25c3a8b4..2b172543 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -236,12 +236,12 @@ modules.c chicken-syntax.scm chicken-syntax.c common-declarations.scm -ports.import.scm -ports.import.c files.import.scm files.import.c chicken.import.scm chicken.import.c +chicken.ports.import.scm +chicken.ports.import.c foreign.import.scm foreign.import.c lolevel.import.scm diff --git a/irregex-core.scm b/irregex-core.scm index 9d09a486..c4dbea2e 100644 --- a/irregex-core.scm +++ b/irregex-core.scm @@ -93,72 +93,67 @@ (cond-expand (chicken-bootstrap (begin - (define-syntax internal - (er-macro-transformer - (lambda (x r c) - `(,(with-input-from-string (cadr x) read) ,@(cddr x))))) ;; make-irregex defined elsewhere (define (irregex? x) - (internal "##sys#structure?" x 'regexp)) + (##sys#structure? x 'regexp)) (define (irregex-dfa x) - (internal "##sys#check-structure" x 'regexp 'irregex-dfa) - (internal "##sys#slot" x 1)) + (##sys#check-structure x 'regexp 'irregex-dfa) + (##sys#slot x 1)) (define (irregex-dfa/search x) - (internal "##sys#check-structure" x 'regexp 'irregex-dfa/search) - (internal "##sys#slot" x 2)) + (##sys#check-structure x 'regexp 'irregex-dfa/search) + (##sys#slot x 2)) (define (irregex-nfa x) - (internal "##sys#check-structure" x 'regexp 'irregex-nfa) - (internal "##sys#slot" x 3)) + (##sys#check-structure x 'regexp 'irregex-nfa) + (##sys#slot x 3)) (define (irregex-flags x) - (internal "##sys#check-structure" x 'regexp 'irregex-flags) - (internal "##sys#slot" x 4)) + (##sys#check-structure x 'regexp 'irregex-flags) + (##sys#slot x 4)) (define (irregex-num-submatches x) - (internal "##sys#check-structure" x 'regexp 'irregex-num-submatches) - (internal "##sys#slot" x 5)) + (##sys#check-structure x 'regexp 'irregex-num-submatches) + (##sys#slot x 5)) (define (irregex-lengths x) - (internal "##sys#check-structure" x 'regexp 'irregex-lengths) - (internal "##sys#slot" x 6)) + (##sys#check-structure x 'regexp 'irregex-lengths) + (##sys#slot x 6)) (define (irregex-names x) - (internal "##sys#check-structure" x 'regexp 'irregex-names) - (internal "##sys#slot" x 7)) + (##sys#check-structure x 'regexp 'irregex-names) + (##sys#slot x 7)) ;; make-irregex-match defined elsewhere (define (irregex-new-matches irx) (make-irregex-match (irregex-num-submatches irx) (irregex-names irx))) (define (irregex-reset-matches! m) - (let ((v (internal "##sys#slot" m 1))) + (let ((v (##sys#slot m 1))) (vector-fill! v #f) m)) (define (irregex-copy-matches m) - (and (internal "##sys#structure?" m 'regexp-match) - (internal - "##sys#make-structure" + (and (##sys#structure? m 'regexp-match) + (##sys#make-structure 'regexp-match - (vector-copy (internal "##sys#slot" m 1)) - (internal "##sys#slot" m 2) - (internal "##sys#slot" m 3) - (internal "##sys#slot" m 4)))) + (vector-copy (##sys#slot m 1)) + (##sys#slot m 2) + (##sys#slot m 3) + (##sys#slot m 4)))) (define (irregex-match-data? obj) - (internal "##sys#structure?" obj 'regexp-match)) + (##sys#structure? obj 'regexp-match)) (define (irregex-match-num-submatches m) - (internal "##sys#check-structure" m 'regexp-match 'irregex-match-num-submatches) - (- (fx/ (internal "##sys#size" (internal "##sys#slot" m 1)) 4) 2)) + (##sys#check-structure m 'regexp-match 'irregex-match-num-submatches) + (- (fx/ (##sys#size (##sys#slot m 1)) 4) 2)) (define (irregex-match-chunker m) - (internal "##sys#slot" m 3)) + (##sys#slot m 3)) (define (irregex-match-names m) - (internal "##sys#check-structure" m 'regexp-match 'irregex-match-names) - (internal "##sys#slot" m 2)) + (##sys#check-structure m 'regexp-match 'irregex-match-names) + (##sys#slot m 2)) (define (irregex-match-chunker-set! m str) - (internal "##sys#setslot" m 3 str)) + (##sys#setslot m 3 str)) (define-inline (%irregex-match-start-chunk m n) - (internal "##sys#slot" (internal "##sys#slot" m 1) (* n 4))) + (##sys#slot (##sys#slot m 1) (* n 4))) (define-inline (%irregex-match-start-index m n) - (internal "##sys#slot" (internal "##sys#slot" m 1) (+ 1 (* n 4)))) + (##sys#slot (##sys#slot m 1) (+ 1 (* n 4)))) (define-inline (%irregex-match-end-chunk m n) - (internal "##sys#slot" (internal "##sys#slot" m 1) (+ 2 (* n 4)))) + (##sys#slot (##sys#slot m 1) (+ 2 (* n 4)))) (define (%irregex-match-end-index m n) - (internal "##sys#slot" (internal "##sys#slot" m 1) (+ 3 (* n 4)))) - (define (%irregex-match-fail m) (internal "##sys#slot" m 4)) - (define (%irregex-match-fail-set! m x) (internal "##sys#setslot" m 4 x)) + (##sys#slot (##sys#slot m 1) (+ 3 (* n 4)))) + (define (%irregex-match-fail m) (##sys#slot m 4)) + (define (%irregex-match-fail-set! m x) (##sys#setslot m 4 x)) (define-record-printer (regexp-match m out) (let ((n (irregex-match-num-submatches m))) (display "#<regexp-match (" out) @@ -167,11 +162,11 @@ (when (or (eq? n 0) (fx> n 1)) (display "es" out)) (display ")>" out))) (define-inline (irregex-match-valid-numeric-index? m n) - (let ((v (internal "##sys#slot" m 1))) - (and (>= n 0) (< (* n 4) (- (internal "##sys#size" v) 4))))) + (let ((v (##sys#slot m 1))) + (and (>= n 0) (< (* n 4) (- (##sys#size v) 4))))) (define-inline (irregex-match-matched-numeric-index? m n) - (let ((v (internal "##sys#slot" m 1))) - (and (internal "##sys#slot" v (+ 1 (* n 4))) + (let ((v (##sys#slot m 1))) + (and (##sys#slot v (+ 1 (* n 4))) #t))))) (else (begin diff --git a/modules.scm b/modules.scm index f3c449a1..d012a041 100644 --- a/modules.scm +++ b/modules.scm @@ -913,6 +913,7 @@ (##sys#register-primitive-module 'r5rs-null '() r4rs-syntax)) (##sys#register-module-alias 'r5rs 'scheme) +(##sys#register-module-alias 'ports 'chicken.ports) (register-feature! 'module-environments) diff --git a/ports.import.scm b/ports.import.scm deleted file mode 100644 index 1050de24..00000000 --- a/ports.import.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;;; ports.import.scm - import library for "ports" 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 - 'ports - '(call-with-input-string - call-with-output-string - copy-port - make-input-port - make-output-port - port-for-each - port-map - port-fold - make-broadcast-port - make-concatenated-port - with-error-output-to-port - with-input-from-port - with-input-from-string - with-output-to-port - with-output-to-string - with-error-output-to-port)) diff --git a/ports.scm b/ports.scm index eee171c3..8a5cfdcb 100644 --- a/ports.scm +++ b/ports.scm @@ -36,6 +36,26 @@ (unit ports) (uses extras)) +(module chicken.ports + (call-with-input-string + call-with-output-string + copy-port + make-input-port + make-output-port + port-for-each + port-map + port-fold + make-broadcast-port + make-concatenated-port + with-error-output-to-port + with-input-from-port + with-input-from-string + with-output-to-port + with-output-to-string) + +(import scheme chicken) +(import extras) + (include "common-declarations.scm") (register-feature! 'ports) @@ -266,3 +286,5 @@ (port (##sys#make-port #f class "(custom)" 'custom)) ) (##sys#set-port-data! port data) port) ) ) + +) diff --git a/posixunix.scm b/posixunix.scm index 6f7ec5b4..86e6bcda 100644 --- a/posixunix.scm +++ b/posixunix.scm @@ -43,6 +43,8 @@ (include "posix-common.scm") +(import chicken.ports) + (declare (foreign-declare #<<EOF diff --git a/posixwin.scm b/posixwin.scm index 8ca06381..35c1b63a 100644 --- a/posixwin.scm +++ b/posixwin.scm @@ -663,6 +663,8 @@ EOF (include "posix-common.scm") +(import chicken.ports) + ;;; Lo-level I/O: diff --git a/rules.make b/rules.make index cef3bb93..31240b9d 100644 --- a/rules.make +++ b/rules.make @@ -489,6 +489,11 @@ define declare-emitted-import-lib-dependency $(1).import.scm: $(1).c endef +define declare-emitted-chicken-import-lib-dependency +.SECONDARY: chicken.$(1).import.scm +chicken.$(1).import.scm: $(1).c +endef + define declare-emitted-compiler-import-lib-dependency .SECONDARY: chicken.compiler.$(1).import.scm chicken.compiler.$(1).import.scm: $(1).c @@ -497,6 +502,9 @@ endef $(foreach lib, $(SETUP_API_OBJECTS_1),\ $(eval $(call declare-emitted-import-lib-dependency,$(lib)))) +$(foreach lib, $(DYNAMIC_IMPORT_LIBRARIES),\ + $(eval $(call declare-emitted-chicken-import-lib-dependency,$(lib)))) + $(foreach lib, $(filter-out chicken,$(COMPILER_OBJECTS_1)),\ $(eval $(call declare-emitted-compiler-import-lib-dependency,$(lib)))) @@ -526,12 +534,38 @@ core.c: core.scm mini-srfi-1.scm \ optimizer.c: optimizer.scm mini-srfi-1.scm \ chicken.compiler.support.import.scm scrutinizer.c: scrutinizer.scm mini-srfi-1.scm \ + chicken.compiler.support.import.scm \ + chicken.ports.import.scm +lfa2.c: lfa2.scm mini-srfi-1.scm \ chicken.compiler.support.import.scm -lfa2.c: lfa2.scm chicken.compiler.support.import.scm mini-srfi-1.scm compiler-syntax.c: compiler-syntax.scm mini-srfi-1.scm \ chicken.compiler.support.import.scm \ chicken.compiler.core.import.scm -support.c: support.scm mini-srfi-1.scm +support.c: support.scm mini-srfi-1.scm \ + chicken.ports.import.scm +csi.c: csi.scm \ + chicken.ports.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 \ + setup-api.import.scm \ + setup-download.import.scm +chicken-uninstall.c: chicken-uninstall.scm \ + chicken.ports.import.scm \ + setup-api.import.scm +setup-api.c: setup-api.scm \ + chicken.ports.import.scm +setup-download.c: setup-download.scm \ + chicken.ports.import.scm \ + setup-api.import.scm +posixunix.c: posixunix.scm \ + chicken.ports.import.scm +posixwin.c: posixwin.scm \ + chicken.ports.import.scm +tcp.c: tcp.scm \ + chicken.ports.import.scm define profile-flags $(if $(filter $(basename $(1)),$(PROFILE_OBJECTS)),-profile) @@ -555,9 +589,6 @@ posixwin.c: $(SRCDIR)posixwin.scm $(SRCDIR)posix-common.scm $(SRCDIR)common-decl $(bootstrap-lib) irregex.c: $(SRCDIR)irregex.scm $(SRCDIR)irregex-core.scm $(SRCDIR)irregex-utils.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) -# -# The ones below just depend on their matching .scm file and common-declarations -# chicken-syntax.c: $(SRCDIR)chicken-syntax.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-srfi-1.scm $(bootstrap-lib) chicken-ffi-syntax.c: $(SRCDIR)chicken-ffi-syntax.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-srfi-1.scm @@ -565,7 +596,7 @@ chicken-ffi-syntax.c: $(SRCDIR)chicken-ffi-syntax.scm $(SRCDIR)common-declaratio data-structures.c: $(SRCDIR)data-structures.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) ports.c: $(SRCDIR)ports.scm $(SRCDIR)common-declarations.scm - $(bootstrap-lib) + $(bootstrap-lib) -emit-import-library chicken.ports files.c: $(SRCDIR)files.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) lolevel.c: $(SRCDIR)lolevel.scm $(SRCDIR)common-declarations.scm @@ -609,7 +640,7 @@ csi.c: $(SRCDIR)csi.scm $(SRCDIR)banner.scm $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ chicken-profile.c: $(SRCDIR)chicken-profile.scm $(SRCDIR)mini-srfi-1.scm $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ -chicken-install.c: $(SRCDIR)chicken-install.scm setup-download.c setup-api.c $(SRCDIR)mini-srfi-1.scm +chicken-install.c: $(SRCDIR)chicken-install.scm $(SRCDIR)mini-srfi-1.scm $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm $(SRCDIR)mini-srfi-1.scm $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ @@ -623,7 +654,7 @@ chicken-bug.c: $(SRCDIR)chicken-bug.scm setup-api.c: $(SRCDIR)setup-api.scm $(SRCDIR)mini-srfi-1.scm $(CHICKEN) $< $(CHICKEN_DYNAMIC_OPTIONS) -emit-import-library setup-api \ -output-file $@ -setup-download.c: $(SRCDIR)setup-download.scm setup-api.c $(SRCDIR)mini-srfi-1.scm +setup-download.c: $(SRCDIR)setup-download.scm $(SRCDIR)mini-srfi-1.scm $(CHICKEN) $< $(CHICKEN_DYNAMIC_OPTIONS) -emit-import-library setup-download \ -output-file $@ @@ -658,9 +689,9 @@ clean: $(LIBCHICKEN_SO_FILE) \ $(PRIMARY_LIBCHICKEN) \ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) \ - $(PROGRAM_IMPORT_LIBRARIES) \ $(IMPORT_LIBRARIES:=.import.so) $(LIBCHICKEN_IMPORT_LIBRARY) \ - $(SETUP_API_OBJECTS_1:=.so) $(SETUP_API_OBJECTS_1:=.import.so) + $(SETUP_API_OBJECTS_1:=.so) $(SETUP_API_OBJECTS_1:=.import.so) \ + $(foreach lib,$(DYNAMIC_IMPORT_LIBRARIES),chicken.$(lib).import.scm) ifdef USES_SONAME $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so.$(BINARYVERSION) endif diff --git a/scrutinizer.scm b/scrutinizer.scm index 231bb77c..f1569ee3 100644 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -33,8 +33,9 @@ (scrutinize load-type-database emit-type-file validate-type check-and-validate-type install-specializations) -(import chicken scheme data-structures extras ports files - chicken.compiler.support) +(import chicken scheme data-structures extras files + chicken.compiler.support + chicken.ports) (include "tweaks") (include "mini-srfi-1.scm") diff --git a/setup-api.scm b/setup-api.scm index aa85f018..5823f4c6 100644 --- a/setup-api.scm +++ b/setup-api.scm @@ -66,8 +66,8 @@ setup-error-handling) (import scheme chicken foreign - irregex utils posix ports extras data-structures - files) + irregex utils posix extras data-structures files + chicken.ports) (include "mini-srfi-1.scm") diff --git a/support.scm b/support.scm index 4fb07862..2dc27c53 100644 --- a/support.scm +++ b/support.scm @@ -75,7 +75,8 @@ ;; in a lot of other places. number-type unsafe) -(import chicken scheme foreign data-structures files extras ports) +(import chicken scheme foreign data-structures files extras + chicken.ports) (include "tweaks") (include "mini-srfi-1.scm") diff --git a/tcp.scm b/tcp.scm index 2ee36b57..e12a7521 100644 --- a/tcp.scm +++ b/tcp.scm @@ -142,6 +142,8 @@ EOF (include "common-declarations.scm") +(import chicken.ports) + (register-feature! 'tcp) (define-foreign-type sockaddr* (pointer "struct sockaddr")) diff --git a/tests/pp-test.scm b/tests/pp-test.scm index 0af80e43..1c65a57c 100644 --- a/tests/pp-test.scm +++ b/tests/pp-test.scm @@ -1,5 +1,6 @@ ;;;; pp-test.scm +(use (only ports with-output-to-string)) (define (pp->string thing) (with-output-to-string (cut pp thing))) diff --git a/tests/r7rs-tests.scm b/tests/r7rs-tests.scm index 4c98869e..da337179 100644 --- a/tests/r7rs-tests.scm +++ b/tests/r7rs-tests.scm @@ -1,5 +1,7 @@ ;; R7RS Tests +(use (only ports with-input-from-string with-output-to-string)) + ;; Copied from R4RS tests (define cur-section '()) diff --git a/tests/reader-tests.scm b/tests/reader-tests.scm index 894e8461..6fbaddf4 100644 --- a/tests/reader-tests.scm +++ b/tests/reader-tests.scm @@ -1,7 +1,8 @@ ;;;; reader-tests.scm -(use utils) +(use (only ports with-input-from-string with-output-to-string) + (only utils read-all)) (set-sharp-read-syntax! #\& (lambda (p) (read p) (values))) diff --git a/tests/runtests.sh b/tests/runtests.sh index f4dc1a8d..63301f90 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -38,7 +38,7 @@ 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 \ - ports.import.so files.import.so posix.import.so \ + chicken.ports.import.so files.import.so posix.import.so \ extras.import.so \ irregex.import.so tcp.import.so \ foreign.import.so \ diff --git a/tests/test-irregex.scm b/tests/test-irregex.scm index d2754218..57b65596 100644 --- a/tests/test-irregex.scm +++ b/tests/test-irregex.scm @@ -1,7 +1,7 @@ ;;;: test-irregex.scm -(use extras irregex) +(use irregex ports) (include "test.scm") diff --git a/types.db b/types.db index 16ff9a3e..201fda0d 100644 --- a/types.db +++ b/types.db @@ -1790,24 +1790,24 @@ ;; ports -(call-with-input-string (#(procedure #:enforce) call-with-input-string (string (procedure (input-port) . *)) . *)) -(call-with-output-string (#(procedure #:enforce) call-with-output-string ((procedure (output-port) . *)) string)) -(copy-port (#(procedure #:enforce) copy-port (* * #!optional (procedure (*) *) (procedure (* output-port) *)) undefined)) -(make-input-port (#(procedure #:clean #:enforce) make-input-port ((procedure () (or char eof)) (procedure () *) (procedure () . *) #!optional * * * *) input-port)) -(make-output-port (#(procedure #:clean #:enforce) make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) output-port)) -(port-for-each (#(procedure #:enforce) port-for-each ((procedure (*) *) (procedure () . *)) undefined)) - -(port-map - (forall (a b) (#(procedure #:enforce) port-map ((procedure (a) b) (procedure () a)) (list-of b)))) - -(port-fold (#(procedure #:enforce) port-fold ((procedure (* *) *) * (procedure () *)) *)) -(make-broadcast-port (#(procedure #:clean #:enforce) make-broadcast-port (#!rest output-port) output-port)) -(make-concatenated-port (#(procedure #:clean #:enforce) make-concatenated-port (port #!rest input-port) input-port)) -(with-error-output-to-port (#(procedure #:enforce) with-error-output-to-port (output-port (procedure () . *)) . *)) -(with-input-from-port (#(procedure #:enforce) with-input-from-port (input-port (procedure () . *)) . *)) -(with-input-from-string (#(procedure #:enforce) with-input-from-string (string (procedure () . *)) . *)) -(with-output-to-port (#(procedure #:enforce) with-output-to-port (output-port (procedure () . *)) . *)) -(with-output-to-string (#(procedure #:enforce) with-output-to-string ((procedure () . *)) . *)) +(chicken.ports#call-with-input-string (#(procedure #:enforce) chicken.ports#call-with-input-string (string (procedure (input-port) . *)) . *)) +(chicken.ports#call-with-output-string (#(procedure #:enforce) chicken.ports#call-with-output-string ((procedure (output-port) . *)) string)) +(chicken.ports#copy-port (#(procedure #:enforce) chicken.ports#copy-port (* * #!optional (procedure (*) *) (procedure (* output-port) *)) undefined)) +(chicken.ports#make-input-port (#(procedure #:clean #:enforce) chicken.ports#make-input-port ((procedure () (or char eof)) (procedure () *) (procedure () . *) #!optional * * * *) input-port)) +(chicken.ports#make-output-port (#(procedure #:clean #:enforce) chicken.ports#make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) output-port)) +(chicken.ports#port-for-each (#(procedure #:enforce) chicken.ports#port-for-each ((procedure (*) *) (procedure () . *)) undefined)) + +(chicken.ports#port-map + (forall (a b) (#(procedure #:enforce) chicken.ports#port-map ((procedure (a) b) (procedure () a)) (list-of b)))) + +(chicken.ports#port-fold (#(procedure #:enforce) chicken.ports#port-fold ((procedure (* *) *) * (procedure () *)) *)) +(chicken.ports#make-broadcast-port (#(procedure #:clean #:enforce) chicken.ports#make-broadcast-port (#!rest output-port) output-port)) +(chicken.ports#make-concatenated-port (#(procedure #:clean #:enforce) chicken.ports#make-concatenated-port (port #!rest input-port) input-port)) +(chicken.ports#with-error-output-to-port (#(procedure #:enforce) chicken.ports#with-error-output-to-port (output-port (procedure () . *)) . *)) +(chicken.ports#with-input-from-port (#(procedure #:enforce) chicken.ports#with-input-from-port (input-port (procedure () . *)) . *)) +(chicken.ports#with-input-from-string (#(procedure #:enforce) chicken.ports#with-input-from-string (string (procedure () . *)) . *)) +(chicken.ports#with-output-to-port (#(procedure #:enforce) chicken.ports#with-output-to-port (output-port (procedure () . *)) . *)) +(chicken.ports#with-output-to-string (#(procedure #:enforce) chicken.ports#with-output-to-string ((procedure () . *)) . *)) ;; posixTrap