[#10492] Ruby 1.8.6 preview3 has been released — "Akinori MUSHA" <knu@...>

Hi,

26 messages 2007/03/04
[#10500] Re: Ruby 1.8.6 preview3 has been released — Hugh Sasse <hgs@...> 2007/03/05

On Mon, 5 Mar 2007, Akinori MUSHA wrote:

[#10507] Dynamic Array#join with block — <noreply@...>

Patches item #9055, was opened at 2007-03-05 19:57

12 messages 2007/03/05
[#10520] Re: [ ruby-Patches-9055 ] Dynamic Array#join with block — Nobuyoshi Nakada <nobu@...> 2007/03/06

Hi,

[#10594] grave bug in 1.8.6's thread implementation — Sylvain Joyeux <sylvain.joyeux@...4x.org>

In ext/thread/thread.c, remove_one leaves the list in an inconsistent state.

15 messages 2007/03/14
[#10596] Re: [PATCH] grave bug in 1.8.6's thread implementation — MenTaLguY <mental@...> 2007/03/14

On Thu, 15 Mar 2007 00:15:57 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:

[#10597] Re: [PATCH] grave bug in 1.8.6's thread implementation — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2007/03/14

> > The fix is in thread-mutex-remove_one.diff.

[#10598] Re: [PATCH] grave bug in 1.8.6's thread implementation — MenTaLguY <mental@...> 2007/03/14

On Thu, 15 Mar 2007 01:19:04 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:

[#10599] Re: [PATCH] grave bug in 1.8.6's thread implementation — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2007/03/14

On Wednesday 14 March 2007 17:29, MenTaLguY wrote:

[#10600] Re: [PATCH] grave bug in 1.8.6's thread implementation — MenTaLguY <mental@...> 2007/03/14

On Thu, 15 Mar 2007 01:48:42 +0900, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:

[#10615] Multiton in standard library — TRANS <transfire@...>

Hi--

16 messages 2007/03/15
[#10619] Re: Multiton in standard library — Tom Pollard <tomp@...> 2007/03/16

[#10620] Re: Multiton in standard library — TRANS <transfire@...> 2007/03/16

On 3/15/07, Tom Pollard <tomp@earthlink.net> wrote:

[#10646] Marshal.dump shouldn't complain about singletons if the _dump method is defined — <noreply@...>

Bugs item #9376, was opened at 2007-03-19 15:58

12 messages 2007/03/19
[#10647] Re: [ ruby-Bugs-9376 ] Marshal.dump shouldn't complain about singletons if the _dump method is defined — Urabe Shyouhei <shyouhei@...> 2007/03/19

noreply@rubyforge.org wrote:

[#10648] Re: [ ruby-Bugs-9376 ] Marshal.dump shouldn't complain about singletons if the _dump method is defined — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2007/03/19

On Monday 19 March 2007 18:01, Urabe Shyouhei wrote:

[#10651] Re: [ ruby-Bugs-9376 ] Marshal.dump shouldn't complain about singletons if the _dump method is defined — Yukihiro Matsumoto <matz@...> 2007/03/19

Hi,

[#10665] Re: [ ruby-Bugs-9376 ] Marshal.dump shouldn't complain about singletons if the _dump method is defined — "Chris Carter" <cdcarter@...> 2007/03/20

On 3/19/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#10712] Ruby Method Signatures (was Re: Multiton in standard library) — "Rick DeNatale" <rick.denatale@...>

On 3/19/07, TRANS <transfire@gmail.com> wrote:

10 messages 2007/03/21
[#10715] Re: Ruby Method Signatures (was Re: Multiton in standard library) — Jos Backus <jos@...> 2007/03/22

On 3/19/07, TRANS <transfire@gmail.com> wrote:

[#10798] Virtual classes and 'real' classes -- why? — "John Lam (CLR)" <jflam@...>

I was wondering if someone could help me understand why there's a parallel =

12 messages 2007/03/28
[#10799] Re: Virtual classes and 'real' classes -- why? — MenTaLguY <mental@...> 2007/03/28

On Thu, 29 Mar 2007 04:44:16 +0900, "John Lam (CLR)" <jflam@microsoft.com> wrote:

Re: [ ruby-Patches-9055 ] Dynamic Array#join with block

From: "Farrel Lifson" <farrel.lifson@...>
Date: 2007-03-06 13:00:15 UTC
List: ruby-core #10528
On 06/03/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
> >  [1,3,2,4].join(' which is X than '){|sep,a,b| a > b ? sep.sub(/X/,"#{a-b} more") : sep.sub(/X/,"#{b-a} less")}
> > which produces
> >  1 which is 2 less than 3 which is 1 more than 2 which is 2 less than 4
>
> That example seems to fit #inject better.

This example can use inject  (see bleow)  however inject does not
handle the recursive 'flattening' functionality that the current
implementation of join has when it encounters nested arrays in the
general case. For instance
 [[1,2],[3,4]].join(',')
produces
 "1,2,3,4"
and the patch handles things the same way
 [[1,3],[2,4]].join{|sep,a,b| a > b ? ">" : "<"}
will produce
 "1<3>2<4"

If you tried to use inject to do this it would probably get hairy. I
implemented the example given using inject and it doesn't look that
pretty:
ary = [1,3,2,4];idx=1
result = ary.inject("") do |memo,num|		
	memo += "#{num}" + (idx < ary.length ? " which is" + ((num >
ary[idx]) ? " #{num - ary[idx]} more" : " #{ary[idx] - num} less") + "
than " : "")
	idx+=1			
	memo
end	

Trying to deal with possible recursive flattening cases would probably
make it look worse.

> > The parameters passed into the block are the separator string (sep)
> > which is the parameter passed to the join method, and the two elements
> > (a,b) between which sep will be inserted.
>
> It sounds like sep can't be omitted.  I guess it might be nice
> if ary.join(*seps) yields a, b, *seps.

That does sound like a better option. I'll modify the patch to try
this although do you think it would be best to keep as just a single
sep rather than a seps array so it does not diverge too much from the
nature of the original join method. In the previous thread I started
on this patch it seems most people don't like passing the sep
character in at all but your suggestion seems like a nice approach to
me.

Thanks,
Farrel

Farrel

In This Thread