I have speculated for some time now too, after experiments with CPS based compilers on a number of occasions, that the slowdown must be due to two things:
1. All functions are now forced to accommodate the continuation parameter, whereas before a large majority of functions where niladic or unary operations,
2. The creation of the continuation arguments requires the production of a closure, which is inherently somewhat expensive.
My own work has consistently shown a 30% slowdown, independent of actual language of implementation -- be it Scheme, Lisp, or OCaml.
Dr. David McClain
Sr. VP, Embedded Systems
Asyrmatos Inc.
Boston & Tucson
phone: 520-529-2437
cell: 520-390-3995
web: www.asyrmatos.com
On May 22, 2009, at 06:51, Alex Queiroz wrote:
Hallo,
On 21-May-09, at 4:54 PM, James Long wrote:
`gsc' supports -expansion, but it seems to show the basic expansion
into normalized gambit code. Is there any way to show the fully
CPS-transformed forms of the code?
Nope. Gambit does not transform code to CPS style.
Also more of a curiosity, why? Is CPS irremediably slower? I've
been reading a lot about compiling lately...
Cheers,
--
-alex
_______________________________________________
Gambit-list mailing list