From: Martin C. <cra...@co...> - 2009-02-02 20:31:47
|
Gbor Melis wrote on Mon, Feb 02, 2009 at 08:43:30PM +0100: > On Lunes 02 Febrero 2009, Martin Cracauer wrote: > > Gbor Melis wrote on Mon, Feb 02, 2009 at 06:53:25PM +0100: > > > On Lunes 02 Febrero 2009, Martin Cracauer wrote: > > > > I apologize for giving feedback so late, there's a bit of a > > > > backlog here. > > > > > > > > I didn't find any discussion of the following patch. It hurts > > > > performance badly, a straight 4% for my employer's overall mix. > > > > Given that we only do a certain amount of foreign calls this > > > > seems to slow down actual calls by an order of magnitude. On top > > > > of that, it conses. That call to cons in > > > > invoke-with-saved-fp-and-pc is a real killer. > > > > > > > > I hope I didn't overlook a previous discussion, but can we > > > > re-hash why this is required? Since it is labeled as a hack, I > > > > assume that a better solution is possible but hasn't been > > > > implemented yet? > > > > > > > > Maybe we can introduce a switch so that the extended marking is > > > > only done when debug == 3? > > > > > > It's actually not the consing but accessing and binding that > > > special what > > > hurts. > > > > But that would break if a piece of C code would ever call back into > > Lisp and the Lisp code spawns a new thread, right? > > New threads don't inherit specials, if that's what you mean. Yes, so if you create threads (in Lisp or C) with the binding in effect it'll be lost. Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer <cra...@co...> http://www.cons.org/cracauer/ FreeBSD - where you want to go, today. http://www.freebsd.org/ |