[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>

15 messages 2001/03/01

[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>

I wrote on this newsgroup last weekend about how I was considering using

11 messages 2001/03/04

[#12023] French RUG ? — "Jerome" <jeromg@...>

Hi fellow rubyers,

16 messages 2001/03/05

[#12103] disassembling and reassembling a hash — raja@... (Raja S.)

Given a hash, h1, will the following always hold?

20 messages 2001/03/06

[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>

Ruby is, indeed, a very well designed language.

64 messages 2001/03/07
[#12250] Re: FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1> 2001/03/07

>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:

[#12284] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"

[#12289] Re: FEATURE REQUEST: 'my' local variables — matz@... (Yukihiro Matsumoto) 2001/03/08

Hi,

[#12452] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/12

In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"

[#12553] Re: FEATURE REQUEST: 'my' local variables — Dave Thomas <Dave@...> 2001/03/13

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#12329] Math package — Mathieu Bouchard <matju@...>

18 messages 2001/03/09

[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>

Hi,

19 messages 2001/03/09
[#12374] Re: Haskell goodies, RCR and challenge — matz@... (Yukihiro Matsumoto) 2001/03/10

Hi,

[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>

Ruby-san:

20 messages 2001/03/09

[#12444] class variables — Max Ischenko <max@...>

14 messages 2001/03/12

[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>

17 messages 2001/03/14

[#12635] email address regexp — "David Fung" <dfung@...>

i would like to locate probable email addresses in a bunch of text files,

12 messages 2001/03/14

[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>

I just read this story on Slashdot

14 messages 2001/03/14
[#12651] Re: police warns you -- Perl is dangerous!! — pete@... (Pete Kernan) 2001/03/14

On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:

[#12691] Re: police warns you -- Perl is dangerous!! — "W. Kent Starr" <elderburn@...> 2001/03/15

On Wednesday 14 March 2001 15:40, Pete Kernan wrote:

[#12709] [OFFTOPIC] Re: police warns you -- Perl is dangerous!! — Stephen White <spwhite@...> 2001/03/16

On Fri, 16 Mar 2001, W. Kent Starr wrote:

[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>

>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====

18 messages 2001/03/14

[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>

I have a project that I'm working on that needs to live two different lives,

30 messages 2001/03/16

[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>

14 messages 2001/03/19

[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>

This code comes from the online code examples for

16 messages 2001/03/20
[#12896] Re: differences between range and array — "Hee-Sob Park" <phasis@...> 2001/03/20

[#12899] Re: differences between range and array — Jim Freeze <jim@...> 2001/03/20

On Tue, 20 Mar 2001, Hee-Sob Park wrote:

[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>

Attached is a little Spike that Chet and I are doing. It is a

13 messages 2001/03/20

[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>

Well, here's my first major contribution to the Ruby world: Lapidary. It's a

16 messages 2001/03/20

[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>

15 messages 2001/03/21

[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>

Hi all,

21 messages 2001/03/25
[#13197] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

> Hi Dan,

[#13203] Re: Reading a file backwards — Mathieu Bouchard <matju@...> 2001/03/25

On Sun, 25 Mar 2001, Daniel Berger wrote:

[#13210] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

"Mathieu Bouchard" <matju@sympatico.ca> wrote in message

[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>

I'd like to do the following:

15 messages 2001/03/31

[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>

Is it possible in ruby to make use of constructs that correspond to

14 messages 2001/03/31

[ruby-talk:12370] Re: Q re looping structures

From: "Benjamin J. Tilly" <ben_tilly@...>
Date: 2001-03-10 04:46:37 UTC
List: ruby-talk #12370
>===== Original Message From "Christoph Rippel" <crippel@primenet.com> =====
>> From: Benjamin J. Tilly [mailto:ben_tilly@operamail.com]
[...]
>> I remain unconvinced that this scheme stinks.
>Because it breaks current code - big time
>
>p ([1,[1]] == [1,[1,[1]])  # => false current ruby
>
>p ([1,[1]] == [1,[1,[1]])  # => true with Ben's id caching

That has to be a bug..yup.   In Array's eq? method I
loop over 0...(length - 1), I should be looping over
0...length instead.

My apologies for that.

[...]
>Right now at least the interpreter is crashing -
>if a dubious equality notion is introduced some
>scriot will produce garbage because RCO violate
>basic Container axioms (and you know this as well
>as I do).

I already gave the example of a directory structure.
Recursive data structures are widely used, and a
friend verified for me that it is common to use a
caching algorithm like the one I coded.  (Hopefully
without that bug.)

>The basic problem is the following - lets say
>
>a = [1]; a <<a
>b = [1]; bm =[1]; b << bm;  bm << b;
>
>then with any id-caching you will get
>p  a== b  # => true
>
>From this you cleverly conclude that if set
>
>a[0] = 2; b [0] = 2
>
>then  ``a == b'' right?  - but wrong with
>id-caching - admittedly Ruby has a lot of side
>effects but to support something like this is
>just nonsense IMHO.
>
But Ruby already does:

  x = [1]
  a = [x, x]
  b = [[1], [1]]
  p (a == b) # => true
  a[0][1] = 2
  b[0][1] = 2
  p (a == b) # => false

which is the same error.  In other words == does not
currently take into account issues with deep copies vs
shallow copies except when it causes a crash.  With id
caching == does not take into account issues with deep
copies vs shallow copies and it doesn't crash.

Which behaviour is better?

[...]
>> In what you cut out I did construct them I thought.
>I know - I was thinking of [[[..],2],1]
>
Ah, that is a lot harder.  You can do it with streams,
but then you don't use the default array comparisons,
so we need not worry about it. :-)

[...]
>I only added three ``\'' at the ? to make it work ...

This is interesting.  On Linux with 1.6.1 I do not need
those, now I do.  The issue is that Ruby used to understand
that the line extended when you do this:

  return test ?
    this :
    that

but no longer seems to.  One of my (few and in this case it
is far too late to change) irritations is that Ruby lacks a
simple end of expression rule.  I would far prefer always
typing a ;, or having to always use \ for end of line, than
having it be so ambiguous in some cases.

>-----------------
>$ ruby bad_equal.rb
>true
>true
>-----------------
>require 'Ben'
>def cl( a, n)
>   base=loop= [a.clone]
>   (n-1).times { tmp = [a.clone]; loop << tmp; loop = tmp }
>   loop << base
>   base
>end
>
>p (cl("a",1) == cl("a",101))  # all id-cachings have this problem

Is this a problem?

>p ([1,[1]] == [1,[1,[1]]])

And the bug.

[...]
>class Array
[...]
>  def eq? (other, cache)
>    if (other.kind_of? (Array) and length == other.length)
>      if (id != other.id and not cache.visited? (id, other.id))
>        for i in 0...(length - 1) do
                  ^^^^^^^^^^^^^^^^
Make that ".." or remove the "- 1" and try again.

>          return false unless self[i].eq? (other[i], cache)
[...]

Cheers,
Ben

-------------------------------------------
The Fastest Browser on Earth now for FREE!!
Download Opera 5 for Windows now! Get it at
http://www.opera.com/download/
-------------------------------------------

In This Thread

Prev Next