[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11775] Re: Comparison Caching

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-02-28 14:37:33 UTC
List: ruby-talk #11775
ts <decoux@moulon.inra.fr> wrote:
>
> >>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> 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.

If the original data structures being compared do
not share data (the common case), you will get the
same number of entries either way, won't you?

>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 ?

No.  The design that Chris and I used has a set of methods
with the cache, and a parallel set without.  In Object the
parallel set with the cache is transparently aliased to the
set without.  (Just throw away the cache.)  Therefore the
same cache can be passed between arrays and hashes.  (Note
that the types work out because only object ids go in there.)

Where the design fails is if, say, an Array contains user
defined objects whose == method compares a local variable,
and those local variables contain the original Array.  Then
we create a cache, pass to a method without the cache, then
re-enter the logic but with no memory of the (currently out
of scope) cache, redo our logic, etc.  A global cannot get
into this situation.

>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%
>
And this takes time, doesn't it?

I will have to look tonight, but I suspect that if you
had parallel sets of methods you could speed your code
up.  == in Array and Hash just protect calls to a
parallel method that assumes you are protected, and in
Object that is aliased back to ==.

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next