[R6RS] Core/library split

Anton van Straaten anton at appsolutions.com
Mon Aug 14 00:42:42 EDT 2006

Mike wrote:
> First off, I'm increasingly uncomfortable with the term "core
> language" as it usually does suggest some "semantic core" as opposed
> to something "minimally useful," which is what we've been doing.  A
> semantic core will show up in the report as a basis for the formal
> semantics, but I expect it won't be very useful as, say, a library one
> could import.  I suggest the term "base language" or "base library"
> for what we're doing.  I'll use "base library" for this note to
> distinguish it from "core language." 

I was going to suggest the same thing.

> The term "base library" is still ambiguous, as Anton's proposal has
> several libraries that fit the description.  I think there are too
> many of them, and this has confused the discussion in the past, as I
> now realize reading Anton's files more closely.  The one that I would
> like to see as the "base library" is somewhere between Anton's
> `r6rs-small' and `r6rs' libraries; rationale below.  

Just to recap on the history of the proposal: I originally proposed 
something smaller that was more like a "core", although it was closer to 
R5RS than to a true semantic core.  Other editors were more inclined to 
have a larger core, and various things were added to that core as a 
result of discussion.  The consensus was that a user who wanted to start 
out with a smaller library would use the library system to exclude 
unwanted stuff.

I think a smaller base could make sense, though.  I'll review the 
proposed changes and reply further later today (Monday).

> The concept of
> lumping everything R6RS into a "r6rs-big" library seems OK, but would
> not be useful to me personally.  Base libraries other than those
> confuse more than they help, I think.

The exact mix of those "combo" libraries depends a lot on what's in the 
base.  The original small/medium/large distinction is mostly a hangover 
from the original proposal, which had a smaller core.  The general idea 
is just that there'll be something which we call the base, which will 
presumably exclude *some* things.  The more it excludes, the more useful 
additional combo libraries are likely to be.  If we're set on having 
r6rs-big, and if the base is big enough, it's possible nothing else will 
be needed.  However, if the "average program" has the choice between 
specifying something like r6rs-big, or specifying a long list of 
imports, then I can see an argument for providing an in-between library.


More information about the R6RS mailing list