[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>

こんにちは、山本と申します。

26 messages 2007/11/08
[#32186] Re: Date#+に大きな数字を与えるとおかしな日付に — Tadayoshi Funaba <tadf@...> 2007/11/08

> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。

[#32188] Re: Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...> 2007/11/09

山本です。

[#32191] Re: Date#+に大きな数字を与えるとおかしな日付に — tadf@... 2007/11/09

> アルゴリズムの意味がわからないで書いた、表層的なパッチなので

[#32194] Re: Date#+に大きな数字を与えるとおかしな日付に — Yukihiro Matsumoto <matz@...> 2007/11/09

Hi,

[#32200] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Tadayoshi Funaba <tadf@...> 2007/11/10

> 1.9ではRationalとComplexを組み込みに、という話はありましたが、

[#32225] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Shin-ichiro HARA <sinara@...> 2007/11/12

原です。

[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>

遠藤と申します。

21 messages 2007/11/09
[#32199] Re: [提案] Array#tail — Yukihiro Matsumoto <matz@...> 2007/11/10

まつもと ゆきひろです

[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>

木村です。

16 messages 2007/11/24
[#32353] Re: 1.9.1のリリース時期について — Yukihiro Matsumoto <matz@...> 2007/11/24

まつもと ゆきひろです

[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>

こんばんは。

32 messages 2007/11/29
[#32414] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/11/30

卜部です。

[#32444] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Yukihiro Matsumoto <matz@...> 2007/12/03

まつもと ゆきひろです

[#32488] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/12/08

卜部です。

[#32525] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/10

遠藤と申します。

[#32643] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/19

遠藤です。

[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>

 ささだです.

10 messages 2007/11/30

[ruby-dev:32350] when *[],1 dumps core

From: "Yusuke ENDOH" <mame@...>
Date: 2007-11-24 15:41:31 UTC
List: ruby-dev #32350
遠藤と申します。

1.9 で when 節に *[], 1 などと書くと落ちます。



$ ./ruby -e 'case 1 when *[], 1; end'
-- control frame ----------
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
-- backtrace of native function call (Use addr2line) --
0x80e8065
0x8105bd3
0x8105c9b
0x81142d0
0x811725e
0x80dc4e2
0x80dc5b6
0x8059ec4
0x805de00
0x8057be0
0xb7df5ea8
0x8057b01
-------------------------------------------------------
[BUG] NODE_CASAE: unknown node (NODE_ARGSPUSH)
ruby 1.9.0 (2007-11-23) [i686-linux]

アボートしました



多分こうでしょうか。ついでに typo も直してます。

Index: compile.c
===================================================================
--- compile.c   (revision 14007)
+++ compile.c   (working copy)
@@ -2671,11 +2671,11 @@
                if (nd_type(vals) == NODE_ARRAY) {
                    special_literals = when_vals(iseq, cond_seq, vals,
l1, special_literals);
                }
-               else if (nd_type(vals) == NODE_SPLAT || nd_type(vals)
== NODE_ARGSCAT) {
+               else if (nd_type(vals) == NODE_SPLAT || nd_type(vals)
== NODE_ARGSCAT || nd_type(vals) == NODE_ARGSPUSH) {
                    NODE *val = vals->nd_head;
                    special_literals = 0;

-                   if (nd_type(vals) == NODE_ARGSCAT) {
+                   if (nd_type(vals) == NODE_ARGSCAT || nd_type(vals)
== NODE_ARGSPUSH) {
                        when_vals(iseq, cond_seq, vals->nd_head, l1, 0);
                        val = vals->nd_body;
                    }
@@ -2685,12 +2685,12 @@
                    ADD_INSNL(cond_seq, nd_line(val), branchif, l1);
                }
                else {
-                   rb_bug("NODE_CASAE: unknown node (%s)",
+                   rb_bug("NODE_CASE: unknown node (%s)",
                           ruby_node_name(nd_type(vals)));
                }
            }
            else {
-               rb_bug("NODE_CASAE: must be NODE_ARRAY, but 0");
+               rb_bug("NODE_CASE: must be NODE_ARRAY, but 0");
            }

            node = node->nd_next;
@@ -2753,10 +2753,10 @@
                    vals = vals->nd_next;
                }
            }
-           else if (nd_type(vals) == NODE_SPLAT || nd_type(vals) ==
NODE_ARGSCAT) {
+           else if (nd_type(vals) == NODE_SPLAT || nd_type(vals) ==
NODE_ARGSCAT || nd_type(vals) == NODE_ARGSPUSH) {
                NODE *val = vals->nd_head;

-               if (nd_type(vals) == NODE_ARGSCAT) {
+               if (nd_type(vals) == NODE_ARGSCAT || nd_type(vals) ==
NODE_ARGSPUSH) {
                    NODE *vs = vals->nd_head;
                    val = vals->nd_body;

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

In This Thread

Prev Next