[#31143] m {|(*,(*)),|} — Tanaka Akira <akr@...>
m {|(*,(*)),|} で SEGV します。
[#31164] ruby_set_current_source remains in intern.h — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>
酒井です。
[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>
酒井です。
なかだです。
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
ささだです。
[#31168] 構造体オブジェクトのcloneメソッド呼び出しでメモリリーク発生 — m-ohkubo@... (Mitsuhiko OHKUBO)
大久保といいます。はじめまして。
なかだです。
大久保です。よろしくお願いします。
[#31190] 0x3fffffffffffffff.succ — Tanaka Akira <akr@...>
LP64 環境で 0x3fffffffffffffff.succ が -4611686018427387904
[#31214] Warning: OpenSSL::PKCS7::PKCS7 is deprecated after Ruby 1.9; use OpenSSL::PKCS7 instead — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#31222] trunk: バグを指摘している警告 — pegacorn <subscriber.jp@...>
trunk で -Wall を付けてコンパイルしてみると、バグを指摘している警告が
From: pegacorn <subscriber.jp@gmail.com>
[#31242] p(65536**(1<<29)) stalls — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#31244] shift — Tanaka Akira <akr@...>
-O0 で、以下のようにすると SEGV になります。
なかだです。
In article <200707180743.l6I7hXic031558@sharui.nakada.kanuma.tochigi.jp>,
[#31285] p()#=>[] — eklerni <eklerni@...>
松尾といいます。
[#31292] ParseDate.parsedate("Tuesday, July 6th, 2007, 18:35:20 UTC") — Tanaka Akira <akr@...>
ParseDate のマニュアルにある以下の例を動かすと、示された結果
[#31298] retryの使い方 — eklerni <eklerni@...>
松尾といいます。
ささだです。
松尾です、返信ありがとうございます。
Yuguiといいます。
松尾といいます。
In article <46A909DD.1070405@for.mail-box.ne.jp>,
Tanaka Akira さんは書きました:
In article <46A92530.80507@for.mail-box.ne.jp>,
Tanaka Akira さんは書きました:
In article <46AD7A16.8080509@for.mail-box.ne.jp>,
松尾です。
ささだです。
From:eklerni
まつもと ゆきひろです
In article <E1ILDTi-0005T6-Be@x31>,
まつもと ゆきひろです
In article <E1ILKn6-0003Nv-0f@x31>,
まつもと ゆきひろです
In article <E1ILVN9-0006xJ-7I@x31>,
In article <E1ILq4x-0002Bs-Lg@x31>,
まつもと ゆきひろです
In article <E1ILweZ-00008I-Tu@x31>,
まつもと ゆきひろです
In article <E1ILyGa-0000ug-Qd@x31>,
まつもと ゆきひろです
In article <E1IM1W9-0001uC-Bz@x31>,
まつもと ゆきひろです
[ruby-dev:31242] p(65536**(1<<29)) stalls
遠藤と申します。
以下のようにすると反応がなくなります。Ctrl+C でも止められません。
$ ./ruby -ve 'p(65536**(1<<29))'
ruby 1.8.6 (2007-07-17 patchlevel 5000) [i686-linux]
$ ./ruby -ve 'p(65536**(1<<29))'
ruby 1.9.0 (2007-07-17 patchlevel 0) [i686-linux]
bignum の大きさのチェックで integer overflow しているのが原因のようです。
1.8 での応急措置です。
Index: bignum.c
===================================================================
--- bignum.c (revision 12809)
+++ bignum.c (working copy)
@@ -1755,8 +1755,13 @@
if (yy > 0) {
VALUE z = 0;
long mask;
+ VALUE f = 1, t1 = RBIGNUM(x)->len * SIZEOF_BDIGITS;
+ if (t1 / SIZEOF_BDIGITS == RBIGNUM(x)->len && t1 %
SIZEOF_BDIGITS == 0) {
+ VALUE t2 = t1 * yy;
+ if (t2 / yy == t1 && t2 % yy == 0 && t2 <= 1024*1024) f = 0;
+ }
- if (RBIGNUM(x)->len * SIZEOF_BDIGITS * yy > 1024*1024) {
+ if (f) {
rb_warn("in a**b, b may be too big");
d = (double)yy;
break;
1024*1024 が即値で埋め込まれているのが気持ち悪いんですが、
bignum の最大値ってちゃんと決まってないんでしょうか。
ついでに、重箱の隅ですが、以下の仕様変更は意図されたものでしょうか。
$ ./ruby -ve 'p(0**(1<<30))'
ruby 1.8.6 (2007-06-07 patchlevel 36) [i686-linux]
-e:1: warning: in a**b, b may be too big
0.0
$ ./ruby -ve 'p(0**(1<<30))'
ruby 1.8.6 (2007-07-17 patchlevel 5000) [i686-linux]
0
--
Yusuke ENDOH <mame@tsg.ne.jp>