From: ts Date: 2001-02-28T23:19:53+09:00 Subject: [ruby-talk:11772] Re: Comparison Caching >>>>> "B" == Ben Tilly writes: B> Why the swap? It buys you the ability to see the B> elements no matter what order they were in at the B> start, but outside of artificial benchmarks, will B> you see that? To reduce the number of entries. B> I have to wonder about this. We are defining == B> for an array. And we are creating new arrays and B> putting them in a hash, an act that causes == to B> be called on them. Your id sanity check makes that B> work, but it seems fragile. it has actually the 2 methods (but with the swap). Apparently your method is faster with b.rb B> Passing data in a thread local variable has the B> advantage that you don't need to explicitly pass a B> cache around. An Array which contain a recursive Hash and recursive Array, no ? B> The disadvantage is that if you want B> the code to behave correctly upon hitting an B> exception, you need to protect various calls. pigeon% grep rb_ensure tangle.c return rb_ensure(inspect_call, (VALUE)&iarg, protect_reset, 0); pigeon% Guy Decoux