[#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:28625] Re: [Bug #1893] Recursive Enumerable#join is surprising

From: Yusuke ENDOH <mame@...>
Date: 2010-03-12 09:17:16 UTC
List: ruby-core #28625
Hi,

2010/3/12 Yukihiro Matsumoto <matz@ruby-lang.org>:
> In message "Re: [ruby-core:28622] Re: [Bug #1893] Recursive Enumerable#join is surprising"
>  on Fri, 12 Mar 2010 12:25:00 +0900, Yusuke ENDOH <mame@tsg.ne.jp> writes:
>
> |2010/3/12 Yukihiro Matsumoto <matz@ruby-lang.org>:
> |> We should do something:
> |>
> |>  (a) revert and remove Enumerable#join altogether, leaving Array#join.
> |>  (b) make Enumerable#join not to join recursively; I think Array#join
> |>     should remain recursive join for array elements.
> |
> |
> |Thank you for remembering the issue!
> |But I like: (c) revert it and leave Enumerable#join.
>
> I am not sure what you mean by (c).

- Array#join will not call to_a.
- both Array#join and Enumerable#join will remain and recursively
  join Array (and Enumerator, if possible).


> By the way, I should have mentioned that Array#join will not call
> #to_a (but #to_ary) either we choose (a) or (b).

I see.  Good.


> |If Enumerator is similar to Array, (c-1) Enumerator#to_ary
> |should be defined.
> |Otherwise, (c-2) merely Array#join should not call to_a to
> |flatten Enumerator.
> |
> |I still prefer (c-1), though you rejected it once.
>
> Implicit conversion methods such as #to_ary and #to_str should be
> defined only when the object provides (almost) equivalent behavior
> (i.e. method set).  Enumerable and Array are not the case.

When you say two objects are "almost equivalent", do you expect duck
typing?  If they behave the same enough, we can directly call #each,
#[], #[]=, etc. without calling #to_ary.

I cannot see the reason why #to_ary is needed if the requirement for
defining #to_ary is so rigorous.
Is #to_ary just for performance?  If so, I think we should handle an
array-like object as an array even if it doesn't provide #to_ary.


I admit I'm slightly radical, but it is enough for me to think Array
and Enumerator "almost equivalent" because both have one sequence of
elements with order.  Random-access feature is not important for me
because "Array" is not already just an "array".  It serves as a set,
list, queue, assoc list, etc.

-- 
Yusuke ENDOH <mame@tsg.ne.jp>

In This Thread