>From a349b98c699e0ca1fbe09bb694be73dd7d9e58ef Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Fri, 26 Jan 2018 08:58:16 +1300 Subject: [PATCH] Move port procedures out of toplevel and drop most "chicken" imports Move the following procedures into the "chicken.base" library: get-output-string open-input-string open-output-string input-port-open? output-port-open? flush-output port? Move the following procedures into the "chicken.port" library: port-closed? port-name port-position set-port-name! Go through all import expressions and remove "chicken", where possible. Where not possible, move the "chicken" import into its own expression with all of the identifiers that it's still necessary to import clearly indicated. Import "chicken.syntax" in chicken-syntax.scm and use the imported identifier names directly, rather than manually including the module prefix. This is possible now that we're bootstrapping with a version of CHICKEN that itself includes a "chicken.syntax" module. Fix the c-platform rewrite for `port?', which was not actually in the (scheme) module and now lives in "chicken.base" anyway. --- batch-driver.scm | 6 ++- c-backend.scm | 1 - c-platform.scm | 5 ++- chicken-install.scm | 1 - chicken-profile.scm | 7 +++- chicken-status.scm | 8 ++-- chicken-syntax.scm | 44 +++++++++++--------- chicken-uninstall.scm | 8 ++-- chicken.base.import.scm | 7 ++++ chicken.import.scm | 11 ----- chicken.scm | 4 +- compiler-syntax.scm | 12 +++--- continuation.scm | 2 +- core.scm | 2 +- csc.scm | 4 +- csi.scm | 7 ++-- data-structures.scm | 6 ++- eval.scm | 18 ++++++--- expand.scm | 9 ++++- extras.scm | 13 +++--- file.scm | 7 +++- internal.scm | 2 +- irregex.scm | 7 ++-- lfa2.scm | 4 +- library.scm | 103 +++++++++++++++++++++++------------------------ lolevel.scm | 8 ++-- pathname.scm | 8 ++-- port.scm | 30 ++++++++++++-- posix.scm | 11 +++-- posixunix.scm | 6 +-- posixwin.scm | 2 +- read-syntax.scm | 2 +- repl.scm | 5 ++- scheduler.scm | 2 +- scrutinizer.scm | 3 +- srfi-4.scm | 5 ++- support.scm | 1 - tcp.scm | 6 ++- tests/compiler-tests.scm | 12 +++--- tests/ec.scm | 2 +- tests/functor-tests.scm | 8 ++-- tests/reexport-m3.scm | 2 +- tests/reexport-m4.scm | 4 +- tests/reexport-tests.scm | 2 +- tests/scrutiny-tests.scm | 4 +- tests/syntax-tests.scm | 13 +++--- types.db | 46 +++++++++++---------- user-pass.scm | 2 +- 48 files changed, 275 insertions(+), 207 deletions(-) diff --git a/batch-driver.scm b/batch-driver.scm index e22783b5..691e85d1 100644 --- a/batch-driver.scm +++ b/batch-driver.scm @@ -35,7 +35,11 @@ (module chicken.compiler.batch-driver (compile-source-file) -(import chicken scheme +(import (only chicken case-sensitive keyword-style parentheses-synonyms symbol-escape)) + +(import scheme + chicken.base + chicken.fixnum chicken.format chicken.gc chicken.internal diff --git a/c-backend.scm b/c-backend.scm index b2db26e5..babb2ac3 100644 --- a/c-backend.scm +++ b/c-backend.scm @@ -35,7 +35,6 @@ foreign-type-declaration) (import scheme - (only chicken get-output-string) chicken.base chicken.bitwise chicken.fixnum diff --git a/c-platform.scm b/c-platform.scm index 08b38885..0dc2cd50 100644 --- a/c-platform.scm +++ b/c-platform.scm @@ -165,7 +165,8 @@ chicken.base#current-error-port chicken.base#symbol-append chicken.base#foldl chicken.base#foldr chicken.base#setter chicken.base#getter-with-setter - chicken.base#equal=? chicken.base#exact-integer? flush-output + chicken.base#equal=? chicken.base#exact-integer? + chicken.base#flush-output chicken.base#identity chicken.base#o chicken.base#atom? chicken.base#alist-ref chicken.base#rassoc @@ -503,7 +504,7 @@ (rewrite 'scheme#pair? 2 1 "C_i_pairp" #t) (rewrite '##sys#pair? 2 1 "C_i_pairp" #t) (rewrite 'scheme#procedure? 2 1 "C_i_closurep" #t) -(rewrite 'scheme#port? 2 1 "C_i_portp" #t) +(rewrite 'chicken.base#port? 2 1 "C_i_portp" #t) (rewrite 'scheme#boolean? 2 1 "C_booleanp" #t) (rewrite 'scheme#number? 2 1 "C_i_numberp" #t) (rewrite 'scheme#complex? 2 1 "C_i_numberp" #t) diff --git a/chicken-install.scm b/chicken-install.scm index d5838bdd..5a233b55 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -27,7 +27,6 @@ (module main () (import (scheme)) -(import (only chicken open-input-string flush-output)) (import (chicken base)) (import (chicken condition)) (import (chicken foreign)) diff --git a/chicken-profile.scm b/chicken-profile.scm index 70d48a77..d5739297 100644 --- a/chicken-profile.scm +++ b/chicken-profile.scm @@ -28,10 +28,13 @@ (module main () -(import chicken scheme) -(import chicken.file +(import scheme + chicken.base + chicken.file chicken.file.posix + chicken.fixnum chicken.internal + chicken.platform chicken.process-context chicken.sort chicken.string) diff --git a/chicken-status.scm b/chicken-status.scm index 2b59d2fc..984313df 100644 --- a/chicken-status.scm +++ b/chicken-status.scm @@ -25,15 +25,17 @@ (module main () - (import (scheme)) - (import (chicken)) - (import (chicken file) + (import (scheme) + (chicken base) + (chicken file) + (chicken fixnum) (chicken foreign) (chicken format) (chicken irregex) (chicken port) (chicken posix) ; FIXME once terminal-{size,port?} are rehomed (chicken pathname) + (chicken platform) (chicken pretty-print) (chicken process-context) (chicken sort) diff --git a/chicken-syntax.scm b/chicken-syntax.scm index 890c2f66..53a6ef1d 100644 --- a/chicken-syntax.scm +++ b/chicken-syntax.scm @@ -39,7 +39,11 @@ (no-bound-checks) (no-procedure-checks)) -(import chicken scheme (chicken internal)) +(import (scheme) + (chicken base) + (chicken fixnum) + (chicken syntax) + (chicken internal)) (include "common-declarations.scm") (include "mini-srfi-1.scm") @@ -119,16 +123,16 @@ (##sys#check-syntax ': x '(_ symbol _ . _)) (if (not (memq #:compiling ##sys#features)) '(##core#undefined) - (let* ((type1 (chicken.syntax#strip-syntax (caddr x))) + (let* ((type1 (strip-syntax (caddr x))) (name1 (cadr x))) ;; we need pred/pure info, so not using ;; "chicken.compiler.scrutinizer#check-and-validate-type" (let-values (((type pred pure) (chicken.compiler.scrutinizer#validate-type type1 - (chicken.syntax#strip-syntax name1)))) + (strip-syntax name1)))) (cond ((not type) - (chicken.syntax#syntax-error ': "invalid type syntax" name1 type1)) + (syntax-error ': "invalid type syntax" name1 type1)) (else `(##core#declare (type (,name1 ,type1 ,@(cdddr x))) @@ -165,7 +169,7 @@ (args (cdr head)) (alias (gensym name)) (galias (##sys#globalize alias '())) ;XXX and this? - (rtypes (and (pair? (cdddr x)) (chicken.syntax#strip-syntax (caddr x)))) + (rtypes (and (pair? (cdddr x)) (strip-syntax (caddr x)))) (%define (r 'define)) (body (if rtypes (cadddr x) (caddr x)))) (let loop ((args args) (anames '()) (atypes '())) @@ -212,7 +216,7 @@ (cadr arg) 'define-specialization) atypes))) - (else (chicken.syntax#syntax-error + (else (syntax-error 'define-specialization "invalid argument syntax" arg head))))))))))))) @@ -223,13 +227,13 @@ (##sys#check-syntax 'compiler-typecase x '(_ _ . #((_ . #(_ 1)) 1))) (let ((val (memq #:compiling ##sys#features)) (var (gensym)) - (ln (chicken.syntax#get-line-number x))) + (ln (get-line-number x))) `(##core#let ((,var ,(cadr x))) (##core#typecase ,ln ,var ; must be variable (see: CPS transform) ,@(map (lambda (clause) - (let ((hd (chicken.syntax#strip-syntax (car clause)))) + (let ((hd (strip-syntax (car clause)))) (list (if (eq? hd 'else) 'else @@ -248,9 +252,9 @@ (##sys#check-syntax 'define-type x '(_ variable _)) (cond ((not (memq #:compiling ##sys#features)) '(##core#undefined)) (else - (let ((name (chicken.syntax#strip-syntax (cadr x))) + (let ((name (strip-syntax (cadr x))) (%quote (r 'quote)) - (t0 (chicken.syntax#strip-syntax (caddr x)))) + (t0 (strip-syntax (caddr x)))) `(##core#elaborationtimeonly (##sys#put/restore! (,%quote ,name) @@ -324,7 +328,7 @@ (null? (cddr slot))) (cadr slot)) (else - (chicken.syntax#syntax-error + (syntax-error 'define-record "invalid slot specification" slot)))) slots))) `(##core#begin @@ -683,7 +687,7 @@ (when (or (not (pair? val)) (and (not (eq? '##core#lambda (car val))) (not (c (r 'lambda) (car val))))) - (chicken.syntax#syntax-error + (syntax-error 'define-inline "invalid substitution form - must be lambda" name val) ) (list name val) ) ) ] ) @@ -1136,7 +1140,7 @@ (%<...> (r '<...>)) (%apply (r 'apply))) (when (null? (cdr form)) - (chicken.syntax#syntax-error 'cut "you need to supply at least a procedure" form)) + (syntax-error 'cut "you need to supply at least a procedure" form)) (let loop ([xs (cdr form)] [vars '()] [vals '()] [rest #f]) (if (null? xs) (let ([rvars (reverse vars)] @@ -1154,7 +1158,7 @@ ((c %<...> (car xs)) (if (null? (cdr xs)) (loop '() vars vals #t) - (chicken.syntax#syntax-error + (syntax-error 'cut "tail patterns after <...> are not supported" form))) @@ -1169,7 +1173,7 @@ (%<> (r '<>)) (%<...> (r '<...>))) (when (null? (cdr form)) - (chicken.syntax#syntax-error 'cute "you need to supply at least a procedure" form)) + (syntax-error 'cute "you need to supply at least a procedure" form)) (let loop ([xs (cdr form)] [vars '()] [bs '()] [vals '()] [rest #f]) (if (null? xs) (let ([rvars (reverse vars)] @@ -1188,7 +1192,7 @@ ((c %<...> (car xs)) (if (null? (cdr xs)) (loop '() vars bs vals #t) - (chicken.syntax#syntax-error + (syntax-error 'cute "tail patterns after <...> are not supported" form))) @@ -1265,7 +1269,7 @@ (msg (optional msg-and-args "assertion failed")) (tmp (r 'tmp))) (when (string? msg) - (and-let* ((ln (chicken.syntax#get-line-number form))) + (and-let* ((ln (get-line-number form))) (set! msg (string-append "(" ln ") " msg)))) `(##core#let ((,tmp ,exp)) (##core#if (##core#check ,tmp) @@ -1274,7 +1278,7 @@ ,msg ,@(if (pair? msg-and-args) (cdr msg-and-args) - `((##core#quote ,(chicken.syntax#strip-syntax exp)))))))))))) + `((##core#quote ,(strip-syntax exp)))))))))))) (##sys#extend-macro-environment 'ensure @@ -1340,7 +1344,7 @@ (cond ((null? clauses) '(##core#undefined)) ((not (pair? clauses)) - (chicken.syntax#syntax-error 'select "invalid syntax" clauses)) + (syntax-error 'select "invalid syntax" clauses)) (else (let ((clause (##sys#slot clauses 0)) (rclauses (##sys#slot clauses 1))) @@ -1351,7 +1355,7 @@ (else? (##sys#notice "non-`else' clause following `else' clause in `select'" - (chicken.syntax#strip-syntax clause)) + (strip-syntax clause)) (expand rclauses #t) '(##core#begin)) (else diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm index 6141e176..bc5e2aa9 100644 --- a/chicken-uninstall.scm +++ b/chicken-uninstall.scm @@ -27,14 +27,16 @@ (module main () (import (scheme) - (chicken)) - (import (chicken file) + (chicken base) + (chicken file) + (chicken fixnum) (chicken foreign) - (chicken io) (chicken format) + (chicken io) (chicken irregex) (chicken port) (chicken pathname) + (chicken platform) (chicken process) (chicken process-context) (chicken string)) diff --git a/chicken.base.import.scm b/chicken.base.import.scm index 3804441d..09d8f8fd 100644 --- a/chicken.base.import.scm +++ b/chicken.base.import.scm @@ -59,14 +59,17 @@ (flatten . chicken.base#flatten) (flip . chicken.base#flip) (flonum? . chicken.base#flonum?) + (flush-output . chicken.base#flush-output) (foldl . chicken.base#foldl) (foldr . chicken.base#foldr) (gensym . chicken.base#gensym) (get-call-chain . chicken.base#get-call-chain) + (get-output-string . chicken.base#get-output-string) (getter-with-setter . chicken.base#getter-with-setter) (identity . chicken.base#identity) (implicit-exit-handler . chicken.base#implicit-exit-handler) (infinite? . chicken.base#infinite?) + (input-port-open? . chicken.base#input-port-open?) (intersperse . chicken.base#intersperse) (join . chicken.base#join) (list-of? . chicken.base#list-of?) @@ -76,6 +79,10 @@ (notice . chicken.base#notice) (o . chicken.base#o) (on-exit . chicken.base#on-exit) + (open-input-string . chicken.base#open-input-string) + (open-output-string . chicken.base#open-output-string) + (output-port-open? . chicken.base#output-port-open?) + (port? . chicken.base#port?) (print-call-chain . chicken.base#print-call-chain) (print . chicken.base#print) (print* . chicken.base#print*) diff --git a/chicken.import.scm b/chicken.import.scm index d0908e29..e45b0954 100644 --- a/chicken.import.scm +++ b/chicken.import.scm @@ -63,7 +63,6 @@ (fixnum-precision . chicken.fixnum#fixnum-precision) (fixnum? . chicken.base#fixnum?) (flonum? . chicken.base#flonum?) - flush-output (foldl . chicken.base#foldl) (foldr . chicken.base#foldr) (force-finalizers . chicken.gc#force-finalizers) @@ -96,11 +95,9 @@ (get-call-chain . chicken.base#get-call-chain) (get-condition-property . chicken.condition#get-condition-property) (get-line-number . chicken.syntax#get-line-number) - get-output-string (getter-with-setter . chicken.base#getter-with-setter) (implicit-exit-handler . chicken.base#implicit-exit-handler) (infinite? . chicken.base#infinite?) - input-port-open? (installation-repository . chicken.platform#installation-repository) (ir-macro-transformer . chicken.syntax#ir-macro-transformer) keyword-style @@ -119,14 +116,7 @@ (nan? . chicken.base#nan?) (notice . chicken.base#notice) (on-exit . chicken.base#on-exit) - open-input-string - open-output-string - output-port-open? parentheses-synonyms - port-closed? - port-name - port-position - port? (provide . chicken.load#provide) (provided? . chicken.load#provided?) (print . chicken.base#print) @@ -141,7 +131,6 @@ (repository-path . chicken.platform#repository-path) (require . chicken.load#require) (return-to-host . chicken.platform#return-to-host) - set-port-name! (setter . chicken.base#setter) (signal . chicken.condition#signal) (signum . chicken.base#signum) diff --git a/chicken.scm b/chicken.scm index 2754fde9..f6dae710 100644 --- a/chicken.scm +++ b/chicken.scm @@ -34,11 +34,13 @@ (module chicken.compiler.chicken () -(import scheme chicken +(import scheme + chicken.base chicken.compiler.batch-driver chicken.compiler.c-platform chicken.compiler.support chicken.compiler.user-pass + chicken.fixnum chicken.process-context chicken.string) diff --git a/compiler-syntax.scm b/compiler-syntax.scm index a2034a45..57ca9fbb 100644 --- a/compiler-syntax.scm +++ b/compiler-syntax.scm @@ -151,8 +151,8 @@ (write . scheme#write) (number->string . scheme#number->string) (write-char . scheme#write-char) - (open-output-string . ,(##sys#primitive-alias 'open-output-string)) - (get-output-string . ,(##sys#primitive-alias 'get-output-string))) + (open-output-string . chicken.base#open-output-string) + (get-output-string . chicken.base#get-output-string)) (let* ((out (gensym 'out)) (code (compile-format-string (if (eq? (car x) 'chicken.format#sprintf) 'sprintf 'format) @@ -168,8 +168,8 @@ (write . scheme#write) (number->string . scheme#number->string) (write-char . scheme#write-char) - (open-output-string . ,(##sys#primitive-alias 'open-output-string)) - (get-output-string . ,(##sys#primitive-alias 'get-output-string))) + (open-output-string . chicken.base#open-output-string) + (get-output-string . chicken.base#get-output-string)) (if (>= (length x) 3) (let ((code (compile-format-string 'fprintf (cadr x) x (cddr x) r c))) (or code x)) @@ -180,8 +180,8 @@ (write . scheme#write) (number->string . scheme#number->string) (write-char . scheme#write-char) - (open-output-string . ,(##sys#primitive-alias 'open-output-string)) - (get-output-string . ,(##sys#primitive-alias 'get-output-string))) + (open-output-string . chicken.base#open-output-string) + (get-output-string . chicken.base#get-output-string)) (let ((code (compile-format-string 'printf '##sys#standard-output x (cdr x) r c))) (or code x))) diff --git a/continuation.scm b/continuation.scm index 642ced5a..c478de2a 100644 --- a/continuation.scm +++ b/continuation.scm @@ -36,7 +36,7 @@ continuation-graft continuation-return) -(import scheme chicken) +(import scheme chicken.base chicken.fixnum) (include "common-declarations.scm") diff --git a/core.scm b/core.scm index 00ec5a0f..b55f299e 100644 --- a/core.scm +++ b/core.scm @@ -322,13 +322,13 @@ line-number-database-size) (import scheme - (only chicken open-output-string get-output-string file-exists?) chicken.base chicken.condition chicken.compiler.scrutinizer chicken.compiler.support chicken.eval chicken.fixnum + chicken.file chicken.foreign chicken.format chicken.internal diff --git a/csc.scm b/csc.scm index a228171b..333efcd5 100644 --- a/csc.scm +++ b/csc.scm @@ -28,12 +28,14 @@ (module main () (import scheme - chicken + chicken.base chicken.file + chicken.fixnum chicken.foreign chicken.format chicken.io chicken.pathname + chicken.platform chicken.process chicken.process-context chicken.string) diff --git a/csi.scm b/csi.scm index d18e5276..575d9cdf 100644 --- a/csi.scm +++ b/csi.scm @@ -44,16 +44,15 @@ EOF (module chicken.csi (editor-command toplevel-command set-describer!) +(import (only chicken parentheses-synonyms case-sensitive symbol-escape keyword-style)) + (import scheme - (only chicken open-input-string open-output-string - get-output-string file-exists? parentheses-synonyms - case-sensitive symbol-escape flush-output port? - keyword-style) chicken.base chicken.condition chicken.fixnum chicken.foreign chicken.format + chicken.file chicken.gc chicken.internal chicken.io diff --git a/data-structures.scm b/data-structures.scm index 0d141c60..3cdcf6b8 100644 --- a/data-structures.scm +++ b/data-structures.scm @@ -37,9 +37,11 @@ substring=? substring-ci=? substring-index substring-index-ci) -(import scheme chicken) -(import chicken.foreign) +(import scheme) +(import chicken.base) (import chicken.condition) +(import chicken.fixnum) +(import chicken.foreign) ; (reverse-string-append l) = (apply string-append (reverse l)) diff --git a/eval.scm b/eval.scm index 5587ccd2..e3d4327f 100644 --- a/eval.scm +++ b/eval.scm @@ -47,13 +47,14 @@ (module chicken.eval (eval-handler module-environment) -;; Exclude bindings defined within this module. (import scheme - (except chicken eval-handler) + chicken.base chicken.blob + chicken.fixnum chicken.internal chicken.keyword - chicken.syntax) + chicken.syntax + chicken.type) (include "common-declarations.scm") @@ -883,11 +884,16 @@ load-library load-noisily load-relative load-verbose provide provided? require) +(import (only chicken file-exists?)) + (import scheme - chicken + chicken.base chicken.eval + chicken.fixnum chicken.foreign - chicken.internal) + chicken.internal + chicken.platform + chicken.time) (include "mini-srfi-1.scm") @@ -1382,7 +1388,7 @@ ;;; Simple invocation API: -(import chicken scheme chicken.eval chicken.load chicken.condition) +(import scheme chicken.base chicken.condition chicken.eval chicken.fixnum chicken.load) (declare (hide last-error run-safe store-result store-string diff --git a/expand.scm b/expand.scm index e6abccfe..178eec8d 100644 --- a/expand.scm +++ b/expand.scm @@ -42,8 +42,12 @@ er-macro-transformer ir-macro-transformer) -(import scheme (except chicken expand get-line-number strip-syntax syntax-error er-macro-transformer ir-macro-transformer) +(import (only chicken assert)) + +(import scheme + chicken.base chicken.condition + chicken.fixnum chicken.internal chicken.keyword chicken.platform) @@ -961,7 +965,8 @@ ) ; chicken.syntax module -(import scheme chicken chicken.blob chicken.syntax chicken.internal) +(import scheme chicken.base chicken.blob chicken.fixnum) +(import chicken.syntax chicken.internal chicken.platform) ;;; Macro definitions: diff --git a/extras.scm b/extras.scm index 5c89d331..b396e089 100644 --- a/extras.scm +++ b/extras.scm @@ -34,7 +34,7 @@ read-lines read-string read-string! read-token write-byte write-line write-string) -(import scheme chicken) +(import scheme chicken.base chicken.fixnum) (include "common-declarations.scm") @@ -248,8 +248,7 @@ (module chicken.pretty-print (pp pretty-print pretty-print-width) -(import scheme chicken - chicken.string) +(import scheme chicken.base chicken.fixnum chicken.string) (define generic-write (lambda (obj display? width output) @@ -564,7 +563,7 @@ (module chicken.format (format fprintf printf sprintf) -(import scheme chicken chicken.platform) +(import scheme chicken.base chicken.fixnum chicken.platform) (define fprintf0 (lambda (loc port msg args) @@ -646,7 +645,7 @@ (module chicken.random (set-pseudo-random-seed! pseudo-random-integer pseudo-random-real random-bytes) -(import scheme chicken chicken.time chicken.io chicken.foreign) +(import scheme chicken.base chicken.time chicken.io chicken.foreign) (define (set-pseudo-random-seed! buf #!optional n) (cond (n (##sys#check-fixnum n 'set-pseudo-random-seed!) @@ -694,3 +693,7 @@ dest)))) ) + +;; OBSOLETE - remove after next bootstrapping snapshot +(##sys#setslot 'get-output-string 0 chicken.base#get-output-string) +(##sys#setslot 'open-output-string 0 chicken.base#open-output-string) diff --git a/file.scm b/file.scm index 0c97d7c2..4792bbdc 100644 --- a/file.scm +++ b/file.scm @@ -82,7 +82,12 @@ EOF socket? symbolic-link?) -(import chicken scheme +(import (only chicken file-exists? directory-exists?)) + +(import scheme + chicken.base + chicken.condition + chicken.fixnum chicken.foreign chicken.io chicken.irregex diff --git a/internal.scm b/internal.scm index 6ff16d3b..4594f23e 100644 --- a/internal.scm +++ b/internal.scm @@ -56,7 +56,7 @@ ;; Modules that are made available to code by default default-imports default-syntax-imports) -(import scheme chicken) +(import scheme chicken.base chicken.fixnum) (include "common-declarations.scm") (include "mini-srfi-1.scm") diff --git a/irregex.scm b/irregex.scm index 5bfd401c..5c7220df 100644 --- a/irregex.scm +++ b/irregex.scm @@ -58,9 +58,10 @@ ;; Utilities glob->sre sre->string irregex-opt irregex-quote) -(import scheme - chicken - chicken.syntax) + +(import (only chicken assume define-compiler-syntax)) + +(import scheme chicken.base chicken.fixnum chicken.syntax) (import-for-syntax chicken.fixnum) diff --git a/lfa2.scm b/lfa2.scm index b8c585fb..a3e1c114 100644 --- a/lfa2.scm +++ b/lfa2.scm @@ -39,8 +39,10 @@ (module chicken.compiler.lfa2 (perform-secondary-flow-analysis) -(import chicken scheme +(import scheme + chicken.base chicken.compiler.support + chicken.fixnum chicken.format) (include "tweaks") diff --git a/library.scm b/library.scm index a8b2f184..5c0f23d9 100644 --- a/library.scm +++ b/library.scm @@ -583,6 +583,8 @@ EOF bignum? flonum? fixnum? ratnum? cplxnum? finite? infinite? nan? exact-integer? exact-integer-sqrt exact-integer-nth-root + port? input-port-open? output-port-open? flush-output + get-output-string open-input-string open-output-string get-call-chain print print* add1 sub1 call/cc current-error-port error void gensym print-call-chain make-promise promise? char-name enable-warnings @@ -665,6 +667,14 @@ EOF (define warning) (define notice) +(define port?) +(define input-port-open?) +(define output-port-open?) +(define get-output-string) +(define open-input-string) +(define open-output-string) +(define flush-output) + ;;; Promises: (define (promise? x) @@ -3119,21 +3129,22 @@ EOF ;;; Ports: -(define (port? x) - (and (##core#inline "C_blockp" x) - (##core#inline "C_portp" x))) +(set! chicken.base#port? + (lambda (x) + (and (##core#inline "C_blockp" x) + (##core#inline "C_portp" x)))) -(define (input-port-open? p) - (##sys#check-input-port p 'input-port-open?) - (##core#inline "C_input_port_openp" p)) +(set! chicken.base#input-port-open? + (lambda (p) + (##sys#check-input-port p 'input-port-open?) + (##core#inline "C_input_port_openp" p))) -(define (output-port-open? p) - (##sys#check-output-port p 'output-port-open?) - (##core#inline "C_output_port_openp" p)) +(set! chicken.base#output-port-open? + (lambda (p) + (##sys#check-output-port p 'output-port-open?) + (##core#inline "C_output_port_openp" p))) -(define (port-closed? p) - (##sys#check-port p 'port-closed?) - (eq? (##sys#slot p 8) 0)) +;;; Custom ports: ;;; Port layout: ; @@ -3444,29 +3455,15 @@ EOF ((##sys#slot (##sys#slot port 2) 5) port) ; flush-output (##core#undefined) ) -(define (flush-output #!optional (port ##sys#standard-output)) - (##sys#check-output-port port #t 'flush-output) - (##sys#flush-output port) ) - -(define (port-name #!optional (port ##sys#standard-input)) - (##sys#check-port port 'port-name) - (##sys#slot port 3) ) - -(define (set-port-name! port name) - (##sys#check-port port 'set-port-name!) - (##sys#check-string name 'set-port-name!) - (##sys#setslot port 3 name) ) +(set! chicken.base#flush-output + (lambda (#!optional (port ##sys#standard-output)) + (##sys#check-output-port port #t 'flush-output) + (##sys#flush-output port))) (define (##sys#port-line port) (and (##core#inline "C_input_portp" port) (##sys#slot port 4) ) ) -(define (port-position #!optional (port ##sys#standard-input)) - (##sys#check-port port 'port-position) - (if (##core#inline "C_input_portp" port) - (##sys#values (##sys#slot port 4) (##sys#slot port 5)) - (##sys#error 'port-position "cannot compute position of port" port) ) ) - ;;; Decorate procedure with arbitrary data ; ; warning: may modify proc, if it already has a suitable decoration! @@ -4890,27 +4887,30 @@ EOF (values (fx+ pos 1) (copy&append buf offset pos line) #t)) (else (loop buf offset (fx+ pos 1) limit line)) ) ) ) ) ) -(define (open-input-string string) - (##sys#check-string string 'open-input-string) - (let ((port (##sys#make-port 1 ##sys#string-port-class "(string)" 'string))) - (##sys#setislot port 11 (##core#inline "C_block_size" string)) - (##sys#setislot port 10 0) - (##sys#setslot port 12 string) - port ) ) - -(define (open-output-string) - (let ((port (##sys#make-port 2 ##sys#string-port-class "(string)" 'string))) - (##sys#setislot port 10 0) - (##sys#setislot port 11 output-string-initial-size) - (##sys#setslot port 12 (##sys#make-string output-string-initial-size)) - port ) ) - -(define (get-output-string port) - (##sys#check-output-port port #f 'get-output-string) - (if (not (eq? 'string (##sys#slot port 7))) - (##sys#signal-hook - #:type-error 'get-output-string "argument is not a string-output-port" port) - (##sys#substring (##sys#slot port 12) 0 (##sys#slot port 10)) ) ) +(set! chicken.base#open-input-string + (lambda (string) + (##sys#check-string string 'open-input-string) + (let ((port (##sys#make-port 1 ##sys#string-port-class "(string)" 'string))) + (##sys#setislot port 11 (##core#inline "C_block_size" string)) + (##sys#setislot port 10 0) + (##sys#setslot port 12 string) + port))) + +(set! chicken.base#open-output-string + (lambda () + (let ((port (##sys#make-port 2 ##sys#string-port-class "(string)" 'string))) + (##sys#setislot port 10 0) + (##sys#setislot port 11 output-string-initial-size) + (##sys#setslot port 12 (##sys#make-string output-string-initial-size)) + port))) + +(set! chicken.base#get-output-string + (lambda (port) + (##sys#check-output-port port #f 'get-output-string) + (if (not (eq? 'string (##sys#slot port 7))) + (##sys#signal-hook + #:type-error 'get-output-string "argument is not a string-output-port" port) + (##sys#substring (##sys#slot port 12) 0 (##sys#slot port 10))))) (define ##sys#print-to-string (let ([get-output-string get-output-string] @@ -5069,7 +5069,6 @@ EOF condition-property-accessor get-condition-property) (import scheme chicken.base chicken.fixnum chicken.foreign) -(import (only chicken get-output-string open-output-string)) (import chicken.internal.syntax) (define (##sys#signal-hook mode msg . args) diff --git a/lolevel.scm b/lolevel.scm index a99b70b9..c80a7eb6 100644 --- a/lolevel.scm +++ b/lolevel.scm @@ -51,8 +51,7 @@ EOF pointer-vector-set! pointer-vector? pointer=? pointer? tag-pointer tagged-pointer?) -(import scheme chicken) -(import chicken.foreign) +(import scheme chicken.base chicken.fixnum chicken.foreign) ;;; Helpers: @@ -415,8 +414,7 @@ EOF record-instance-slot-set! record-instance-type record-instance? set-procedure-data! vector-like?) -(import scheme chicken) -(import chicken.foreign) +(import scheme chicken.base chicken.fixnum chicken.foreign) ;;; Copy arbitrary object: @@ -560,7 +558,7 @@ EOF (locative? make-locative make-weak-locative locative-ref locative-set! locative->object) -(import scheme chicken) +(import scheme chicken.base) ;;; locatives: diff --git a/pathname.scm b/pathname.scm index 9ee04b72..d61a0eca 100644 --- a/pathname.scm +++ b/pathname.scm @@ -47,10 +47,12 @@ pathname-replace-file pathname-strip-directory pathname-strip-extension) -(import chicken scheme - chicken.string +(import scheme + chicken.base + chicken.fixnum chicken.irregex - chicken.platform) + chicken.platform + chicken.string) (include "common-declarations.scm") diff --git a/port.scm b/port.scm index a968646d..68dc063a 100644 --- a/port.scm +++ b/port.scm @@ -42,13 +42,16 @@ copy-port make-input-port make-output-port + port-fold port-for-each port-map - port-fold + port-name + port-position make-bidirectional-port make-broadcast-port make-concatenated-port set-buffering-mode! + set-port-name! with-error-output-to-port with-input-from-port with-input-from-string @@ -56,8 +59,10 @@ with-output-to-string with-error-output-to-string) -(import scheme chicken) -(import chicken.foreign +(import scheme + chicken.base + chicken.fixnum + chicken.foreign chicken.io) (include "common-declarations.scm") @@ -67,6 +72,25 @@ (define-foreign-variable _ionbf int "_IONBF") (define-foreign-variable _bufsiz int "BUFSIZ") +(define (port-closed? p) + (##sys#check-port p 'port-closed?) + (eq? (##sys#slot p 8) 0)) + +(define (port-name #!optional (port ##sys#standard-input)) + (##sys#check-port port 'port-name) + (##sys#slot port 3)) + +(define (set-port-name! port name) + (##sys#check-port port 'set-port-name!) + (##sys#check-string name 'set-port-name!) + (##sys#setslot port 3 name)) + +(define (port-position #!optional (port ##sys#standard-input)) + (##sys#check-port port 'port-position) + (if (##core#inline "C_input_portp" port) + (##sys#values (##sys#slot port 4) (##sys#slot port 5)) + (##sys#error 'port-position "cannot compute position of port" port))) + (define (set-buffering-mode! port mode . size) (##sys#check-port port 'set-buffering-mode!) (let ((size (if (pair? size) (car size) _bufsiz)) diff --git a/posix.scm b/posix.scm index 24a96cf8..dd5e4b79 100644 --- a/posix.scm +++ b/posix.scm @@ -84,8 +84,13 @@ time->string user-information utc-time->seconds with-input-from-pipe with-output-to-pipe) -(import scheme chicken) -(import chicken.bitwise +(import (only chicken select)) + +(import scheme + chicken.base + chicken.bitwise + chicken.condition + chicken.fixnum chicken.foreign chicken.memory chicken.pathname @@ -177,7 +182,7 @@ with-output-to-pipe process process* pipe/buf spawn/overlay spawn/wait spawn/nowait spawn/nowaito spawn/detach) -(import chicken scheme chicken.posix chicken.platform) +(import scheme chicken.base chicken.fixnum chicken.posix chicken.platform) ;;; Execute a shell command: diff --git a/posixunix.scm b/posixunix.scm index fd19921a..d757c291 100644 --- a/posixunix.scm +++ b/posixunix.scm @@ -903,7 +903,7 @@ static C_word C_i_fifo_p(C_word name) (if (null? components) result (let ((pathname (make-pathname result (car components)))) - (if (file-exists? pathname) + (if (##sys#file-exists? pathname #f #f 'read-symbolic-link) (loop (cdr components) (if (symbolic-link? pathname) (let ((target (##sys#read-symbolic-link pathname 'read-symbolic-link))) @@ -1047,7 +1047,7 @@ static C_word C_i_fifo_p(C_word name) (set! bufpos buflen) str))) ) ] ) - (set-port-name! this-port nam) + (##sys#setslot this-port 3 nam) this-port ) ) ) ) ) (define ##sys#custom-output-port @@ -1101,7 +1101,7 @@ static C_word C_i_fifo_p(C_word name) (on-close)) (lambda () ; flush (store #f) ) )] ) - (set-port-name! this-port nam) + (##sys#setslot this-port 3 nam) this-port ) ) ) ) diff --git a/posixwin.scm b/posixwin.scm index 43136d71..bc677051 100644 --- a/posixwin.scm +++ b/posixwin.scm @@ -709,7 +709,7 @@ static int set_file_mtime(char *filename, C_word atime, C_word mtime) (eq? (string-ref tmpl i) #\X)) (loop (fx- i 1)) (fx+ i 1))))) - (cond ((not (directory-exists? (or (pathname-directory template) "."))) + (cond ((not (##sys#file-exists? (or (pathname-directory template) ".") #f #t 'file-mkstemp)) ;; Quit early instead of looping needlessly with C_open ;; failing every time. This is a race condition, but not ;; a security-critical one. diff --git a/read-syntax.scm b/read-syntax.scm index f3561d9f..2d58355f 100644 --- a/read-syntax.scm +++ b/read-syntax.scm @@ -33,7 +33,7 @@ (copy-read-table current-read-table define-reader-ctor set-read-syntax! set-sharp-read-syntax! set-parameterized-read-syntax!) -(import scheme chicken chicken.internal chicken.platform) +(import scheme chicken.base chicken.internal chicken.platform) (include "common-declarations.scm") diff --git a/repl.scm b/repl.scm index 20c4eb85..a2a81437 100644 --- a/repl.scm +++ b/repl.scm @@ -33,9 +33,10 @@ (quit repl repl-prompt reset reset-handler) (import scheme - chicken + chicken.base chicken.eval - chicken.foreign) + chicken.foreign + chicken.load) (include "common-declarations.scm") diff --git a/scheduler.scm b/scheduler.scm index cfb83306..f6c98bab 100644 --- a/scheduler.scm +++ b/scheduler.scm @@ -133,7 +133,7 @@ inline static void C_fdset_add(int fd, int input, int output) { EOF ) ) -(import scheme chicken chicken.format) +(import scheme chicken.base chicken.fixnum chicken.format) (include "common-declarations.scm") diff --git a/scrutinizer.scm b/scrutinizer.scm index f2abdb92..a330d4e0 100644 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -35,7 +35,6 @@ match-types refine-types type<=?) (import scheme - (only chicken file-exists?) ; Should this depend on "file"? chicken.base chicken.compiler.support chicken.fixnum @@ -1706,7 +1705,7 @@ (define (pure! name) (when specialize (mark-variable name '##compiler#pure #t))) (and-let* ((dbfile (if (not path) - (file-exists? name) + (and (##sys#file-exists? name #t #f #f) name) (chicken.load#find-file name path)))) (debugging 'p (sprintf "loading type database `~a' ...~%" dbfile)) (fluid-let ((scrutiny-debug #f)) diff --git a/srfi-4.scm b/srfi-4.scm index 1d38b670..98feee74 100644 --- a/srfi-4.scm +++ b/srfi-4.scm @@ -78,8 +78,9 @@ EOF subs8vector subu16vector subu8vector subu32vector subu64vector write-u8vector) -(import scheme chicken) -(import chicken.bitwise +(import scheme + chicken.base + chicken.bitwise chicken.fixnum chicken.foreign chicken.gc diff --git a/support.scm b/support.scm index 9063cd2d..9136c35c 100644 --- a/support.scm +++ b/support.scm @@ -77,7 +77,6 @@ number-type unsafe) (import scheme - (only chicken open-output-string get-output-string flush-output) chicken.base chicken.bitwise chicken.blob diff --git a/tcp.scm b/tcp.scm index ea8a9870..2f735329 100644 --- a/tcp.scm +++ b/tcp.scm @@ -143,8 +143,10 @@ EOF tcp-listener-fileno tcp-port-numbers tcp-buffer-size tcp-read-timeout tcp-write-timeout tcp-accept-timeout tcp-connect-timeout) -(import scheme chicken) -(import chicken.foreign +(import scheme + chicken.base + chicken.fixnum + chicken.foreign chicken.port chicken.time) diff --git a/tests/compiler-tests.scm b/tests/compiler-tests.scm index 54bda8b4..9832b5e6 100644 --- a/tests/compiler-tests.scm +++ b/tests/compiler-tests.scm @@ -22,7 +22,7 @@ ;; test hiding of unexported toplevel variables (module foo (bar) - (import scheme chicken) + (import scheme chicken.base) (declare (hide bar)) (define (bar x) (+ x 1))) @@ -53,7 +53,7 @@ (module x (bar) - (import scheme chicken chicken.foreign) + (import scheme chicken.base chicken.foreign) (define (bar n) (let-location ((off integer 0)) @@ -111,8 +111,8 @@ (foreign-declare "enum intlimits {min=INT_MIN, zero=0, max=INT_MAX};") (module foo () - (import chicken scheme chicken.foreign) ; "chicken" includes an export for "void" - + (import scheme chicken.base chicken.foreign) + (let-syntax ((fl (syntax-rules () ((_) @@ -148,7 +148,7 @@ ;; Unused arguments in foreign callback wrappers are not optimized away (#584) (module bla (foo) -(import chicken scheme chicken.foreign) +(import scheme (only chicken assert) chicken.base chicken.foreign) (define-external (blabla (int a) (c-string b) (int c) (int d) (c-string e) (int f)) @@ -417,7 +417,7 @@ ;; procedures not getting replaced with explicitly consed rest ;; list when the procedures themselves were hidden. (module explicitly-consed-rest-args-bug (do-it also-do-it) - (import scheme chicken) + (import scheme chicken.base chicken.type) (: get-value (* * #!rest * --> *)) (define (get-value x y . rest) diff --git a/tests/ec.scm b/tests/ec.scm index a84684d2..e59c5001 100644 --- a/tests/ec.scm +++ b/tests/ec.scm @@ -14,7 +14,7 @@ min-ec max-ec last-ec first-ec ec-guarded-do-ec any?-ec every?-ec) -(import scheme (except chicken :)) +(import scheme chicken.base) ; ; Eager Comprehensions in [outer..inner|expr]-Convention diff --git a/tests/functor-tests.scm b/tests/functor-tests.scm index 8dad2368..ebc40a5d 100644 --- a/tests/functor-tests.scm +++ b/tests/functor-tests.scm @@ -33,7 +33,7 @@ (module queue2 QUEUE - (import (rename scheme (not empty?)) chicken) + (import (rename scheme (not empty?)) chicken.base) (define-record entry q x) (define empty-queue #f) (define enqueue make-entry) @@ -49,7 +49,7 @@ (module queue3 QUEUE - (import scheme chicken) + (import scheme chicken.base) (define-record queue heads tails) (define empty-queue (make-queue '() '())) (define (norm q) @@ -107,7 +107,7 @@ (define (print-twice x) (print x) (print x))) (module (noop printer) * - (import (only (scheme) define) (only (chicken) void)) + (import (only (scheme) define) (only (chicken base) void)) (define print void)) (module (2x print) = ((double printer))) @@ -163,7 +163,7 @@ ;; Test alternative instantiation syntax: (functor (frob (X (yibble))) * - (import chicken X) + (import chicken.base X) yibble) ;; XXX This is somewhat iffy: functor instantiation results in a diff --git a/tests/reexport-m3.scm b/tests/reexport-m3.scm index 4a54802a..5bda5894 100644 --- a/tests/reexport-m3.scm +++ b/tests/reexport-m3.scm @@ -2,7 +2,7 @@ (module reexport-m3 ((foo bar)) - (import chicken scheme) + (import scheme chicken.base) (define (bar) 1) (define-syntax foo (ir-macro-transformer diff --git a/tests/reexport-m4.scm b/tests/reexport-m4.scm index 08ea5d07..f9755484 100644 --- a/tests/reexport-m4.scm +++ b/tests/reexport-m4.scm @@ -2,8 +2,8 @@ (module reexport-m4 (baz) - (import chicken scheme (chicken module) reexport-m3) - (reexport reexport-m3) + (import (scheme) (chicken base) (chicken module) (reexport-m3)) + (reexport (reexport-m3)) (define-syntax baz (ir-macro-transformer (lambda (e i c) diff --git a/tests/reexport-tests.scm b/tests/reexport-tests.scm index 70280681..22af72e7 100644 --- a/tests/reexport-tests.scm +++ b/tests/reexport-tests.scm @@ -43,7 +43,7 @@ (module m4 (foo-m4) - (import chicken scheme) + (import scheme chicken.base) (define-syntax foo-m4 (ir-macro-transformer (lambda (e i c) diff --git a/tests/scrutiny-tests.scm b/tests/scrutiny-tests.scm index 546c5238..ef4e0d96 100644 --- a/tests/scrutiny-tests.scm +++ b/tests/scrutiny-tests.scm @@ -132,7 +132,7 @@ ;; Checking whether reported line numbers inside modules are correct (module foo (blabla) - (import chicken scheme) + (import scheme) (define (blabla) (+ 1 'x))) @@ -140,7 +140,7 @@ ;; ;; Custom types defined in modules need to be resolved during canonicalization (module bar () - (import chicken scheme) + (import scheme chicken.type) (define-type footype string) (the footype "bar")) diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm index 9e750b17..9bc25f0e 100644 --- a/tests/syntax-tests.scm +++ b/tests/syntax-tests.scm @@ -528,11 +528,11 @@ ;;; (reported by Jack Trades) (module prefixed-self-reference1 (a b c) - (import scheme (prefix chicken c:)) + (import scheme (prefix chicken.base c:)) (c:define-values (a b c) (values 1 2 3)) ) (module prefixed-self-reference2 () - (import scheme (prefix chicken c:) (prefix (chicken condition) c:)) + (import scheme (prefix (chicken base) c:) (prefix (chicken condition) c:)) (c:define-values (a b c) (values 1 2 3)) (c:print "ok") (c:condition-case @@ -541,8 +541,7 @@ (module prefixed-self-reference3 (a) ;; TODO: Switch this around when plain "chicken" has been removed - ;(import (prefix scheme s.) (prefix (chicken condition) c.)) - (import (prefix scheme s.) (prefix chicken c.)) + (import (prefix scheme s.) (prefix (chicken condition) c.)) (s.define (a x y) (c.condition-case (s.+ x y) ((exn) "not numbers"))) ) @@ -722,7 +721,7 @@ ;; Literal quotation of a symbol, injected or not, should always result in that symbol (module ir-se-test (run) - (import chicken scheme) + (import scheme chicken.base) (define-syntax run (ir-macro-transformer (lambda (e i c) @@ -1148,7 +1147,7 @@ other-eval ;; #852: renamed macros should not be returned as first-class ;; objects in the interpreter (module renamed-macros (renamed-macro-not-firstclassed) - (import chicken scheme) + (import scheme chicken.base) (define-syntax renamed-macro-not-firstclassed (er-macro-transformer (lambda (e r c) @@ -1161,7 +1160,7 @@ other-eval ;; strip-syntax can still access the original symbol. (module rename-builtins (strip-syntax-on-*) - (import chicken scheme) + (import scheme chicken.base) (define-syntax strip-syntax-on-* (ir-macro-transformer (lambda (e r c) '(quote *))))) diff --git a/types.db b/types.db index b65647e1..25aa0bdf 100644 --- a/types.db +++ b/types.db @@ -734,8 +734,6 @@ (scheme#open-output-file (#(procedure #:clean #:enforce) scheme#open-output-file (string #!rest symbol) output-port)) (scheme#close-input-port (#(procedure #:enforce) scheme#close-input-port (input-port) undefined)) (scheme#close-output-port (#(procedure #:enforce) scheme#close-output-port (output-port) undefined)) -(input-port-open? (#(procedure #:enforce) input-port-open? (input-port) boolean)) -(output-port-open? (#(procedure #:enforce) output-port-open? (output-port) boolean)) (scheme#read (#(procedure #:enforce) scheme#read (#!optional input-port) *)) @@ -927,6 +925,15 @@ (chicken.base#call/cc (#(procedure #:enforce) chicken.base#call/cc ((procedure (*) . *)) . *)) +(chicken.base#port? (#(procedure #:pure #:predicate port) chicken.base#port? (*) boolean)) + +(chicken.base#input-port-open? (#(procedure #:enforce) chicken.base#input-port-open? (input-port) boolean)) +(chicken.base#output-port-open? (#(procedure #:enforce) chicken.base#output-port-open? (output-port) boolean)) + +(chicken.base#get-output-string (#(procedure #:clean #:enforce) chicken.base#get-output-string (output-port) string)) +(chicken.base#open-input-string (#(procedure #:clean #:enforce) chicken.base#open-input-string (string #!rest) input-port)) +(chicken.base#open-output-string (#(procedure #:clean) chicken.base#open-output-string (#!rest) output-port)) + (chicken.base#current-error-port (#(procedure #:clean #:enforce) chicken.base#current-error-port (#!optional output-port boolean boolean) output-port) ((output-port) (let ((#(tmp1) #(1))) @@ -934,6 +941,8 @@ #(tmp1)))) (() ##sys#standard-error)) +(chicken.base#flush-output (#(procedure #:enforce) chicken.base#flush-output (#!optional output-port) undefined)) + (chicken.base#enable-warnings (#(procedure #:clean) chicken.base#enable-warnings (#!optional *) *)) (chicken.base#error (procedure chicken.base#error (* #!rest) noreturn)) @@ -1166,8 +1175,6 @@ (file-exists? (#(procedure #:clean #:enforce) file-exists? (string) (or false string))) (directory-exists? (#(procedure #:clean #:enforce) directory-exists? (string) (or false string))) -(flush-output (#(procedure #:enforce) flush-output (#!optional output-port) undefined)) - ;; flonum @@ -1307,8 +1314,6 @@ (chicken.fixnum#fx*? (#(procedure #:pure) chicken.fixnum#fx*? ((or fixnum false) (or fixnum false)) (or fixnum false))) (chicken.fixnum#fx/? (#(procedure #:clean) chicken.fixnum#fx/? ((or fixnum false) (or fixnum false)) (or fixnum false))) -(get-output-string (#(procedure #:clean #:enforce) get-output-string (output-port) string)) - ;; keyword (chicken.keyword#get-keyword (#(procedure #:clean #:enforce) chicken.keyword#get-keyword (symbol list #!optional *) *)) @@ -1364,21 +1369,8 @@ (chicken.flonum#minimum-flonum float) (chicken.fixnum#most-negative-fixnum fixnum) (chicken.fixnum#most-positive-fixnum fixnum) -(open-input-string (#(procedure #:clean #:enforce) open-input-string (string #!rest) input-port)) -(open-output-string (#(procedure #:clean) open-output-string (#!rest) output-port)) (parentheses-synonyms (#(procedure #:clean) parentheses-synonyms (#!optional *) *)) -(port-name (#(procedure #:clean #:enforce) port-name (#!optional port) *) - ((port) (##sys#slot #(1) '3))) - -(port-position (#(procedure #:clean #:enforce) port-position (#!optional port) fixnum fixnum)) - -(port? (#(procedure #:pure #:predicate port) port? (*) boolean)) - -(port-closed? (#(procedure #:clean #:enforce) port-closed? (port) boolean) - ((port) (scheme#eq? (##sys#slot #(1) '8) '0))) - - ;; gc (chicken.gc#current-gc-milliseconds (#(procedure #:clean) chicken.gc#current-gc-milliseconds () integer)) @@ -1394,9 +1386,6 @@ (chicken.repl#reset-handler (#(procedure #:clean #:enforce) chicken.repl#reset-handler (#!optional (procedure () . *)) procedure)) (chicken.repl#quit (procedure chicken.repl#quit (#!optional *) noreturn)) -(set-port-name! (#(procedure #:clean #:enforce) set-port-name! (port string) undefined) - ((port string) (##sys#setslot #(1) '3 #(2)))) - (sleep (#(procedure #:clean #:enforce) sleep (fixnum) undefined)) @@ -1848,6 +1837,7 @@ (forall (a b) (#(procedure #:enforce) chicken.port#port-map ((procedure (a) b) (procedure () a)) (list-of b)))) (chicken.port#port-fold (#(procedure #:enforce) chicken.port#port-fold ((procedure (* *) *) * (procedure () *)) *)) +(chicken.port#port-position (#(procedure #:clean #:enforce) chicken.port#port-position (#!optional port) fixnum fixnum)) (chicken.port#make-bidirectional-port (#(procedure #:clean #:enforce) chicken.port#make-bidirectional-port (input-port output-port) (refine (input output) port))) (chicken.port#make-broadcast-port (#(procedure #:clean #:enforce) chicken.port#make-broadcast-port (#!rest output-port) output-port)) (chicken.port#make-concatenated-port (#(procedure #:clean #:enforce) chicken.port#make-concatenated-port (port #!rest input-port) input-port)) @@ -1859,6 +1849,18 @@ (chicken.port#with-output-to-string (#(procedure #:enforce) chicken.port#with-output-to-string ((procedure () . *)) string)) (chicken.port#with-error-output-to-string (#(procedure #:enforce) chicken.port#with-error-output-to-string ((procedure () . *)) string)) +(chicken.port#port-closed? + (#(procedure #:clean #:enforce) chicken.port#port-closed? (port) boolean) + ((port) (scheme#eq? (##sys#slot #(1) '8) '0))) + +(chicken.port#port-name + (#(procedure #:clean #:enforce) chicken.port#port-name (#!optional port) *) + ((port) (##sys#slot #(1) '3))) + +(chicken.port#set-port-name! + (#(procedure #:clean #:enforce) chicken.port#set-port-name! (port string) undefined) + ((port string) (##sys#setslot #(1) '3 #(2)))) + ;; errno (chicken.errno#errno/2big fixnum) diff --git a/user-pass.scm b/user-pass.scm index 6b1f0e74..88342660 100644 --- a/user-pass.scm +++ b/user-pass.scm @@ -32,7 +32,7 @@ user-pass user-post-analysis-pass) -(import scheme chicken) +(import scheme chicken.base) (define user-options-pass (make-parameter #f)) (define user-read-pass (make-parameter #f)) -- 2.11.0