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 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