Peter Bex scripsit:

> Good question.  I guess it's a little arbitrary.  I would say the main
> difference is in the size of the standard.  r5rs or r7rs-small is a
> reasonable size to implement in full, even for smallish implementations.
> Requiring the whole of r7rs-large to be implemented seems overkill.

Sure.  Which is why I want to thoughtfully draw a line between the required
and the optional parts of the standard.

> Since it's going to be so very large, I'm unsure whether *any* Scheme
> (except, perhaps, for Racket)

Alas, the Racketeers are not even interested in R7RS-small; they consider
Racket to be a post-Scheme language.

> will implement every part of it.  

I have hopes rather for the Scheme implementations that already have
large libraries and mostly just need to repackage them, like Chicken.

> [I]t's a good idea to avoid baking in too many assumptions about
> which subset of r7rs-large is going to be implemented in any compatible
> Scheme system.

A standard is a contract between implementer and user.  Too few assumptions,
and the user suffers; too many assumptions, and the implementer suffers.
It's a Goldilocks problem:  not too large, or too small, but just right.

> [I]f things like "needs built-in bignum support" are added to the spec,
> that may cause trouble.

In principle.  But the only Schemes that are aimed at general application
development that lack bignums are Chicken and Wraith, and for Chicken
there is a straightforward workaround.  (The chance that Stalin will
ever advance beyond R4RS is practically nil.  The development community
around Stalin is about the most dysfunctional one I've ever encountered;
there isn't even a mailing list to send patches to.)

> And if it doesn't cause trouble, those parts of the spec that work with
> Chibi turn out to not really need bignum support.  So why would you
> arbitrarily require it for the entire spec, even if many libraries
> aren't dependent on it?

So that application developers can count on just having bignums, like they
can count on having call/cc or tail recursion.  Lots of implementations
of other languages do tail recursion to some degree, but the fact that
Scheme *requires* tail recursion allows a different programming style.

> But it would only not be compliant because it was declared not to be,
> for no real reason.

Equally true of any other standard feature.

-- 
John Cowan          http://www.ccil.org/~cowan        [email protected]
Yes, chili in the eye is bad, but so is your ear.  However, I would
suggest you wash your hands thoroughly before going to the toilet.
        --gadicath

_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to