>>>>> "Rupert" == Rupert Swarbrick <rswarbrick at gmail.com> writes:
Rupert> Raymond Toy <toy.raymond at gmail.com> writes:
>>>>>>> "Dan" == Dan Gildea <dgildea at users.sourceforge.net> writes:
Dan> It looks like, using cmucl 20c, the following commit
Dan> makes cmucl take 442 seconds to execute the test suite,
Dan> whereas previously it took 125 seconds.
>>
Dan> Not sure why - other lisps do not seem to be affected.
>>
Dan> commit be0490a52b07153228dd19f5bb8145b035f1b188
Dan> Author: Rupert Swarbrick <rswarbrick at gmail.com>
Dan> Date: Fri Sep 27 00:48:56 2013 +0100
>>
>> Ouch! FWIW, I can confirm this slowdown using cmucl 20e. The test
>> suite takes 134 sec on commit cf77b9e, which is version before the
>> above commit.
>>
>> Ray
Rupert> Eek, I'm terribly sorry: I did do performance tests on sbcl and gcl (I
Rupert> think), but didn't check with cmucl.
Rupert> I'll revert the change this evening: a performance regression even in a
Rupert> single lisp isn't really ok. A pity, because the whole point was to try
Rupert> to make some of the rat code a bit easier to reason about.
Rupert> Ray: Have you any idea what makes cmucl extra slow here? I think I
Rupert> prefer the semantics of the newer code, so maybe you can suggest a way
Rupert> to do something similar without triggering whatever I hit?
Thanks for reverting. I haven't had a chance yet to dig into why your
change makes it run so slowly. Creating a condition and establishing
a handler for it seems like it could be significantly slower than just
a catch/throw, but I wouldn't expect that the conditions to be thrown
so often to cause such a slowdown.
Ray