[#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:42155] Math モジュールの互換性(was: Math::atan2(0, 0) on ruby 1.9.2)
久保です。
Mathモジュールの関数の互換性の調査です。調査の順番は math.c で定義され
ている順序で、全26個の関数のうち、最初の7個のみ調査しました。残りの19
個についてはゆっくり(週に一回ぐらい?)調べていきます。
3, 4回見直したけど、そのたびに間違いが見付かるので、まだ間違いが残って
いる可能性があります。m(__)m
チェック項目は以下の2つ。
(1) SUSv3準拠環境での 1.9.1 と trunk の非互換
libm がオプションの動作(*1)も含めて SUSv3 に準拠していると仮定し
た上で、1.9.1 と trunk の非互換をチェック。
*1 SUSv3 の仕様書の [MX]|X> と <X| で囲まれた部分
(2) trunk でのプラットフォーム間の非互換の可能性
trunk では数学関数を呼ぶ前に範囲チェックを行なっている。範囲チェッ
クを通った後にプラットフォーム依存の動作を起こす可能性のある箇所を
チェックした。具体的には、SUSv3 でオプションの動作とされている部分
と、SUSv2 で either ... or ... と書かれている部分です。
ちなみにこれは「可能性」のチェックであって。実際にプラットフォーム依
存があるかどうかは不明です。重箱の隅をつついているような感じがする箇
所もあったけど、そのまま記載しました。
ちなみに、非互換の情報を挙げるのだけが目的です。コメントを付けている箇
所がありますが、今後のバージョンで対処すべきかどうかという価値判断は行
なっていません。
([ruby-core:28286]を見ると、意図的な非互換もありそうですし)
1. atan2
========
1.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
数が多いので表形式を使用。等幅フォントを使用してください。
式 1.9.1 trunk
------------------------- -------- ------------
1. atan2(正の有限値, -Inf) +PI DomainError
2. atan2(負の有限値, -Inf) -PI DomainError
3. atan2(正の有限値, +Inf) +0.0 DomainError
4. atan2(負の有限値, +Inf) -0.0 DomainError
5. atan2(+Inf, 正負の有限値) +PI/2 DomainError
6. atan2(-Inf, 正負の有限値) -PI/2 DomainError
7. atan2(+Inf, -Inf) +3PI/4 DomainError
8. atan2(-Inf, -Inf) -3PI/4 DomainError
9. atan2(+Inf, +Inf) +PI/4 DomainError
10. atan2(-Inf, +Inf) -PI/4 DomainError
1.9.1 の挙動の 1〜6 までは数学的に見ても意味がありそう。数式でどうこう
というのはわからないが、Wikipedia の3次元グラフ(*2)を見ると、x軸、y軸
の片方を無限に伸ばした場合を考えると 1.9.1 の値は正しそうです。
*2 http://en.wikipedia.org/wiki/Atan2#Illustrations
7〜10 は数学的にはあやしい。例えば、atan2(y, x) の戻り値が +PI/4 にな
るためには y/x == 1 である必要があるが、+Inf 同士の比率はなんらかの前
提条件をつけない限り不可能なため。
1.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. atan2(y, x) の y, x のどちらかが NaN --> NaN
SUSv2 では上記の通りの値を戻すことになっているのに対し、SUSv3 ではオプ
ションの動作に格下げされている。
2. cos
======
2.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
ソースコードの変更がないので非互換なし
2.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. cos(NaN) -> NaN
2. cos(+0.0) -> 1.0
3. cos(-0.0) -> 1.0
4. cos(+Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
5. cos(-Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
SUSv3 では上記すべてオプションの動作となっている。SUSv2 では、1, 4, 5
は定義されているが、2, 3 の記述はない。
(2, 3 に関しては、普通に考えれば 1.0 以外の値を戻すことはありえないと
思うが...)
3. sin
======
3.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
ソースコードの変更がないので非互換なし
3.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. sin(NaN) -> NaN
2. sin(+0.0) -> +0.0
3. sin(-0.0) -> -0.0
4. sin(非正規数*3) -> SUSv3では引数の値、SUSv2(*4) では 0.0
5. sin(+Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
6. sin(-Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
*3 非正規数(subnormal)とは、double の場合、-1.0E-95 と +1.0E-95 の間の
0以外の値。
*4 SUSv2 の仕様書では「戻り値がアンダーフローしたとき」と記述されてい
る。引数が非常に小さいとき、戻り値は引数とほぼ同じ値になるので「戻
り値がアンダーフロー」 -> 「戻り値が非正規数」 -> 「引数が非正規数」
といった論法。
SUSv3 では上記すべてオプションの動作となっている。SUSv2 では、1,4,5,6
は定義されているが、2, 3 の記述はない。
4. tan
======
4.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
ソースコードの変更がないので非互換なし
4.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. tan(NaN) -> NaN
2. tan(+0.0) -> +0.0
3. tan(-0.0) -> -0.0
4. tan(非正規数) -> SUSv3 では引数の値、SUSv2(*4)では 0.0
5. tan(+Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
6. tan(-Inf) -> SUSv3 では NaN または実装依存の値、SUSv2 では 0.0 または NaN
7. tan(有限値) が overflow したとき -> +-Inf
SUSv3 では 1,2,3,4,5,6 がオプションの動作で、7 は XSI 拡張となっている。SUSv2
では、1, 4, 5, 6,7 は定義されているが、2, 3 の記述はない。
5. acos
=======
5.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
ソースコードの変更はあるが、挙動の変化なし。
5.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. acos(NaN) -> NaN
2. acos(+1.0) -> +0.0
SUSv3 では上記すべてオプションの動作となっている。SUSv2 では、1 は定義
されているが、2 の記述はない。
6. asin
=======
6.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
SUSv3 には、
If x is subnormal, a range error may occur and x should be returned.
と書かれているので、引数が非正規数のとき実装によっては errno に ERANGE
が設定される。このとき 1.9.1 では Errno::ERANGE 例外が挙がる。
一方、trunk では例外を挙げない。
6.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. asin(NaN) -> NaN
2. asin(+0.0) -> +0.0
3. asin(-0.0) -> -0.0
4. asin(非正規数) -> SUSv3 では引数の値。SUSv2(*4)では 0.0
SUSv3 では上記すべてオプションの動作となっている。SUSv2 では、1, 4 は
定義されているが、2, 3 の記述はない。
7. atan
=======
7.1. SUSv3準拠環境での 1.9.1 と trunk の非互換
----------------------------------------------
ソースコードの変更がないので非互換なし
7.2. trunk でのプラットフォーム間の非互換の可能性
-------------------------------------------------
1. atan(NaN) -> NaN
2. atan(+0.0) -> +0.0
3. atan(-0.0) -> -0.0
4. atan(+Inf) -> +PI/2
5. atan(-Inf) -> -PI/2
6. atan(非正規数) -> SUSv3 では引数の値。SUSv2(*4)では 0.0
SUSv3 では上記すべてオプションの動作となっている。SUSv2 では、1, 6 は
定義されているが、2, 3, 4, 5 の記述はない。
---------------------
今回はここまで。