[#39052] Fwd: [redmine4ruby-lang:253] [Bug #1914] ruby-1.9.1-p243 failed to build from source on aix 5.3 with gcc 4.2.0 — Yugui <yugui@...>

Redmine管理用プロジェクトに報告されてしまったので転送します。

12 messages 2009/08/09
[#39264] Re: Fwd: [redmine4ruby-lang:253] [Bug #1914] ruby-1.9.1-p243 failed to build from source on aix 5.3 with gcc 4.2.0 — Yutaka Kanemoto <kinpoco@...> 2009/09/08

金本と申します。

[#39107] [Bug #1952] cannot stop with Ctrl+C — Usaku NAKAMURA <redmine@...>

Bug #1952: cannot stop with Ctrl+C

14 messages 2009/08/18

[#39167] [Bug #2000] Change the license to "GPLv2+ or Ruby's original". — Mamoru Tasaka <redmine@...>

Bug #2000: Change the license to "GPLv2+ or Ruby's original".

11 messages 2009/08/26

[#39193] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...>

In article <200908281827.n7SIRbaX003476@ci.ruby-lang.org>,

16 messages 2009/08/29
[#39194] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/29

なかだです。

[#39195] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...> 2009/08/29

In article <4a988633.9553f10a.4496.483e@mx.google.com>,

[#39196] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/29

なかだです。

[#39197] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...> 2009/08/29

In article <4a989f76.1602be0a.3de4.1131@mx.google.com>,

[#39198] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Yukihiro Matsumoto <matz@...> 2009/08/29

まつもと ゆきひろです

[#39206] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/31

なかだです。

[ruby-dev:39166] Re: Random#rand

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2009-08-26 12:03:11 UTC
List: ruby-dev #39166
西山和広です。

At Tue, 25 Aug 2009 18:23:11 +0900,
Nobuyoshi Nakada wrote:
> 
>   r = Random.new
>   r.rand           #=> a float in 0.0...1.0
>   r.rand(max_num)  #=> a number in 0.0...max_num
>   r.rand(range)    #=> a number in range
> 
> 引数が与えられた場合は結果のクラスは引数のクラスに従います。
> Rangeの場合は両端の値の差を使います。

Random#rand(1) と Random#rand(0...1) の挙動が違うのは意図した挙動でしょうか?
エラーメッセージが「invalid argument」だけなのもわかりにくいように
思います。

% ruby-trunk -e 'p Random.new.rand(1)'    
0
% ruby-trunk -e 'p Random.new.rand(0...1)' 
-e:1:in `rand': invalid argument (ArgumentError)
        from -e:1:in `<main>'
%

以下のように変更すると同じ挙動になりました。

diff --git a/random.c b/random.c
index 3b5729f..9bd2c48 100644
--- a/random.c
+++ b/random.c
@@ -1016,7 +1016,7 @@ random_rand(int argc, VALUE *argv, VALUE obj)
 	    v = Qnil;
 	    if (FIXNUM_P(vmax)) {
 	      fixnum:
-		if ((max = FIX2LONG(vmax) - excl) > 0) {
+		if ((max = FIX2LONG(vmax) - excl) >= 0) {
 		    unsigned long r = limited_rand(&rnd->mt, (unsigned long)max);
 		    v = ULONG2NUM(r);
 		}


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread

Prev Next