From 5e7451167d3cd78288490bd3d028ba466e321dfe Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Fri, 23 Nov 2007 03:44:48 -0500 Subject: [PATCH] Added close-port. Updated user's guide's list of unsupported primitives. --- doc/ikarus-users-guide.pdf | Bin 222791 -> 222539 bytes doc/ikarus-users-guide.tex | 41 +++++++++++++------------------- scheme/ikarus.io-primitives.ss | 11 +++++++-- scheme/ikarus.io.input-files.ss | 7 ++++-- scheme/last-revision | 2 +- scheme/makefile.ss | 2 +- scheme/todo-r6rs.ss | 10 ++++---- 7 files changed, 38 insertions(+), 35 deletions(-) diff --git a/doc/ikarus-users-guide.pdf b/doc/ikarus-users-guide.pdf index bc00a34ccecb25266d20babdcf19fdf185d5a6c6..0c40f1fcc82e2e946225e446d1328eddf963659c 100644 GIT binary patch delta 12310 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 Zgn$F)9qf}A*_0Qi(s||Ojjc_1{|B-oQ-lBj delta 12508 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 diff --git a/doc/ikarus-users-guide.tex b/doc/ikarus-users-guide.tex index 8574358..e76a7da 100644 --- a/doc/ikarus-users-guide.tex +++ b/doc/ikarus-users-guide.tex @@ -1812,13 +1812,12 @@ missing features and procedures. -- Procedures that may construct complex numbers from non-complex arguments may signal an error or return an incorrect value (for example, \texttt{(sqrt -1)} should \emph{not} be \texttt{+nan.0}). -\item Reader does not recognize \texttt{\#!r6rs} syntax. It should -be modified to accept both \texttt{\#!r6rs} and \texttt{\#!ikarus} -so that Ikarus-specific reader features (gensym syntax, record -syntax, shared graphs, fasl objects, etc.) can be enabled/disabled as needed. \item The procedure \texttt{equal?}\ may not terminate on \texttt{equal?}\ infinite (circular) input. \item Representation of I/O ports is missing a transcoder field. +\item \texttt{number->string} does not accept the third argument +(precision). Similarly, \texttt{string->number} and the reader do +not recognize the \texttt{|p} notation. \end{itemize} \newpage \section{List of missing \rnrs{6} procedures} @@ -1836,18 +1835,18 @@ string->utf16 string->utf32 utf16->string utf32->string The following procedures are missing from \texttt{(rnrs unicode)}: \begin{Verbatim} -string-downcase string-foldcase string-titlecase string-upcase -string-normalize-nfc string-normalize-nfd -string-normalize-nfkc string-normalize-nfkd +string-downcase string-titlecase string-upcase +string-normalize-nfc string-normalize-nfd +string-normalize-nfkc string-normalize-nfkd \end{Verbatim} The following procedures are missing from \texttt{(rnrs arithmetic bitwise)}: \begin{Verbatim} -bitwise-ior bitwise-xor bitwise-if bitwise-bit-field -bitwise-copy-bit-field bitwise-bit-set? bitwise-copy-bit -bitwise-reverse-bit-field bitwise-rotate-bit-field bitwise-length +bitwise-ior bitwise-xor bitwise-if bitwise-bit-field +bitwise-copy-bit-field bitwise-copy-bit bitwise-length +bitwise-reverse-bit-field bitwise-rotate-bit-field \end{Verbatim} @@ -1860,32 +1859,26 @@ fxreverse-bit-field fxrotate-bit-field The following procedures are missing from \texttt{(rnrs hashtables)}: \begin{Verbatim} -make-eqv-hashtable make-hashtable +make-eqv-hashtable make-hashtable equal-hash hashtable-hash-function hashtable-equivalence-function -equal-hash string-hash string-ci-hash symbol-hash \end{Verbatim} The following procedures are missing from \texttt{(rnrs io ports)}: \begin{Verbatim} -call-with-bytevector-output-port call-with-string-output-port -binary-port? textual-port? port-eof? -port-has-port-position? port-position -port-has-set-port-position!? set-port-position! -call-with-port close-port -get-bytevector-all get-bytevector-some -get-bytevector-n get-bytevector-n! -lookahead-char lookahead-u8 -get-string-all get-string-n get-string-n! put-string +call-with-bytevector-output-port call-with-string-output-port +binary-port? textual-port? port-eof? +port-has-port-position? port-position +port-has-set-port-position!? set-port-position! +call-with-port lookahead-char lookahead-u8 +get-bytevector-all get-bytevector-some get-string-all make-custom-binary-input-port make-custom-binary-input/output-port make-custom-binary-output-port make-custom-textual-input-port make-custom-textual-input/output-port make-custom-textual-output-port open-bytevector-input-port open-bytevector-output-port open-file-input-port open-file-input/output-port open-file-output-port -output-port-buffer-mode -transcoded-port port-transcoderput-bytevector -standard-error-port standard-input-port standard-output-port +output-port-buffer-mode transcoded-port port-transcoderput-bytevector string->bytevector bytevector->string \end{Verbatim} diff --git a/scheme/ikarus.io-primitives.ss b/scheme/ikarus.io-primitives.ss index d0937ed..baf6bba 100644 --- a/scheme/ikarus.io-primitives.ss +++ b/scheme/ikarus.io-primitives.ss @@ -21,7 +21,7 @@ get-string-n get-string-n! get-bytevector-n get-bytevector-n! newline port-name input-port-name output-port-name - close-input-port reset-input-port! + close-input-port reset-input-port! close-port flush-output-port close-output-port get-line) (import (ikarus system $io) @@ -34,7 +34,7 @@ get-bytevector-n get-bytevector-n! newline port-name input-port-name output-port-name close-input-port reset-input-port! flush-output-port - close-output-port get-line)) + close-output-port close-port get-line)) (define write-char (case-lambda @@ -172,6 +172,13 @@ ($close-output-port p) (error 'close-output-port "not an output-port" p))])) ;;; + (define (close-port p) + (cond + [(input-port? p) ($close-input-port p)] + [(output-port? p) ($close-output-port p)] + [else (error 'close-port "not a port" p)])) + + ;;; (define flush-output-port (case-lambda [() ($flush-output-port (current-output-port))] diff --git a/scheme/ikarus.io.input-files.ss b/scheme/ikarus.io.input-files.ss index 65f5434..ac15f84 100644 --- a/scheme/ikarus.io.input-files.ss +++ b/scheme/ikarus.io.input-files.ss @@ -16,7 +16,7 @@ (library (ikarus io input-files) (export open-input-file current-input-port console-input-port - with-input-from-file call-with-input-file) + standard-input-port with-input-from-file call-with-input-file) (import (ikarus system $ports) (ikarus system $io) @@ -28,7 +28,7 @@ (except (ikarus) open-input-file current-input-port console-input-port with-input-from-file call-with-input-file - *standard-input-port* *current-input-port*)) + standard-input-port current-input-port)) (define-syntax message-case (syntax-rules (else) @@ -256,6 +256,9 @@ (define console-input-port (lambda () *standard-input-port*)) + (define standard-input-port + (lambda () *standard-input-port*)) + (define current-input-port (case-lambda [() *current-input-port*] diff --git a/scheme/last-revision b/scheme/last-revision index 79e6287..4872852 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1118 +1119 diff --git a/scheme/makefile.ss b/scheme/makefile.ss index 97738b9..7d7bf2a 100755 --- a/scheme/makefile.ss +++ b/scheme/makefile.ss @@ -1052,7 +1052,7 @@ [null-environment i r5 se] [quotient i r r5 se] [scheme-report-environment r5 se] - [close-port r ip] + [close-port i r ip] [eol-style i r ip] [error-handling-mode i r ip] [file-options i r ip] diff --git a/scheme/todo-r6rs.ss b/scheme/todo-r6rs.ss index 3d8f192..4c6ac2d 100755 --- a/scheme/todo-r6rs.ss +++ b/scheme/todo-r6rs.ss @@ -558,7 +558,7 @@ [quotient C r5 se] [scheme-report-environment C r5 se] ;;; - [close-port S ip] + [close-port C ip] [eol-style C ip] [error-handling-mode C ip] [file-options C ip] @@ -646,9 +646,9 @@ [put-string C ip] [put-u8 C ip] [set-port-position! S ip] - [standard-error-port S ip] - [standard-input-port S ip] - [standard-output-port S ip] + [standard-error-port C ip] + [standard-input-port C ip] + [standard-output-port C ip] [string->bytevector S ip] [textual-port? S ip] [transcoded-port S ip] @@ -778,7 +778,7 @@ [string-ci>=? C uc se] [string-ci>? C uc se] [string-downcase S uc] - [string-foldcase S uc] + [string-foldcase C uc] [string-normalize-nfc S uc] [string-normalize-nfd S uc] [string-normalize-nfkc S uc]