[#40961] [Bug #3137] complex.rb changes exceptions of Math — Yusuke Endoh <redmine@...>

Bug #3137: complex.rb changes exceptions of Math

15 messages 2010/04/12
[#40967] Re: [Bug #3137] complex.rb changes exceptions of Math — keiju@... (石塚圭樹) 2010/04/13

けいじゅ@いしつかです.

[#41038] Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...>

こんにちは!アーロンです。

17 messages 2010/04/22
[#41039] Re: Windows と DL が使用条件の libffi — "U.Nakamura" <usa@...> 2010/04/22

こんにちは、なかむら(う)です。

[#41040] Re: Windows と DL が使用条件の libffi — "NARUSE, Yui" <naruse@...> 2010/04/22

成瀬です。

[#41059] Re: Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...> 2010/04/26

2010/4/21 NARUSE, Yui <naruse@airemix.jp>:

[#41060] Re: Windows と DL が使用条件の libffi — Yugui <yugui@...> 2010/04/26

2010/4/26 Aaron Patterson <aaron.patterson@gmail.com>:

[#41067] [Feature #3203] LazySweepGC patch — Narihiro Nakamura <redmine@...>

Feature #3203: LazySweepGC patch

15 messages 2010/04/26
[#41069] Re: [Feature #3203] LazySweepGC patch — Yusuke ENDOH <mame@...> 2010/04/27

遠藤です。

[#41104] Rails3 M17N — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

29 messages 2010/04/30
[#41111] Re: Rails3 M17N — Urabe Shyouhei <shyouhei@...> 2010/04/30

Yukihiro Matsumoto =E3=81=95=E3=82=93=E3=81=AF=E6=9B=B8=E3=81=8D=E3=81=BE=

[#41113] Re: Rails3 M17N — Yukihiro Matsumoto <matz@...> 2010/04/30

まつもと ゆきひろです

[ruby-dev:40967] Re: [Bug #3137] complex.rb changes exceptions of Math

From: keiju@... (石塚圭樹)
Date: 2010-04-13 05:56:59 UTC
List: ruby-dev #40967
けいじゅ@いしつかです.

In the message: "[Bug #3137] complex.rb changes exceptions of Math",
on Apr/12 23:01(JST) Yusuke Endoh writes:

>遠藤です。

どもです.

>[ruby-core:28204] にて Brian Ford が「complex を require すると
>Math.atan(nil) で投げられる例外が変わる」という報告をしています。
>
>
>  $ ./ruby -e 'p Math.atanh(nil)'
>  -e:1:in `atanh': can't convert nil into Float (TypeError)
>          from -e:1:in `<main>'
>
>  $ ./ruby -rcomplex -e 'p Math.atanh(nil)'
>  /home/mame/work/ruby-trunk-local/lib/ruby/1.9.1/cmath.rb:196:in `atanh': undefined method `real?' for nil:NilClass (NoMethodError)
>          from -e:1:in `<main>'
>
>
>Ruby レベルのライブラリは duck typing のためにむやみに型チェック
>すべきでないとはいえ、CMath は組み込みの Math クラスの置き換えを
>前提としているので、なるべく Math クラスの挙動を尊重した方がよい
>と思いました。

うーん. そうですねぇ...

ただ, Complex#atanh等で, 

>  -e:1:in `atanh': can't convert nil into Float (TypeError)

という例外はふさわしくない気もします. Complex#atanhの実装を知らないと
わけの分からないエラーになっている気がしません? 

Math.log(-1) の
Math::DomainError: Numerical argument is out of domain - "log"

ような例外の方がふさわしいかと? 

>以下のパッチをコミットしてもいいでしょうか。

添付のパッチだと zが複素数の時は動作しません.

例外はMathとは変わりますが, それでよいなら, NoMethodErrorを捕捉してそ
れなりの例外にして再raiseするようにします.

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread