From 8edab37f17cd60cf6986da822dfbdad6067aef66 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 21 Mar 2013 12:41:05 -0400 Subject: [PATCH] Mention the non-conformance of the core SRFI-6 procedures in the manual. * doc/ref/srfi-modules.texi (About SRFI Usage): Use SRFI-13 as an example of a module which is included in core Guile, instead of SRFI-6. (SRFI-6): Mention the non-conformance of the core 'open-input-string' and 'open-output-string' procedures. Remove the claim that importing this module does nothing. Recommend that users import the module. --- doc/ref/srfi-modules.texi | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi index e60dbb4e1..059e14b6f 100644 --- a/doc/ref/srfi-modules.texi +++ b/doc/ref/srfi-modules.texi @@ -76,13 +76,13 @@ check for the Scheme implementation, that is, before she can know that it is safe to use @code{use-modules} to load SRFI support modules. The second reason is that some features defined in SRFIs had been implemented in Guile before the developers started to add SRFI -implementations as modules (for example SRFI-6 (@pxref{SRFI-6})). In +implementations as modules (for example SRFI-13 (@pxref{SRFI-13})). In the future, it is possible that SRFIs in the core library might be factored out into separate modules, requiring explicit module loading when they are needed. So you should be prepared to have to use -@code{use-modules} someday in the future to access SRFI-6 bindings. If +@code{use-modules} someday in the future to access SRFI-13 bindings. If you want, you can do that already. We have included the module -@code{(srfi srfi-6)} in the distribution, which currently does nothing, +@code{(srfi srfi-13)} in the distribution, which currently does nothing, but ensures that you can write future-safe code. Generally, support for a specific SRFI is made available by using @@ -1846,11 +1846,19 @@ uniform numeric vector, it is returned unchanged. @cindex SRFI-6 SRFI-6 defines the procedures @code{open-input-string}, -@code{open-output-string} and @code{get-output-string}. These -procedures are included in the Guile core, so using this module does not -make any difference at the moment. But it is possible that support for -SRFI-6 will be factored out of the core library in the future, so using -this module does not hurt, after all. +@code{open-output-string} and @code{get-output-string}. + +Note that although versions of these procedures are included in the +Guile core, the core versions are not fully conformant with SRFI-6: +attempts to read or write characters that are not supported by the +current @code{%default-port-encoding} will fail. + +We therefore recommend that you import this module, which supports all +characters: + +@example +(use-modules (srfi srfi-6)) +@end example @node SRFI-8 @subsection SRFI-8 - receive -- 2.20.1