[#39954] Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2010/01/04
[#39957] Re: Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — Yugui <yugui@...> 2010/01/04

2010/1/4 SASADA Koichi <ko1@atdot.net>:

[#39959] Re: Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — SASADA Koichi <ko1@...> 2010/01/04

 ささだです.

[#39975] [Feature #2571] 文字列のハミング距離 — Kenta Murata <redmine@...>

Feature #2571: 文字列のハミング距離

14 messages 2010/01/07

[#39978] "require 'logge'" fails on ruby 1.8.7 from http://github.com/shyouhei/ruby — MOROHASHI Kyosuke <moronatural@...>

諸橋です。

7 messages 2010/01/07

[#40004] [Bug:trunk] require_relative depends on current directory — Yusuke ENDOH <mame@...>

遠藤です。

13 messages 2010/01/09

[#40074] [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <redmine@...>

Bug #2603: NetBSD 5.0以降でpthreadの処理に由来する不具合

29 messages 2010/01/14
[#40086] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — f-miura@... (MIURA, Fumiaki) 2010/01/14

NTTレゾナントの三浦です。不完全なpatchを書いてすみません。

[#40088] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <taca@...> 2010/01/14

こんばんは。

[#40091] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — KOSAKI Motohiro <kosaki.motohiro@...> 2010/01/15

kosakiです

[#40092] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <taca@...> 2010/01/15

こんにちは。

[#40077] [Bug #2604] test_dsa_sign_verify() in test/openssl/test_ec.rb failes — Takahiro Kambe <redmine@...>

Bug #2604: test_dsa_sign_verify() in test/openssl/test_ec.rb failes

11 messages 2010/01/14

[#40153] [Bug:trunk] three bugs of Matrix::Scalar — Yusuke ENDOH <mame@...>

連投すみません。

19 messages 2010/01/25
[#40184] Re: [Bug:trunk] three bugs of Matrix::Scalar — keiju@... (石塚圭樹) 2010/01/27

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

[#40189] Re: [Bug:trunk] three bugs of Matrix::Scalar — Yusuke ENDOH <mame@...> 2010/01/27

遠藤です。

[#40191] Re: [Bug:trunk] three bugs of Matrix::Scalar — keiju@... (石塚圭樹) 2010/01/27

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

[#40224] Re: [Bug:trunk] three bugs of Matrix::Scalar — Yukihiro Matsumoto <matz@...> 2010/01/28

まつもと ゆきひろです

[#40162] [Bug #2658] rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR — Yusuke Endoh <redmine@...>

Bug #2658: rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR

8 messages 2010/01/26
[#40163] Re: [Bug #2658] rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR — Tanaka Akira <akr@...> 2010/01/26

2010年1月26日20:39 Yusuke Endoh <redmine@ruby-lang.org>:

[#40168] [Bug #2662] BigDecimal#ceil, etc. should not return Integer — Yusuke Endoh <redmine@...>

Bug #2662: BigDecimal#ceil, etc. should not return Integer

10 messages 2010/01/26

[#40200] [Feature #2673] the length for an enumerator generated by Array#permutation and Array#combination — Kenta Murata <redmine@...>

Feature #2673: the length for an enumerator generated by Array#permutation and Array#combination

14 messages 2010/01/28

[#40221] [Bug:trunk] rubyspec: SimpleDelegator when frozen creates a frozen clone ERROR — Yusuke ENDOH <mame@...>

まつもとさん、または lib/delegator.rb についてわかる誰か

13 messages 2010/01/28

[#40265] MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...>

手元の Ubuntu 9.10 の環境で Ruby 1.9.2 を make test-all すると

38 messages 2010/01/30
[#40326] Re: MonitorMixin::ConditionVariable#wait timeout — Shugo Maeda <shugo@...> 2010/02/05

前田です。

[#41155] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

前田さん、akr さん

[#41157] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/05

2010年5月5日9:32 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41158] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

遠藤です。

[#41159] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/05

2010年5月5日11:46 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41160] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

遠藤です。

[#41182] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月5日13:22 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41183] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/06

遠藤です。

[#41186] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月6日19:58 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41205] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/06

遠藤です。

[#41207] Re: MonitorMixin::ConditionVariable#wait timeout — KOSAKI Motohiro <kosaki.motohiro@...> 2010/05/06

2010年5月6日23:08 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41208] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月6日23:15 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:

[#41245] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/10

遠藤です。

[#41252] Re: MonitorMixin::ConditionVariable#wait timeout — KOSAKI Motohiro <kosaki.motohiro@...> 2010/05/10

kosakiです

[#41255] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/10

遠藤です。

[#41256] Re: MonitorMixin::ConditionVariable#wait timeout — Masaya TARUI <tarui@...> 2010/05/10

樽家です。

[#40269] [Feature #2695] Supported Platforms — Kazuhiro NISHIYAMA <redmine@...>

Feature #2695: Supported Platforms

17 messages 2010/01/31
[#40760] [Feature #2695] Supported Platforms — Yusuke Endoh <redmine@...> 2010/03/25

チケット #2695 が更新されました。 (by Yusuke Endoh)

[ruby-dev:40168] [Bug #2662] BigDecimal#ceil, etc. should not return Integer

From: Yusuke Endoh <redmine@...>
Date: 2010-01-26 17:42:38 UTC
List: ruby-dev #40168
Bug #2662: BigDecimal#ceil, etc. should not return Integer
http://redmine.ruby-lang.org/issues/show/2662

起票者: Yusuke Endoh
ステータス: Open, 優先度: Normal
担当者: Yukihiro Matsumoto, カテゴリ: ext, Target version: 1.9.x
ruby -v: ruby 1.9.2dev (2010-01-27 trunk 26434) [i686-linux]

まつもとさん
遠藤です。

r20584 と r20616 で BigDecimal#ceil 、truncate 、floor 、round 、div の
戻り値を Integer にする変更がありますが、これだと巨大な BigDecimal を
扱えなく、または扱いが面倒になります。


  # 巨大な BigDecimal は ceil が取れない
  $ ./ruby -rbigdecimal -e 'p BigDecimal("1E100000").ceil'
  (巨大な Bignum を確保しようとして固まる...)

  # Infinity が混ざるときは自分で対処する必要がある
  $ ./ruby -rbigdecimal -e 'p BigDecimal("Infinity").ceil'
  -e:1:in `ceil': Computation results to 'Infinity' (FloatDomainError)
          from -e:1:in `<main>'


Float#ceil などが Integer を返すのに合わせるためだと思いますが、この変更
では BigDecimal のありがたみ自体が減ってしまう気がします。
どうしてもということでなければ、revert を提案します。


diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c
index c6ffe98..1f51f61 100644
--- a/ext/bigdecimal/bigdecimal.c
+++ b/ext/bigdecimal/bigdecimal.c
@@ -1108,7 +1108,7 @@ BigDecimal_div2(int argc, VALUE *argv, VALUE self)
        Real *div=NULL;
        Real *mod;
        if(BigDecimal_DoDivmod(self,b,&div,&mod)) {
-	  return BigDecimal_to_i(ToValue(div));
+	  return ToValue(div);
        }
        return DoSomeOne(self,b,rb_intern("div"));
     } else {    /* div in BigDecimal sense */
@@ -1308,9 +1308,6 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)
     GUARD_OBJ(c,VpCreateRbObject(mx, "0"));
     VpSetPrecLimit(pl);
     VpActiveRound(c,a,sw,iLoc);
-    if (argc == 0) {
-	return BigDecimal_to_i(ToValue(c));
-    }
     return ToValue(c);
 }
 
@@ -1355,9 +1352,6 @@ BigDecimal_truncate(int argc, VALUE *argv, VALUE self)
     GUARD_OBJ(c,VpCreateRbObject(mx, "0"));
     VpSetPrecLimit(pl);
     VpActiveRound(c,a,VP_ROUND_DOWN,iLoc); /* 0: truncate */
-    if (argc == 0) {
-	return BigDecimal_to_i(ToValue(c));
-    }
     return ToValue(c);
 }
 
@@ -1418,9 +1412,6 @@ BigDecimal_floor(int argc, VALUE *argv, VALUE self)
     GUARD_OBJ(c,VpCreateRbObject(mx, "0"));
     VpSetPrecLimit(pl);
     VpActiveRound(c,a,VP_ROUND_FLOOR,iLoc);
-    if (argc == 0) {
-	return BigDecimal_to_i(ToValue(c));
-    }
     return ToValue(c);
 }
 
@@ -1465,9 +1456,6 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)
     GUARD_OBJ(c,VpCreateRbObject(mx, "0"));
     VpSetPrecLimit(pl);
     VpActiveRound(c,a,VP_ROUND_CEIL,iLoc);
-    if (argc == 0) {
-	return BigDecimal_to_i(ToValue(c));
-    }
     return ToValue(c);
 }
 


ついでに、この変更で rubyspec がやっぱりいっぱい失敗しています。


2)
BigDecimal#ceil returns the smallest integer greater or equal to self, if n is unspecified ERROR
FloatDomainError: Computation results to 'Infinity'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:34:in `ceil'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:34:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/ceil_spec.rb:4:in `<top (required)>'

3)
BigDecimal#div with precision set to 0 returns NaN if NaN is involved ERROR
FloatDomainError: Computation results to 'NaN'(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/shared/quo.rb:34:in `div'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/shared/quo.rb:34:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:5:in `<top (required)>'

4)
BigDecimal#div returns NaN if NaN is involved ERROR
FloatDomainError: Computation results to 'NaN'(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:46:in `div'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:46:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in `<top (required)>'

5)
BigDecimal#div returns NaN if divided by Infinity and no precision given ERROR
FloatDomainError: Computation results to 'NaN'(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:51:in `div'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:51:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in `<top (required)>'

6)
BigDecimal#div returns NaN if (+|-) Infinity divided by 1 and no precision given ERROR
FloatDomainError: Computation results to 'NaN'(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:109:in `div'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:109:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/div_spec.rb:12:in `<top (required)>'

8)
BigDecimal#floor returns the greatest integer smaller or equal to self ERROR
FloatDomainError: Computation results to 'Infinity'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:29:in `floor'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:29:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/floor_spec.rb:4:in `<top (required)>'

13)
BigDecimal#truncate returns value of type Bigdecimal. FAILED
Expected false
 to equal true

/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:16:in `block (3 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:15:in `each'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:15:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in `<top (required)>'

14)
BigDecimal#truncate returns NaN if self is NaN ERROR
FloatDomainError: Computation results to 'NaN'(Not a Number)
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:64:in `truncate'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:64:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in `<top (required)>'

15)
BigDecimal#truncate returns Infinity if self is infinite ERROR
FloatDomainError: Computation results to 'Infinity'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:71:in `truncate'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:71:in `block (2 levels) in <top (required)>'
/home/mame/work/ruby/spec/rubyspec/library/bigdecimal/truncate_spec.rb:4:in `<top (required)>'

-- 
Yusuke Endoh <mame@tsg.ne.jp>


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next