On Dec 2, 2007, at 21:18 , Charles Oliver Nutter wrote: > Ryan Davis wrote: >> On Dec 2, 2007, at 09:57 , Charles Oliver Nutter wrote: >>> Exposing call frames, scoping constructs, and so on prevents any >>> implementation from minimizing or optimizing frames away. >> That's simply not true. Look at self, smalltalk, and many lisps for >> counter-examples. > > Perhaps you could provide links to a concrete example showing those > languages performing better than those that don't expose frames? Or > demonstrate to me how user-level frame objects could be exposed in > Ruby without a performance hit? Last time I checked, none of those > languages were Ruby, and none were the fastest languages around. > Faster than Ruby isn't the point, many things are faster than Ruby. > But always-present frame objects will absolutely introduce overhead > that wouldn't be there without them or if an optimizer has freedom > to remove or omit them. I'm pretty sure you can google with the best of them. You made a claim that exposing call frames etc prevents _any_ implementation from minimizing or optimizing frames away and I pointed you to specific counter examples. I never said anything about "always- present frame objects" and I never made a claim about "faster than ruby" or "without a performance hit". Please don't put words in my mouth or use these points as a straw man. None of them are relevant to your original point or my counter-examples. Self, given only one implementation (that I know of) should be concrete enough. There are a lot of papers that came from Ungar, Chambers, and cohorts that are readily available on the net or with an ACM digital library membership. Ungar's SOAR is probably also a good source, tho I'm not at home so I don't know if frame optimizations made it into SOAR or not.