Re: [Scheme-reports] Formal Response #456: Adoption of R6RS
Per Bothner 13 Oct 2012 17:08 UTC
On 10/13/2012 07:40 AM, Michael Sperber wrote:
> - Kawa supports a lot of R5RS, but not call/cc and tail calls - arguably
> two crucial features. On the above message, Per Bothner said "This is
> not a rejection of R6RS in principle [...] but a fact of limited
> resources".
Kawa does support full tail-calls in two ways:
(1) When using the --full-tailcalls options Kawa uses a trampoline-based
calling convention.
(2) Always Kawa does a moderately fairly sophisticated compile-time
analysis to detect mutual tail-recursion among a group of functions.
These are compiled to a simple JVM method, with tailcalls replaced
by gotos.
There is continuing talk in the Jave community that the JVM should
support full tailcalls natively,including by some of the major JVM
engineers:
http://mail.openjdk.java.net/pipermail/mlvm-dev/2012-August/004944.html
That would of course be much preferable, but it's going to take a while.
When it comes to full call/cc, they just haven't seemed important enough.
There is some interest due to resumable web server operations. In addition
asynchronous handlers (like C#'s await functionality) are related and
may provide further motivation.
When it comes to R6RS, Kawa has implemented a few bits, such as some
math procedure. Also R6RS's general import declaration (the general
case with renaming etc) has been implemented, but only as a stand-alone
form within a file-level implicit library module.
--
--Per Bothner
per@bothner.com http://per.bothner.com/
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports