[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).