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

Re: semantics and portability

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/