[#38563] [Bug #1556] irb does not save history from 1.8.7-p83 and later — Nobuhiro IMAI <redmine@...>

Bug #1556: irb does not save history from 1.8.7-p83 and later

11 messages 2009/06/02

[#38571] [Bug #1582] IO.new Raises Other Errors between 1.8 and 1.9 — "ujihisa ." <redmine@...>

Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9

15 messages 2009/06/05

[#38607] [Feature: trunk] GC.stat — SASADA Koichi <ko1@...>

 ささだです.

21 messages 2009/06/14

[#38608] Fixnum#fdiv — Tadayoshi Funaba <tadf@...>

Bignum#fdiv には大きな数である場合の配慮があるようですが、Fixnum ではな

23 messages 2009/06/14
[#38636] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

fdiv では2つの異る解釈が混在しているように見えます。

[#38638] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38639] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> えーと、設計者は「fdivは結果がfloatになるdiv」くらいしか考え

[#38640] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38641] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38657] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> > ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38659] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/16

まつもと ゆきひろです

[#38660] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> 私が気にしているのは「挙動の理解しやすさ」ですね。

[#38701] [Bug #1676] only last "return" is traced by set_trace_func — _ wanabe <redmine@...>

Bug #1676: only last "return" is traced by set_trace_func

10 messages 2009/06/22

[ruby-dev:38677] Re: Fixnum#fdiv

From: Yukihiro Matsumoto <matz@...>
Date: 2009-06-17 16:05:56 UTC
List: ruby-dev #38677
まつもと ゆきひろです

In message "Re: [ruby-dev:38676] Re: Fixnum#fdiv"
    on Wed, 17 Jun 2009 23:37:58 +0900, Tadayoshi Funaba <tadf@dotrb.org> writes:

|> |Inf <=> X
|> |はどう考えるのか、あまりうまい考えが浮びません。
|> |いい考えがあったら教えてください。
|> 
|> 無限と有限を比較したら、いつも無限が大きいと見なすものなので
|> はないでしょうか。NaNの場合にはnilですね。
|
|ですから、coerce 以前の判断が必要なわけですよね。Numeric#infinite? も欲
|いですし。ここでもう coerce は破綻していると考えていいですかね。

coerceのことを懸念していらっしゃったわけなんですか。すみませ
ん、私はここでは考えていませんでした。[ruby-dev:38671]で
「未知のクラス」とおっしゃってるんだから、当然考えておくべき
でしたね。

ちょっと考えてみたのですが、

  * 未知のクラスの場合には x <=> Float(y) とする

  * 未知のクラスの場合には coerce を使う

のいずれでも、有限だがFloat()をかけるとInfになるような数が存
在した場合に困ってしまうということですね。なるほど。

で、この対処として

  * Numeric#infinite?を用意し、coerceを呼ぶ前に無限かどうか
    を判別する

  * 気にしない。未知のクラスの十分に大きな数は無限とみなして
    しまう

のいずれかが考えられますね。他にも対処法はあるかも。私なら後
者を選んでしまいそうですが、違う考えの人も居るでしょうね。

しかし、FloatのInfが混じった計算を行った時点で不正確なのです
から、どんな結果が出ても「困る」のは限定的な気がします。いっ
そのこと、Float#<=>はselfがInfの時、右辺がInfまたはNaNでなけ
れば常に大小関係は固定、でも良いのかも(Infの符号だけで決まる)。

                                まつもと ゆきひろ /:|)

In This Thread