[#44289] [Ruby 1.9 - Feature #5128][Open] 日本語ドキュメントをUTF-8に — Shyouhei Urabe <shyouhei@...>
34 messages
2011/08/01
[#44290] Re: [Ruby 1.9 - Feature #5128][Open] 日本語ドキュメントをUTF-8に
— Kenta Murata <muraken@...>
2011/08/01
=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82 =20
[#44294] Re: [ruby-dev:44290] Re: [Ruby 1.9 - Feature #5128][Open] 日本語ドキュメントをUTF-8に
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/08/01
(2011/08/01 11:10), Kenta Murata wrote:
[#44297] Re: [ruby-dev:44294] Re: [ruby-dev:44290] Re: [Ruby 1.9 - Feature #5128][Open] 日本語ドキュメントをUTF-8に
— "Martin J. Dürst" <duerst@...>
2011/08/01
On 2011/08/01 12:04, KOSAKI Motohiro wrote:
[#44293] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Nobuyoshi Nakada <nobu@...>
2011/08/01
[#44295] Re: [ruby-dev:44293] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Urabe Shyouhei <shyouhei@...>
2011/08/01
(08/01/2011 11:52 AM), Nobuyoshi Nakada wrote:
[#44299] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Nobuyoshi Nakada <nobu@...>
2011/08/01
なかだです。
[#44302] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/08/01
(2011/08/01 13:28), Nobuyoshi Nakada wrote:
[#44382] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Ayumu Aizawa <ayumu.aizawa@...>
2011/08/12
あいざわです
[#44390] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Urabe Shyouhei <shyouhei@...>
2011/08/15
(08/12/2011 10:57 AM), Ayumu Aizawa wrote:
[#44392] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Nobuyoshi Nakada <nobu@...>
2011/08/16
(11/08/15 17:41), Urabe Shyouhei wrote:
[#44393] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— "NARUSE, Yui" <naruse@...>
2011/08/16
2011年8月16日10:15 Nobuyoshi Nakada <nobu@ruby-lang.org>:
[#44418] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Ayumu AIZAWA <ayumu.aizawa@...>
2011/08/24
[#44431] Re: [ruby-dev:44418] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/08/27
> あいざわです
[#44443] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Ayumu Aizawa <ayumu.aizawa@...>
2011/09/01
あいざわです
[#44444] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Urabe Shyouhei <shyouhei@...>
2011/09/01
誰からも文句が出ないのを見届けて今週中くらいを目安に卜部がpullします。
[#44445] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/09/01
> 誰からも文句が出ないのを見届けて今週中くらいを目安に卜部がpullします。
[#44446] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に
— Ayumu Aizawa <ayumu.aizawa@...>
2011/09/01
> 他のファイルもやる必要があるという話なので、自分でコミットしてもらったほうが
[#44304] [Ruby 1.9 - Feature #5133][Open] Array#unzip as an alias of Array#transpose — Kenta Murata <muraken@...>
6 messages
2011/08/01
[#44315] [Ruby 1.9 - Bug #5139][Open] sigsegv のスタックオーバフロー — Tomoyuki Chikanaga <nagachika00@...>
18 messages
2011/08/02
[#44329] [Ruby 1.9 - Bug #5151][Open] test/socket/test_socket.rb fail when udp connection failed — Ayumu AIZAWA <ayumu.aizawa@...>
16 messages
2011/08/02
[#44337] [Ruby 1.9 - Bug #5152][Open] TestDateNew#test_civil が GC.stress = true 下で Failure — Tomoyuki Chikanaga <nagachika00@...>
4 messages
2011/08/03
[#44368] [Ruby 1.9 - Feature #5180][Open] net/http の接続時に用いる IP アドレスの指定 — Yui NARUSE <naruse@...>
15 messages
2011/08/10
[#44378] [Ruby 1.9 - Feature #5180] net/http の接続時に用いる IP アドレスの指定
— Kazuhiro NISHIYAMA <redmine@...>
2011/08/11
[#44370] [Ruby 1.9 - Feature #5180] net/http の接続時に用いる IP アドレスの指定
— Yui NARUSE <naruse@...>
2011/08/10
[#44371] Re: [Ruby 1.9 - Feature #5180] net/http の接続時に用いる IP アドレスの指定
— Tanaka Akira <akr@...>
2011/08/10
2011年8月10日15:05 Yui NARUSE <naruse@airemix.jp>:
[#44372] Re: [Ruby 1.9 - Feature #5180] net/http の接続時に用いる IP アドレスの指定
— "NARUSE, Yui" <naruse@...>
2011/08/10
2011年8月10日15:20 Tanaka Akira <akr@fsij.org>:
[#44413] [Ruby 1.9 - Bug #5217][Open] lineno is broken when source code has about 7000 lines — Yusuke Endoh <mame@...>
11 messages
2011/08/23
[#44416] [Ruby 1.9 - Bug #5217] lineno is broken when source code has about 7000 lines
— Hiroshi Nakamura <nakahiro@...>
2011/08/24
[#44417] Re: [Ruby 1.9 - Bug #5217] lineno is broken when source code has about 7000 lines
— Yusuke ENDOH <mame@...>
2011/08/24
遠藤です。
[ruby-dev:44414] [Ruby 1.9 - Bug #5217] lineno is broken when source code has about 7000 lines
From:
Yusuke Endoh <mame@...>
Date:
2011-08-23 14:43:49 UTC
List:
ruby-dev #44414
Issue #5217 has been updated by Yusuke Endoh.
Assignee set to Koichi Sasada
----------------------------------------
Bug #5217: lineno is broken when source code has about 7000 lines
http://redmine.ruby-lang.org/issues/5217
Author: Yusuke Endoh
Status: Open
Priority: Normal
Assignee: Koichi Sasada
Category:
Target version:
ruby -v: ruby 1.9.4dev (2011-08-23 trunk 33019) [i686-linux]
遠藤です。
asakusa.rb で出た話だそうですが (なひさんからの伝聞) 、soap4r と
simplecov を組み合わせると [BUG] bug が出るそうです。
いろいろ話を聞かせてもらった結果、以下のようにすると再現できました。
$ ruby -e 'puts "p\n" * 7000; puts "p([1"; puts "])"' > t.rb
$ cat t.rb
p
p
p
# ... 7000 行ほど p ...
p
p
$ ./ruby -rcoverage -e 'Coverage.start; load "t.rb"'
応急措置ですが、以下のパッチで直ります。
(rb_bug("bug") というアホメッセージは私の所業のようです。スミマセン)
害はないと思うので、これはこれでコミットしておこうと思います。
diff --git a/thread.c b/thread.c
index 6970d8f..57a6962 100644
--- a/thread.c
+++ b/thread.c
@@ -4764,7 +4764,7 @@ update_coverage(rb_event_flag_t event, VALUE proc, VALUE self, ID id, VALUE klas
long line = rb_sourceline() - 1;
long count;
if (RARRAY_PTR(coverage)[line] == Qnil) {
- rb_bug("bug");
+ return;
}
count = FIX2LONG(RARRAY_PTR(coverage)[line]) + 1;
if (POSFIXABLE(count)) {
しかしそもそもの原因は、iseq のバイトコードの大きさが unsigned short
で管理されているために、バイトコードの大きさが 65536 を超えると行番号を
見失ってしまうという問題のような気がします。
私も最初勘違いしたのですが、行番号が 16 ビットという問題とは別であること
に注意。65536 行ほど大きくなくても 7000 行くらいで発症します。
これにより、rb_vm_get_sourceline の挙動が怪しくなっています。
これは coverage に限らず、
set_trace_func(proc {|type, file, line,| p line if type == "line" })
p
p
p
# ... 7000 行ほど p ...
p
p
p
というコードの出力が、
2
3
4
5
...
6550
6551
6552
6553
7001
7001
7001
7001
7001
...
となります。行番号が飛んでいることがわかります。
直そうと思えば、以下のようにすれば直ります。しかしあえて short を選んで
いるのは省メモリ化のためだと思いますので、これは既知の制限ということで
しょうか > ささださん
diff --git a/iseq.h b/iseq.h
index beeacbb..9c19501 100644
--- a/iseq.h
+++ b/iseq.h
@@ -44,9 +44,9 @@ struct rb_compile_option_struct {
};
struct iseq_insn_info_entry {
- unsigned short position;
- unsigned short line_no;
- unsigned short sp;
+ unsigned long position;
+ unsigned long line_no;
+ unsigned long sp;
};
struct iseq_catch_table_entry {
--
Yuskue Endoh <mame@tsg.ne.jp>
--
http://redmine.ruby-lang.org