Strange ruby-1.9.1 array substitution answer


#1

Strange !

arr = [1,2,3,4,5]
arr[0,2] = nil
=> ruby 1.8 : arr = [3,4,5]
=> ruby 1.9 : arr = [nil, 3,4,5]

ruby -v
ruby 1.9.1 (2008-10-28 revision 19983) [i386-mswin32]


#2

Michel D. wrote:

Strange !

arr = [1,2,3,4,5]
arr[0,2] = nil
=> ruby 1.8 : arr = [3,4,5]
=> ruby 1.9 : arr = [nil, 3,4,5]

that might be a bugI’d ask the core people.
-=r


#3

On Thu, May 28, 2009 at 2:06 PM, Michel D.
removed_email_address@domain.invalidwrote:

Strange !

arr = [1,2,3,4,5]
arr[0,2] = nil
=> ruby 1.8 : arr = [3,4,5]
=> ruby 1.9 : arr = [nil, 3,4,5]

ruby -v
ruby 1.9.1 (2008-10-28 revision 19983) [i386-mswin32]

It’s a bug. They either fixed it in a more recent version or it’s a
Windows
specific issue. On my Mac it works as expected:

$ ruby1.9 -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]

$ irb

arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]

arr[0,2] = nil
=> nil

arr
=> [3, 4, 5]

Cheers,
Antonio


#4

Roger P. wrote:

It’s a bug. They either fixed it in a more recent version or it’s a
Windows
specific issue. On my Mac it works as expected:

Here’s what I get in Linux with TRUNK.

maybe macs are special? “Guess we’re not cool enough” (from commercial).
Just kidding.
Take care.
-=r

Open source … and many open ends
M.


#5

It’s a bug. They either fixed it in a more recent version or it’s a
Windows
specific issue. On my Mac it works as expected:

$ ruby1.9 -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]

$ irb

arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]

arr[0,2] = nil
=> nil

arr
=> [3, 4, 5]

Here’s what I get in Linux with TRUNK.

RUBY_DESCRIPTION
=> “ruby 1.9.2dev (2009-05-28 trunk 23601) [i686-linux]”

arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]

arr[0,2] = nil
=> nil

arr
=> [nil, 3, 4, 5]

maybe macs are special? “Guess we’re not cool enough” (from commercial).
Just kidding.
Take care.
-=r


#6

Yukihiro M. wrote:

It’s a behavior change in 1.9, use

arr[0,2] = []

instead.

          matz.

Thanks, Matz.
It is exactly what I did.
I was not aware of the change … or I forgot.

M.


#7

Hi,

In message “Re: Strange ruby-1.9.1 array substitution answer”
on Fri, 29 May 2009 03:06:18 +0900, Michel D.
removed_email_address@domain.invalid writes:

|Strange !
|
|arr = [1,2,3,4,5]
|arr[0,2] = nil
|=> ruby 1.8 : arr = [3,4,5]
|=> ruby 1.9 : arr = [nil, 3,4,5]

It’s a behavior change in 1.9, use

arr[0,2] = []

instead.

          matz.