[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: semantics and portability

This page is part of the web mail archives of SRFI 22 from before July 7th, 2015. The new archives for SRFI 22 contain all messages, not just those from before July 7th, 2015.

sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx (Michael Sperber [Mr. Preprocessor]) writes:

> Marc> 1) What if an implementation is not **completely** compliant to R5RS
> Marc>    (basically all the implementations of Scheme... some aren't
> Marc>    properly tail-recursive, some don't have call/cc, some don't
> Marc>    parse tokens exactly as required, etc.).  Does this mean it
> Marc>    can't conform to SRFI 22?
> Yes, that's what it means.  I'll specify this more clearly in the next
> revision.  I don't see any point in dealing with proper subsets of
> R5RS if we want scripts to be able to run.

Well, it is likely that 99%+ of useful scripts do not need full
tail-calls or call/cc.  Also, some implementation may be able to
support tail-calls and full call/cc but much slower.

What about the optional features of r5rs?  The same arguments apply
to being able to handle say bignums or complex numbers.  Again, 99%
of useful scripts probably need neither, and many Scheme implementations
do not support them.  Does --r5rs require the optional features?

Perhaps we should have an option (or default) to specify
"mini-Scheme": r4rs minus optional features minus call/cc (except
perhaps for exits) and minus tail-calls (except self-tail-calls in do,
let, or named function).
	--Per Bothner
per@xxxxxxxxxxx   http://www.bothner.com/~per/