[#41918] [Feature #3647] Array#sample(n, replace=false) — Kenta Murata <redmine@...>
Feature #3647: Array#sample(n, replace=false)
チケット #3647 が更新されました。 (by Masaya Tarui)
まつもと ゆきひろです
[#41925] Ruby committers Q&A at RubyKaigi — Shugo Maeda <shugo@...>
前田です。
2010/8/3 Shugo Maeda <shugo@ruby-lang.org>:
前田です。
[#41931] [Bug #3657] make cleanがファイルを削除しすぎ — Takahiro Kambe <redmine@...>
Bug #3657: make cleanがファイルを削除しすぎ
[#41933] *array で異常終了 — 小田 利通 <oda@...>
[#41957] 1.9.2でtest_require_too_long_filename(TestRequire)がFailureになる — kimura wataru <kimuraw@...>
木村(わ)といいます。
[#41962] Re: [ruby-cvs:36129] Ruby:r28927 (ruby_1_9_2): merges r28835 from trunk into ruby_1_9_2. — Masaki Suketa <masaki.suketa@...>
助田です。
[#41966] [Bug #3673] PTY.getpty with IO.pipe doesn't finish on FreeBSD — Yui NARUSE <redmine@...>
Bug #3673: PTY.getpty with IO.pipe doesn't finish on FreeBSD
2010年8月10日10:53 Yui NARUSE <redmine@ruby-lang.org>:
[#41969] [Feature #3675] String#prepend, String#>> — Sora Harakami <redmine@...>
Feature #3675: String#prepend, String#>>
まつもと ゆきひろです
[#41971] Re: [ruby-cvs:36152] Ruby:r28950 (trunk): [ruby-core:31658] — "NARUSE, Yui" <naruse@...>
成瀬です。
> なお、unused variable で警告するのはおかしいという主張もありえるでしょう。
[#41972] [Bug #3676] CMath.cbrt(-8)の結果が複素数にならない — tadayoshi funaba <redmine@...>
Bug #3676: CMath.cbrt(-8)の結果が複素数にならない
まつもと ゆきひろです
> 現在のCMath.cbrt(-8)の結果は-2で、これは3乗すると-8になるとい
[#41974] Re: [ruby-cvs:36157] Ruby:r28955 (trunk): * complex.c (nucomp_to_[ifr]): don't allow complex with in-exact — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
> これを戻されたということは、(1+0.0i)は整数に変換できてはいけ
まつもと ゆきひろです
> なるほど。動機は分かりました。ただ、今回の変更はいずれも明示
まつもと ゆきひろです
[#41995] Re: [ruby-core:31672] [Bug #3678] CMath.sqrt(1.i) results to 0.0+0.0i — Urabe Shyouhei <shyouhei@...>
-devに振ります。
[#42003] WEBrickに関するセキュリティ修正 (CVE-2010-0541) — Hideki Yamane <henrich@...>
2010/8/11 Hideki Yamane <henrich@debian.or.jp>:
こんにちは、なかむら(う)です。
2010/8/12 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
2010/8/12 U.Nakamura <usa@garbagecollect.jp>:
[#42022] [Bug #3693] visibility hidden functions — Narihiro Nakamura <redmine@...>
Bug #3693: visibility hidden functions
ささだです.
[#42038] [Bug: trunk] Fwd: [ruby-list:47272] case when 整数と実数の比較 (ruby 1.9) — SASADA Koichi <ko1@...>
ささだです.
[#42040] [Bug #3674] dRuby サーバプロセスを停止する時に時間がかかることがある — Tomoyuki Chikanaga <redmine@...>
チケット #3674 が更新されました。 (by Tomoyuki Chikanaga)
遠藤です。
[#42057] rdf generated by rss library is not valid — Tanaka Akira <akr@...>
ふと、rss ライブラリのチュートリアルの
[#42067] [Bug #3708] Array#permutation がおかしな結果を返す — Shumpei Akai <redmine@...>
Bug #3708: Array#permutation がおかしな結果を返す
[#42079] Re: [ruby-cvs:36248] Ruby:r29048 (trunk): * backport r28621 and r28632 from ruby_1_8; — "NARUSE, Yui" <naruse@...>
このコミットで OpenSSL のテスト失敗が増えています。
2010/8/19 NARUSE, Yui <naruse@airemix.jp>:
2010/8/19 Hiroshi Nakamura <nakahiro@gmail.com>:
(2010/08/19 18:58), Hiroshi Nakamura wrote:
[#42090] Math::atan2(0, 0) on ruby 1.9.2 — KUBO Takehiro <kubo@...>
久保です。
=1B$B$`$i$?$G$9!#=1B(B
遠藤です。
久保です。
=1B$B$`$i$?$G$9!#=1B(B
[#42093] version.hのRUBY_VERSION_TEENYが古いのでは? — Moru <lateau@...>
44KC44KL44Go55Sz44GX44G+44GZ44CCCgokIGhlYWQgcnVieS0xLjkuMi1wMC92ZXJzaW9uLmgK
[#42100] make distclean時エラーメッセージ — Moru <lateau@...>
=E3=82=82=E3=82=8B=E3=81=A7=E3=81=99=E3=80=82
[#42125] vc9 x64でtrunk dlがコンパイルできない — kuwamoto shintaro <beuniv@...>
こんにちわ
[#42166] Ruby'sライセンスの、BSDLとのデュアルライセンスへの変更 — "NARUSE, Yui" <naruse@...>
Ruby's ライセンスは BSDL と Ruby's のデュアルライセンスになります。
(2010/09/01 1:48), NARUSE, Yui wrote:
[ruby-dev:42072] Re: [Bug #3708] Array#permutation がおかしな結果を返す
=1B$B$`$i$?$G$9!#=1B(B
On 2010/08/18, at 18:28, Yukihiro Matsumoto wrote:
> |diff --git a/array.c b/array.c
> |index 51d3ad2..ea4fe43 100644
> |--- a/array.c
> |+++ b/array.c
> |@@ -409,10 +409,7 @@ static VALUE
> | ary_make_shared(VALUE ary)
> | {
> | assert(!ARY_EMBED_P(ary));
> |- if (ARY_SHARED_P(ary)) {
> |- return ARY_SHARED(ary);
> |- }
> |- else if (ARY_SHARED_ROOT_P(ary)) {
> |+ if (ARY_SHARED_P(ary) || ARY_SHARED_ROOT_P(ary)) {
> | return ary;
> | }
> | else if (OBJ_FROZEN(ary)) {
>=20
> =1B$B$J$k$[$I!#%3%_%C%H$7$F2<$5$$!#=1B(B
>=20
=1B$B0lC6$3$l$G%3%_%C%H$7$?$N$G$9$,!"=1B(BSEGV =
=1B$B$,H/@8$9$k$3$H$,$"$C$?$?$a=1B(B revert =1B$B$7$^$7$?!#=1B(B
=1B$B$J$+$@$5$s$K=1B(B ary_make_shared_copy =
=1B$B$r65$($F$b$i$C$?$N$G!"$b$&0lEY=3D$@50F$rDs<($7$^$9!#=1B(B
repeated_permutation=1B$B!"=1B(Brepeated_combination=1B$B!"=1B(Bproduct =
=1B$B$bBP>]$G$9!#=1B(B
diff --git a/array.c b/array.c
index 51d3ad2..bca7956 100644
--- a/array.c
+++ b/array.c
@@ -4010,7 +4010,7 @@ rb_ary_permutation(int argc, VALUE *argv, VALUE =
ary)
long *p =3D (long*)RSTRING_PTR(t0);
volatile VALUE t1 =3D tmpbuf(n,sizeof(char));
char *used =3D (char*)RSTRING_PTR(t1);
- VALUE ary0 =3D ary_make_substitution(ary); /* private defensive =
copy of ary */
+ VALUE ary0 =3D ary_make_shared_copy(ary); /* private defensive =
copy of ary */
RBASIC(ary0)->klass =3D 0;
MEMZERO(used, char, n); /* initialize array */
@@ -4180,7 +4180,7 @@ rb_ary_repeated_permutation(VALUE ary, VALUE num)
else { /* this is the general case */
volatile VALUE t0 =3D tmpbuf(r, sizeof(long));
long *p =3D (long*)RSTRING_PTR(t0);
- VALUE ary0 =3D ary_make_substitution(ary); /* private defensive =
copy of ary */
+ VALUE ary0 =3D ary_make_shared_copy(ary); /* private defensive =
copy of ary */
RBASIC(ary0)->klass =3D 0;
rpermute0(n, r, p, 0, ary0); /* compute and yield repeated =
permutations */
@@ -4266,7 +4266,7 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)
else {
volatile VALUE t0 =3D tmpbuf(n, sizeof(long));
long *p =3D (long*)RSTRING_PTR(t0);
- VALUE ary0 =3D ary_make_substitution(ary); /* private defensive =
copy of ary */
+ VALUE ary0 =3D ary_make_shared_copy(ary); /* private defensive =
copy of ary */
RBASIC(ary0)->klass =3D 0;
rcombinate0(len, n, p, 0, n, ary0); /* compute and yield =
repeated combinations */
@@ -4325,7 +4325,7 @@ rb_ary_product(int argc, VALUE *argv, VALUE ary)
/* Make defensive copies of arrays; exit if any is empty */
for (i =3D 0; i < n; i++) {
if (RARRAY_LEN(arrays[i]) =3D=3D 0) goto done;
- arrays[i] =3D ary_make_substitution(arrays[i]);
+ arrays[i] =3D ary_make_shared_copy(arrays[i]);
}
}
else {
--- a/test/ruby/test_array.rb
+++ b/test/ruby/test_array.rb
@@ -1528,6 +1528,10 @@ class TestArray < Test::Unit::TestCase
acc =3D [1,2].product(*[o]*10)
assert_equal([1,2].product([3,4], [3,4], [3,4], [3,4], [3,4], =
[3,4], [3,4], [3,4], [3,4], [3,4]),
acc)
+
+ a =3D []
+ [1, 2].product([0, 1, 2, 3, 4][1, 4]) {|x| a << x }
+ assert(a.all?{|x| !x.include?(0) })
end
def test_permutation
@@ -1574,6 +1578,9 @@ class TestArray < Test::Unit::TestCase
a.repeated_permutation(4) {|x| b << x; a.replace(@cls[9, 8, 7, 6]) =
}
assert_equal(@cls[9, 8, 7, 6], a)
assert_equal(@cls[1, 2, 3, 4].repeated_permutation(4).to_a, b)
+
+ a =3D @cls[0, 1, 2, 3, 4][1, 4].repeated_permutation(2)
+ assert(a.all?{|x| !x.include?(0) })
end
def test_repeated_combination
@@ -1600,6 +1607,9 @@ class TestArray < Test::Unit::TestCase
a.repeated_combination(4) {|x| b << x; a.replace(@cls[9, 8, 7, 6]) =
}
assert_equal(@cls[9, 8, 7, 6], a)
assert_equal(@cls[1, 2, 3, 4].repeated_combination(4).to_a, b)
+
+ a =3D @cls[0, 1, 2, 3, 4][1, 4].repeated_combination(2)
+ assert(a.all?{|x| !x.include?(0) })
end
def test_take
--
Kenta Murata
OpenPGP FP =3D 1D69 ADDE 081C 9CC2 2E54 98C1 CEFE 8AFB 6081 B062
=1B$BK\$r=3Dq$-$^$7$?=1B(B!!
=1B$B!X=1B(BRuby =1B$B5U0z$-%l%7%T!Y=1B(B =
http://www.amazon.co.jp/dp/4798119881/mrkn-22
E-mail: mrkn@mrkn.jp
twitter: http://twitter.com/mrkn/
blog: http://d.hatena.ne.jp/mrkn/