1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-21 11:10:21 +02:00

Make the R6RS simple I/O library use conditions

* module/rnrs/io/ports.scm (display): Implement as an
  exception-converting wrapper around Guile's core display.
* module/rnrs/io/simple.scm: Don't export Guile's corresponding core
  procedures, but use `(rnrs io ports)' instead.  This way, we get the
  conditions required by R6RS raised.

* doc/ref/r6rs.texi (rnrs io simple): Mention that these procedures are
  supposed to raise R6RS conditions.
This commit is contained in:
Andreas Rottmann 2011-05-07 23:40:14 +02:00
parent 7be1705dbd
commit 2252321bb7
3 changed files with 82 additions and 27 deletions

View file

@ -1428,8 +1428,21 @@ functionality is documented in its own section of the manual;
The @code{(rnrs io simple (6))} library provides convenience functions
for performing textual I/O on ports. This library also exports all of
the condition types and associated procedures described in
(@pxref{I/O Conditions}).
the condition types and associated procedures described in (@pxref{I/O
Conditions}). In the context of this section, when stating that a
procedure behaves ``identically'' to the corresponding procedure in
Guile's core library, this is modulo the behavior wrt. conditions: such
procedures raise the appropriate R6RS conditions in case of error, but
otherwise behave identically.
@c FIXME: remove the following note when proper condition behavior has
@c been verified.
@quotation Note
There are still known issues regarding condition-correctness; some
errors may still be thrown as native Guile exceptions instead of the
appropriate R6RS conditions.
@end quotation
@deffn {Scheme Procedure} eof-object
@deffnx {Scheme Procedure} eof-object? obj