On Sep 26, 2008, at 9:23 AM, Marc Feeley wrote:
Another point I want to make is that Cheney on the MTA give you
"free" call/cc only after paying a premium on other things, namely
stack-like behaving function calls and tail-calls. Because typical
code, and even realistic call/cc intensive code such as a thread
system, do much more of these other things than calling call/cc,
the overall performance of the system is suboptimal in general.
With the latest set of benchmark results on 51 benchmark programs,
in "r6rs" mode Chicken is 2.7 times slower than Gambit on average
(geometric mean). That's the cost of "free" call/cc.
Marc:
I'd just like to point out here that, as I'm sure you're aware,
there are many different implementation decisions that are made in
each of Chicken and Gambit and it is unlikely that any speed
difference between the two can be attributed to any single design
decision. The choice of "free" call/cc via Cheney on the MTA may,
indeed, be an implementation choice that affects adversely nearly
all other aspects of an implementation (which I doubt), but that
could only be determined after quite a bit of analysis.
Brad