[#34556] /(.)(.)/.match("ab").select {|v| true } is empty — Tanaka Akira <akr@...>
以下のように、MatchData#select でブロックが常に真なのに結果
[#34567] write to broken pipe on Linux — Nobuyoshi Nakada <nobu@...>
なかだです。
まつもと ゆきひろです
なかだです。
[#34571] Re: [ruby-cvs:23495] Ruby:r16255 (ruby_1_8, trunk): * range.c (range_step): allow float step bigger than zero but less — Tanaka Akira <akr@...>
In article <200805011435.m41EZFBL003014@ci.ruby-lang.org>,
[#34605] Array#mapがEnumeratorを返さない — rubikitch@...
るびきちです。
[#34623] Marshal.load( Marshal.dump( Float ) )の不一致@1.8 — "H.Holon" <holon@...>
H.Holonです。
[#34646] break in lambda — Tanaka Akira <akr@...>
lambda 直下に break があったとき、なにごともなかったかのよう
[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>
ワナベと申します。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
須藤です。
[#34648] Bignum のメソッドからの bigzero_p — wanabe <s.wanabe@...>
ワナベと申します。
[#34676] removing Array#nitems {} — "Akinori MUSHA" <knu@...>
Array#nitems はnilでない要素を数えるメソッドですが、ブロックを
[#34691] ext/openssl and newer OpenSSL — Takahiro Kambe <taca@...>
こんにちは。
[#34692] [ruby1.9] fork と thread — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#34726] memory leak by Array#sort! — Tanaka Akira <akr@...>
以下のように、Array#sort! の中で配列を変更するとメモりリークします。
[#34739] net/imap uses Thread#raise — Tanaka Akira <akr@...>
net/imap が原因だと思うのですが、
前田です。
In article <704d5db90805210204o7aa80c00lfeb13a34230c2c03@mail.gmail.com>,
なかだです。
[#34741] Date.parse("##-##-##") — "Akinori MUSHA" <knu@...>
Date.parse("##.##.##") の ruby_1_8 における挙動が trunk とも
> Date.parse("##.##.##") の ruby_1_8 における挙動が trunk とも
[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.7-preview3 をリリースしました。
お疲れ様です。
At Mon, 19 May 2008 11:28:10 +0900,
In message <86k5hrow30.knu@iDaemons.org>
もう一つ追加です。
At Mon, 19 May 2008 18:55:42 +0900,
[#34751] benchmark result of reverse_complement — SASADA Koichi <ko1@...>
ささだです.
[#34758] Re: [ruby-cvs:23717] Ruby:r16477 (trunk): * regparse.c (PINC): use optimized enclen() instead of — SASADA Koichi <ko1@...>
ささだです.
遠藤と申します。
[#34768] Improvement of lazy sweep patch — authorNari <authornari@...>
authorNariです。
まつもと ゆきひろです
[#34775] (1..5).step(SimpleDelegator.new(1.5)) {|x| p x} differ from (1..5).step(1.5) {|x| p x} — Tanaka Akira <akr@...>
以下のように (1..5).step(1.5) {|x| p x} と
[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>
木村です。
こんにちは、なかむら(う)です。
木村です。
木村です。
こんにちは、なかむら(う)です。
木村です。
こんにちは、なかむら(う)です。
[#34810] -Wall — SASADA Koichi <ko1@...>
ささだです.
[#34830] return value of pp — "Yusuke ENDOH" <mame@...>
遠藤です。
[#34877] [Ruby 1.9 - Bug #11] prelude.c compilation problem on mswin32 — redmine@...
Issue #11 has been updated by Usaku NAKAMURA.
[#34883] [#19002] RUBY_* constants — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>
いまいです。
Nobuhiro IMAI さんは書きました:
At Sat, 31 May 2008 21:06:47 +0900,
この話題についていろいろ試していて気付いたのですが
[ruby-dev:34576] uninitialized _tag.retval value is used.
気がついたのですが、_tag.retval を初期化しないで使うことがあ
るようです。
以下のように TH_PUSH_TAG(th); の直後で、まだ _tag が初期化さ
れておらず、どんな値でもおかしくない状態で、123456 という値
を代入します。
そして、vm_make_jump_tag_but_local_jump で retval を使うとき
に 123456 というになるどうかを調べるようにします。
Index: vm.c
===================================================================
--- vm.c (revision 16271)
+++ vm.c (working copy)
@@ -912,7 +912,11 @@ vm_make_jump_tag_but_local_jump(int stat
VALUE result = Qnil;
if (val == Qundef)
+ {
val = GET_THREAD()->tag->retval;
+ if(val == 123456)
+ fprintf(stderr, "retval is 123456\n");
+ }
switch (state) {
case 0:
break;
@@ -1142,6 +1146,7 @@ vm_eval_body(rb_thread_t *th)
VALUE initial = 0;
TH_PUSH_TAG(th);
+ _tag.retval = 123456;
if ((state = EXEC_TAG()) == 0) {
vm_loop_start:
result = vm_eval(th, initial);
そして、以下の s1.rb, s2.rb, s3.rb を用意します。
% cat s1.rb
def m
proc {
load "s2.rb"
}.call
ensure
GC.start
end
m
% cat s2.rb
require 's3.rb'
X.call
% cat s3.rb
X = proc do
lambda {
return
}.call
end
そして、上記の変更を行った ruby で s1.rb を実行すると、
retval が 123456 になることが検出され、その後で SEGV します。
% ./ruby s1.rb
retval is 123456
s1.rb:6: [BUG] Segmentation fault
ruby 1.9.0 (2008-05-02 revision 16271) [i686-linux]
-- control frame ----------
c:0006 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC :start
c:0005 p:0013 s:0012 b:0012 l:0008bc d:000011 BLOCK s1.rb:6
c:0004 p:0027 s:0010 b:0009 l:0008bc d:0008bc METHOD s1.rb:6
c:0003 p:0012 s:0006 b:0006 l:000005 d:000005 TOP s1.rb:8
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
:private_class_method
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP <dummy
toplevel>:17
---------------------------
DBG> : "s1.rb:6:in `ensure in m'"
DBG> : "s1.rb:6:in `m'"
DBG> : "s1.rb:8:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x8100595
0x8126ade
0x8126b3b
0x80cd770
0xb7fea440
0x8064f01
0x80f5d9d
0x8064aab
0x80f5c91
0x80d2200
0x80f6080
0x8064aab
0x8065425
0x8065d60
0x8065d7b
0x80fed93
0x80fa715
0x80fdf84
0x80fe2bd
0x805afbf
0x805e67e
0x8058ab5
0xb7e4bea8
0x80589b1
-------------------------------------------------------
zsh: abort (core dumped) ./ruby s1.rb
% gdb ruby core.3723
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public
License, and you are
welcome to change it and/or distribute copies of it under
certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show
warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host
libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
warning: Can't read pathname for load map: Input/output
error.
Reading symbols from
/lib/tls/i686/cmov/libpthread.so.0...done.
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
Reading symbols from /lib/tls/i686/cmov/librt.so.1...done.
Loaded symbols for /lib/tls/i686/cmov/librt.so.1
Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done.
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2
Reading symbols from
/lib/tls/i686/cmov/libcrypt.so.1...done.
Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1
Reading symbols from /lib/tls/i686/cmov/libm.so.6...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /lib/tls/i686/cmov/libc.so.6...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...Reading symbols
from /usr/lib/debug/lib/ld-2.3.6.so...done.
done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from
/tmp/b/lib/ruby/1.9.0/i686-linux/enc/encdb.so...done.
Loaded symbols for
/tmp/b/lib/ruby/1.9.0/i686-linux/enc/encdb.so
Reading symbols from
/tmp/b/lib/ruby/1.9.0/i686-linux/enc/trans/transdb.so...done.
Loaded symbols for
/tmp/b/lib/ruby/1.9.0/i686-linux/enc/trans/transdb.so
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Core was generated by `./ruby s1.rb'.
Program terminated with signal 6, Aborted.
#0 0xb7fea410 in ?? ()
(gdb) bt
#0 0xb7fea410 in ?? ()
#1 0xbfffdb9c in ?? ()
#2 0x00000006 in ?? ()
#3 0x00000e8b in ?? ()
#4 0xb7e5f811 in raise () from /lib/tls/i686/cmov/libc.so.6
#5 0xb7e60fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#6 0x08126b40 in rb_bug (fmt=0x815404d "Segmentation
fault") at error.c:226
#7 0x080cd770 in sigsegv (sig=11) at signal.c:551
#8 0xb7fea440 in ?? ()
#9 0x0000000b in ?? ()
#10 0xbfffdd2c in ?? ()
#11 0xbfffddac in ?? ()
#12 0x0000000b in ?? ()
#13 0x00000000 in ?? ()
(gdb)
--
[田中 哲][たなか あきら][Tanaka Akira]