[#28561] Ruby::DL vs Ruby::FFI — Aston <blackapache512-ticket@...>

Ruby.DL and FFI libraries are great for programmers like me who are not internet programmers, but are more interested in scientific and number processing etc.

11 messages 2010/03/08

[#28686] trunk (26947) build fail with msys/mingw/vista — Jon <jon.forums@...>

I get the following build failure when msysgit's "c:\git\cmd" dir is on PATH.

8 messages 2010/03/16

[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:28936] [Bug #1393] Multiple assignment does not call to_a but to_ary

From: Yusuke Endoh <redmine@...>
Date: 2010-03-24 16:23:22 UTC
List: ruby-core #28936
Issue #1393 has been updated by Yusuke Endoh.

Category set to core
Assigned to changed from Koichi Sasada to Yukihiro Matsumoto

Hi,

2009/4/21 Vincent Isambart <redmine@ruby-lang.org>:
> In Ruby 1.9, when Ruby is expecting an array and does not get one (for example in splat arguments), it calls the to_a method on the object.
> For example, if x is not an array, "y = *x" tries to call x.to_a.
> However, in multiple assignments, it does not try to call to_a but to_ary.
> For example, "*y = x" tries to call x.to_ary.

This issue is still reproducable:

  obj = Object.new
  def obj.to_a; [1, 2]; end
  def obj.to_ary; [3, 4]; end
  def foo(x, y); p [x, y]; end

  a, b = *obj; p [a, b]  #=> [1, 2] on 1.9, [3, 4] on 1.8
  foo(*obj)              #=> [1, 2] on 1.9, [3, 4] on 1.8


> Should not Ruby try to call to_a in both cases? It looks like a bug to me.

Agreed.  I think that to_ary should be called because the both cases do
implicit conversion.


> Is there a particular reason this was done?

I guess that it is just a slip-up when removing to_splat (r14063).

Matz, is my guess correct?
Yugui, do you allow the spec change (fix) in 1.9.2?


FYI: if this is fixed, 21 failures/errors occur on RubySpec.
They depend on the current behavior implicitly and explicitly, such as:

  [*nil].should == []

  a = loop do break *nil; end; a.should == []

  obj = Object.new
  def obj.to_a
    [1, 2]
  end
  return *obj

-- 
Yusuke ENDOH <mame@tsg.ne.jp>
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1393

----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next