[#32171] autoload_delete — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>
こんにちは、山本と申します。
> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。
山本です。
> アルゴリズムの意味がわからないで書いた、表層的なパッチなので
Hi,
> 1.9ではRationalとComplexを組み込みに、という話はありましたが、
原です。
ささだです.
[#32192] test-all results - ruby 1.9.0 (2007-11-09 patchlevel 0) [i686-linux] — SASADA Koichi <ko1@...>
ささだです.
[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>
遠藤と申します。
まつもと ゆきひろです
西山と申します
遠藤です。
[#32204] yydebug — Nobuyoshi Nakada <nobu@...>
なかだです。
[#32205] Use two pipes for duplex IO.popen — Tanaka Akira <akr@...>
改心して duplex な IO.popen で socketpair を使うのはやめよう
なかだです。
In article <20071111120021.7f0592e5.nobu@ruby-lang.org>,
[#32206] Integer#ord for 1.8 — Tanaka Akira <akr@...>
1.9 と 1.8 の両方で ?a.ord で 97 が得られるように、1.8 に
[#32219] trunkでビルド失敗 — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32247] round missing (mswin32) — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32263] toplevel irb method — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
[#32266] version string — SASADA Koichi <ko1@...>
ささだです.
[#32268] RFLOAT_VALUE(val), DOUBLE2NUM(dbl) — SASADA Koichi <ko1@...>
ささだです.
SASADA Koichi wrote:
[#32306] nanosecond Time and stat — Tanaka Akira <akr@...>
最近、nanosecond 単位な timestamp があるようです。
In article <874pflntd5.fsf@fsij.org>,
まつもと ゆきひろです
In article <E1Iu2GD-0004Wh-1I@x31>,
[#32308] core dump with undef/alias using dynamic symbols — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
遠藤と申します。
ささだです.
遠藤です。
ささだです.
[#32329] enumerator with single array and multiple arguments. — Tanaka Akira <akr@...>
enumerator を通すとひとつの配列と複数の引数が区別できません。
[#32330] defined?($&) — Tanaka Akira <akr@...>
ふと気がついたんですが、defined?($&) が "expression" になり
まつもと ゆきひろです
まつもと ゆきひろです
ささだです.
[#32333] test/ruby/test_eval.rb — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
[#32348] DRb test leaves ut_eval.rb process — Tanaka Akira <akr@...>
DRb のテストをすると、(テストがいろいろと失敗する他に) プロ
[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>
木村です。
まつもと ゆきひろです
木村です。
まつもと ゆきひろです
[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>
こんばんは。
卜部です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
成瀬です。
卜部です。
遠藤と申します。
遠藤です。
ささだです.
まつもと ゆきひろです
[#32404] SEGV on child process by fork on GC.stress. — Tanaka Akira <akr@...>
GC.stress = true 下で fork すると子プロセスが SEGV します。
まつもと ゆきひろです
In article <E1Iy7HA-0006zn-37@x31>,
まつもと ゆきひろです
ささだです.
[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>
ささだです.
さとうふみやす @ OSS テクノロジです。
ささだです.
まつもと ゆきひろです
[ruby-dev:32354] a[*a]+=1 dumps core
遠藤と申します。
1.9 で以下を実行すると落ちます。
$ ./ruby -e 'a[*a]+=1'
-- control frame ----------
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
-- backtrace of native function call (Use addr2line) --
0x80e8065
0x8105bd3
0x8105c9b
0x8116a6d
0x8116a88
0x81106e4
0x811725e
0x80dc4e2
0x80dc5b6
0x8059ec4
0x805de00
0x8057be0
0xb7dd3ea8
0x8057b01
-------------------------------------------------------
[BUG] compile_array: This node is not NODE_ARRAY, but NODE_SPLAT
ruby 1.9.0 (2007-11-23) [i686-linux]
アボートしました
ちゃんと setup_args するようにすればいいと思います。
おそらくこんな感じでしょうか。
Index: compile.c
===================================================================
--- compile.c (revision 14010)
+++ compile.c (working copy)
@@ -3298,8 +3298,9 @@
break;
}
case NODE_OP_ASGN1:{
+ unsigned long flag = 0;
DECL_ANCHOR(args);
- int argc;
+ VALUE argc;
ID id = node->nd_mid;
/*
@@ -3324,11 +3325,15 @@
INIT_ANCHOR(args);
COMPILE(ret, "NODE_OP_ASGN1 recv", node->nd_recv);
- argc = compile_array(iseq, args, node->nd_args->nd_body, Qfalse);
- POP_ELEMENT(args);
- ADD_SEQ(ret, args);
- ADD_INSN1(ret, nd_line(node), dupn, INT2FIX(argc+1));
- ADD_SEND(ret, nd_line(node), ID2SYM(idAREF), INT2FIX(argc));
+ if (nd_type(node->nd_args->nd_body) != NODE_ZARRAY) {
+ argc = setup_args(iseq, args, node->nd_args->nd_body, &flag);
+ ADD_SEQ(ret, args);
+ }
+ else {
+ argc = FIX2INT(0);
+ }
+ ADD_INSN1(ret, nd_line(node), dupn, INT2FIX(FIX2INT(argc)+1));
+ ADD_SEND_R(ret, nd_line(node), ID2SYM(idAREF), argc, Qfalse, LONG2FIX(flag));
if (id == 0 || id == 1) {
/* 0: or, 1: and
@@ -3356,8 +3361,16 @@
COMPILE(ret, "NODE_OP_ASGN1 args->head: ",
node->nd_args->nd_head);
- ADD_SEND(ret, nd_line(node), ID2SYM(idASET),
- INT2FIX(argc + 1));
+ if (flag & VM_CALL_ARGS_SPLAT_BIT) {
+ ADD_INSN1(ret, nd_line(node), newarray, INT2FIX(1));
+ ADD_INSN(ret, nd_line(node), concatarray);
+ ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),
+ argc, Qfalse, LONG2FIX(flag));
+ }
+ else {
+ ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),
+ INT2FIX(FIX2INT(argc) + 1), Qfalse, LONG2FIX(flag));
+ }
ADD_INSNL(ret, nd_line(node), jump, lfin);
ADD_LABEL(ret, label);
if (id == 0) { /* or */
@@ -3377,8 +3390,16 @@
COMPILE(ret, "NODE_OP_ASGN1 args->head: ",
node->nd_args->nd_head);
ADD_SEND(ret, nd_line(node), ID2SYM(id), INT2FIX(1));
- ADD_SEND(ret, nd_line(node), ID2SYM(idASET),
- INT2FIX(argc + 1));
+ if (flag & VM_CALL_ARGS_SPLAT_BIT) {
+ ADD_INSN1(ret, nd_line(node), newarray, INT2FIX(1));
+ ADD_INSN(ret, nd_line(node), concatarray);
+ ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),
+ argc, Qfalse, LONG2FIX(flag));
+ }
+ else {
+ ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),
+ INT2FIX(FIX2INT(argc) + 1), Qfalse, LONG2FIX(flag));
+ }
}
if (poped) {
--
Yusuke ENDOH <mame@tsg.ne.jp>