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