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 e-mail: dbm@asyrmatos.com
On May 22, 2009, at 06:51, Alex Queiroz wrote:
Hallo,
On 5/22/09, Marc Feeley feeley@iro.umontreal.ca wrote:
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 http://www.ventonegro.org/ _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list