[R6RS] Re: Library contents (exports)
Anton van Straaten
anton at appsolutions.com
Tue Jun 13 04:31:15 EDT 2006
Last week, I wrote:
> I've checked a couple of files into svn under draft/corelib:
> library-contents.html and library-contents.scm. The latter is just
> Scheme data. These files simply list all the exports from (most of) the
> libraries identified so far.
I've checked in much more complete versions of these files, listing 21
libraries, with 774 identifiers (including, for completeness, some
#\characters and other lexical tokens). See the html file for a quick
This level of detail naturally raises factoring issues, many of which
are yet to be addressed. Some issues in the current verion:
* The list library contains the proposed SRFI-1 subset, but there's not
much reason for those to be separate from procedures currently in the
core, such as map and for-each.
* I was originally in favor of putting syntax such as 'when' and
'unless' in a library, but unless an additional library is created for
them ("misc-syntax"?), the core is the only natural place for them in
the current design.
* There's an argument for putting all of the R6RS type predicates in the
core, but currently numeric predicates like exact?, inexact?, flonum?
and fixnum? are scattered amongst the various arithmetic libraries,
following the structure of the SRFI. Related to this, generic
arithmetic is currently listed outside of the core, mainly for
simplicity while working on it, rather than any decision about its
* Integration of the I/O proposal will require some decisions. E.g.
SRFI 81 (Port I/O) deprecates the notion of "current" i/o ports.
Provisionally, affected procedures (including READ and WRITE) have
either been listed in the r5rs-compatibility library, or in one of two
non-library classifications, "unallocated" and "obsolete".
* The r6rs-small, r6rs, and r6rs-big libraries are not yet listed in the
library-contents files. They're simply compositions of the other
libraries, though, as specified in core-library.txt.
More information about the R6RS