[#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:11771] Re: Comparison Caching

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-02-28 14:07:18 UTC
List: ruby-talk #11771
ts <decoux@moulon.inra.fr> wrote:
>
> >>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:
>
>
>  This is what it do, except here
>
>B>   def visited? (this, that)
>B>     if @seen[this].nil?
>B>       @seen[this] = [ that ]
>B>     else
>B>       return true if @seen[this].include? that
>B>       @seen[this].push that
>B>     end
>B>     false
>B>   end
>
>
>      def visited?(this, that)
>         this, that = that, this if this > that

Why the swap?  It buys you the ability to see the
elements no matter what order they were in at the
start, but outside of artificial benchmarks, will
you see that?

>         return true if $seen[[this, that]]

I have to wonder about this.  We are defining ==
for an array.  And we are creating new arrays and
putting them in a hash, an act that causes == to
be called on them.  Your id sanity check makes that
work, but it seems fragile.

>	$seen[[this, that]] = true
>         false
>      end
>
>
>   $seen is a thread local variable.
>
>  I don't know which version is faster.

Passing data in a thread local variable has the
advantage that you don't need to explicitly pass a
cache around.  The disadvantage is that if you want
the code to behave correctly upon hitting an
exception, you need to protect various calls.

I suspect it is faster to have a single entry point
into needing the cache.  At that point you can choose
to either pass data around in a global variable, or
you can begin/ensure that your local is cleaned up.

A strange case.  What about a user defined type which
includes a local variable that is an array that their
== method tests?  With the global you catch that.
With the global with a defined entry point, you have
to be careful that the ensure doesn't wipe out the
global cache.  With the cache you run into possible
infinite recursion if the local variable contains
references to the global.

This is an argument for using the thread-local
global..but carefully.

I will think about this more.

Cheers,
Ben
ensure does not wipe out data from the overall test.

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

In This Thread

Prev Next