[#62297] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap. — Eric Wong <normalperson@...>
nari@ruby-lang.org wrote:
7 messages
2014/05/02
[#62307] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
— SASADA Koichi <ko1@...>
2014/05/03
(2014/05/03 4:41), Eric Wong wrote:
[#62402] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
— Eric Wong <normalperson@...>
2014/05/05
SASADA Koichi <ko1@atdot.net> wrote:
[#62523] [ruby-trunk - Feature #9632] [PATCH 0/2] speedup IO#close with linked-list from ccan — ko1@...
Issue #9632 has been updated by Koichi Sasada.
3 messages
2014/05/11
[#62556] doxygen (Re: Re: [ruby-trunk - Feature #9632] [PATCH 0/2] speedup IO#close with linked-list from ccan) — Tanaka Akira <akr@...>
2014-05-11 8:50 GMT+09:00 Eric Wong <normalperson@yhbt.net>:
3 messages
2014/05/13
[#62727] [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl — Eric Wong <normalperson@...>
rb_unlink_method_entry may cause old_me to be swept before the new
7 messages
2014/05/24
[#63039] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— SASADA Koichi <ko1@...>
2014/06/10
Hi,
[#63077] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— Eric Wong <normalperson@...>
2014/06/10
SASADA Koichi <ko1@atdot.net> wrote:
[#63086] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— SASADA Koichi <ko1@...>
2014/06/11
(2014/06/11 4:47), Eric Wong wrote:
[#63087] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— Eric Wong <normalperson@...>
2014/06/11
SASADA Koichi <ko1@atdot.net> wrote:
[#62862] [RFC] README.EXT: document rb_gc_register_mark_object — Eric Wong <normalperson@...>
Any comment on officially supporting this as part of the C API?
5 messages
2014/05/30
[ruby-core:62768] [ruby-trunk - Bug #1893] Recursive Enumerable#join is surprising
From:
naruse@...
Date:
2014-05-27 03:18:05 UTC
List:
ruby-core #62768
Issue #1893 has been updated by Yui NARUSE.
Related to Feature #7226: Added #join method as a shortcut for to_a.join added
----------------------------------------
Bug #1893: Recursive Enumerable#join is surprising
https://bugs.ruby-lang.org/issues/1893#change-46886
* Author: Jeremy Kemper
* Status: Closed
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version:
* ruby -v: ruby 1.9.2dev (2009-08-06) [i386-darwin9.7.0]
* Backport:
----------------------------------------
=begin
>> Bar = Struct.new(:a, :b)
=> Bar
>> bars = [Bar.new('1', '2'), Bar.new('3', '4')]
=> [#<struct Bar a="1", b="2">, #<struct Bar a="3", b="4">]
>> bars * '--'
=> "1--2--3--4"
Surprising? It looks like joining Arrays not Structs. Let's define to_s:
>> class Bar; def to_s; 'foo' end end
=> nil
>> bars * '--'
=> "1--2--3--4"
Doesn't work! Strange. But remove to_a and it works!
>> class Bar; undef_method :to_a end
=> Bar
>> bars * '--'
=> "foo--foo"
Also note that defining to_str works because ary_join_1 checks rb_check_string_type first, then rb_check_convert_type:
>> class Bar; def to_str; 'baz' end end
=> nil
>> bars * '--'
=> "baz--baz"
See r23951 for the change:
* array.c (ary_join_1): recursive join for Enumerators (and objects with #to_a).
There are two solutions:
* remove Struct#to_a, or
* tighten the recursive join check for arrays
I think we need a to_ary (like to_str) for the recursive array case instead of using to_a.
=end
--
https://bugs.ruby-lang.org/