[#20490] [BUG] evalがらみでSIGSEGV — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本 円と申します。
[#20495] 不正なバイト列とのマッチ — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#20499] Re: [ruby-cvs] ruby/ext/curses: * string.c (rb_str_shared_replace): clear flags before copy. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20525] [BigDecimal] changing rule of coerce — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
小林です。
まつもと ゆきひろです
小林です。
小林です。
前田です。
小林です。
小林です。
小林です。
小林です。
小林です。
[#20570] Marshal upgrade — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
新井です。
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#20580] add library(Re:ruby-dev:20570) — たむらけんいち <sgs02516@...>
たむらです。
なひです。
In message <038d01c349cb$eaad71d0$93222fc0@sarion.co.jp>,
まつもと ゆきひろです
In message <1058171960.400840.10041.nullmailer@picachu.netlab.jp>,
話をそらしてしまうかもしれませんが、
In message <20030714.183104.09092354.taca@back-street.net>,
In message <20030715.013655.424936247.gotoyuzo@kotetsu.does.notwork.org>
In message <20030715.025907.26217115.taca@back-street.net>,
In message <20030715.051853.968499478.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.163444.09092937.taca@back-street.net>,
In message <20030721.191306.60866533.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.211845.20473808.taca@back-street.net>,
In message <20030722.002037.774147317.gotoyuzo@kotetsu.does.notwork.org>
In message <20030722.003236.72433302.taca@back-street.net>,
[#20582] rexmlのuconv依存 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
In article <1057770842.878440.16422.nullmailer@picachu.netlab.jp>,
なかだです。
In article <200307100751.h6A7pLFs003667@sharui.nakada.kanuma.tochigi.jp>,
[#20606] ruby-1.8.0 on BSD/OS — OHARA Shigeki <os@...>
大原です。
[#20613] compiling Ruby on AIX (powerpc-ibm-aix4.3.3.0) and Alpha OSF/1 (alphaev67-dec-osf5.1) — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
なかだです。
西松です. お返事が遅くなり申し訳ありません.
[#20631] SOAP4R in 1.8.0? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20655] frozen ThreadGroup — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
In article <1058719939.886480.22830.nullmailer@picachu.netlab.jp>,
[#20680] 1.8.0 on IA64 etc. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20691] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20716] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20748] [BigDecimal] exception handling — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
[#20765] Re: [ruby-cvs] ruby/lib: * lib/tmpdir.rb: new library to get temporary directory path, — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20780] complex.rb — Masahiro TANAKA <masa@...>
complex.rb についての修正案を[ruby-math:00543]で提案しましたが、その後
まつもと ゆきひろです
けいじゅ@いしつかです.
At Tue, 22 Jul 2003 17:30:31 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
けいじゅ@いしつかです.
At Sat, 26 Jul 2003 06:52:21 +0900, 石塚圭樹 wrote:
[#20791] 1.8.0 preview4 schedule — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
永井@知能.九工大です.
[#20795] warning: terminated thread — Masatoshi SEKI <m_seki@...>
咳といいます。
mput です。こんばんわ。
まつもと ゆきひろです
[#20800] 0**(-1) with rational — Tanaka Akira <akr@...17n.org>
そういえば思い出したのですが、rational を require しているときとしてい
At Wed, 23 Jul 2003 03:30:41 +0900, Tanaka Akira wrote:
[#20810] Rational 始めました。 — Shin-ichiro HARA <sinara@...>
原です。
けいじゅ@いしつかです.
In article <200307241940.EAA14225.keiju@ishitsuka.com>,
けいじゅ@いしつかです.
In article <200307271500.AAA04363.keiju@bc.mbn.or.jp>,
[#20818] ThreadGroup#wait — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#20868] ruby 1.8.0 preview4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20887] ext/openssl undefined BN_pseudo_rand_range — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
[#20915] [BUG] errno == 0 — Kazuhiro Yoshida <moriq@...>
もりきゅうです。win32だけかもしれません。
まつもと ゆきひろです
もりきゅうです。
[#20932] move ChangeLog — Tanaka Akira <akr@...17n.org>
提案なんですが、1.8.0 が出たらそこまでのぶんの ChangeLog を移動しませ
[#20949] multiple Tk interpreter support — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#20954] ruby 1.8.0 preview5 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
もりきゅうです。
Siena. です。
[#20957] [BigDecimal] conflict between Numeric#div and BigDecimal#div — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
At Mon, 28 Jul 2003 18:26:20 +0900, Tadashi Saito wrote:
まつもと ゆきひろです
At Mon, 28 Jul 2003 21:16:08 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
At Tue, 29 Jul 2003 14:43:19 +0900, Yukihiro Matsumoto wrote:
原です。
[#20989] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#21027] -W option — WATANABE Hirofumi <eban@...>
わたなべです。
[ruby-dev:20748] [BigDecimal] exception handling
斎藤です。
BigDecimalの例外の扱いにまつわるパッチを作りました。
・引数に正の整数を渡さなければいけないメソッドにゼロ以下の数を
渡すと、現状fatalになってしまいます。これはちょっとやりすぎでは
ないでしょうか。他にあわせて、ArgumentErrorにしてみました。
またエラーメッセージも、他のファイルに似せたスタイルにしました。
・BigDecimal#to_i において、レシーバがIntegerで表現できない
値(NaN、±∞)のときにnilを返していましたが、Float#to_iに合わせて
FloatDomainErrorをあげるようにしてみました。
・表題とは関係ないのですが、ISDIGIT()を使うべきところはそちらを
使うようにしました。
ただ、まだよく分からない事があります。
・VpDivd()内のspace_error:の部分でもrb_fatal()が使われていますが、
ここに到達する条件がいまいちつかめませんでした。
もし、/* NOTREACHED */ 的な意味なのであれば、rb_bug()の方が
用途に合っていると思います。
・こちらの方が大きな問題だと思うのですが、BigDecimalとしての
領域エラーをraiseするとき、*Float*DomainErrorを使っていますよね。
(今回のパッチでも、現状に合わせてそうしています)
これはRuby全体の整合性から考えて、望ましいことなのでしょうか。
FloatとBigDecimalの領域エラーを別々にとらえたい需要がゼロで
あると断言できない限り、BigDecimal::DomainError(< RangeError)
などを作って、そちらを利用した方が健全ではないでしょうか。
(こうすれば、FloatとBigDecimalのどちらの領域エラーも捕らえたい
場合も、RangeErrorを使えばできます。)
あるいは、FloatDomainErrorはFloatに関わる場面以外でもraiseできる、
数値計算に関する汎用的なものとみなすべきなのでしょうか。
(もしそうならば、あまり名前が良くないと思います)
とりあえず、最初の3点の方のパッチをつけます。
Index: bigdecimal.c
===================================================================
RCS file: /src/ruby/ext/bigdecimal/bigdecimal.c,v
retrieving revision 1.10
diff -u -p -r1.10 bigdecimal.c
--- bigdecimal.c 18 Jul 2003 15:23:23 -0000 1.10
+++ bigdecimal.c 21 Jul 2003 04:49:13 -0000
@@ -254,7 +254,7 @@ BigDecimal_load(VALUE self, VALUE str)
pch = RSTRING(str)->ptr;
/* First get max prec */
while((*pch)!=(unsigned char)'\0' && (ch=*pch++)!=(unsigned char)':') {
- if(ch<'0' || ch>'9') {
+ if(!ISDIGIT(ch)) {
rb_raise(rb_eTypeError, "Load failed: invalid character in the
marsha
led string");
}
m = m*10 + (unsigned long)(ch-'0');
@@ -325,7 +325,7 @@ GetPositiveInt(VALUE v)
Check_Type(v, T_FIXNUM);
n = FIX2INT(v);
if(n <= 0) {
- rb_fatal("Zero or negative argument not permitted.");
+ rb_raise(rb_eArgError, "argument must be positive");
}
return n;
}
@@ -384,7 +384,14 @@ BigDecimal_to_i(VALUE self)
GUARD_OBJ(p,GetVpValue(self,1));
- if(!VpIsDef(p)) return Qnil; /* Infinity or NaN not converted. */
+ /* Infinity or NaN not converted. */
+ if(VpIsNaN(p)) {
+ rb_raise(rb_eFloatDomainError, "NaN");
+ } else if(VpIsPosInf(p)) {
+ rb_raise(rb_eFloatDomainError, "Infinity");
+ } else if(VpIsNegInf(p)) {
+ rb_raise(rb_eFloatDomainError, "-Infinity");
+ }
e = VpExponent10(p);
if(e<=0) return INT2FIX(0);
@@ -2012,7 +2019,7 @@ VpAlloc(U_LONG mx, char *szVal)
/* Skip digits */
ni = 0; /* digits in mantissa */
while(v = szVal[i]) {
- if((v > '9') ||(v < '0')) break;
+ if(!ISDIGIT(v)) break;
++i;
++ni;
}
@@ -2026,7 +2033,7 @@ VpAlloc(U_LONG mx, char *szVal)
++i;
ipf = i;
while(v = szVal[i]) { /* get fraction part. */
- if((v > '9') ||(v < '0')) break;
+ if(!ISDIGIT(v)) break;
++i;
++nf;
}
--
斎藤ただし