[R6RS] Core/library split
Anton van Straaten
anton at appsolutions.com
Mon Aug 14 00:42:42 EDT 2006
> 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
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