[#46689] [IMPORTANT] 2.0.0 release plan — Yusuke Endoh <mame@...>
ALL COMMITTERS SHOULD READ THIS MAIL! コミッタはこのメール読んで!
5 messages
2012/12/02
[#46707] [ruby-trunk - Feature #7510][Open] irb --help が古い — "sho-h (Sho Hashimoto)" <sho-h@...>
6 messages
2012/12/04
[#46710] [ruby-trunk - Bug #7520][Assigned] irb/completion でインスタンス変数がチェックされていない — "tarui (Masaya Tarui)" <tarui@...>
4 messages
2012/12/05
[#46747] [ruby-trunk - Bug #7572][Open] クラス定義においてスーパークラスとしてクラスでないものを指定してもエラーにならない事がある — "tadf (tadayoshi funaba)" <redmine@...>
6 messages
2012/12/16
[#46750] [ruby-trunk - Bug #7575][Open] Struct のメンバーをアクセサで参照できない事がある — "tadf (tadayoshi funaba)" <redmine@...>
4 messages
2012/12/16
[#46766] [ruby-trunk - Bug #7590][Open] parallel test-all で test_settracefunc が cfp consistency error — "tarui (Masaya Tarui)" <tarui@...>
5 messages
2012/12/19
[#46797] [ruby-trunk - Bug #7603][Open] app_factorial と so_ackermann が動かない — "authorNari (Narihiro Nakamura)" <authorNari@...>
5 messages
2012/12/22
[#46798] Re: [ruby-dev:46797] [ruby-trunk - Bug #7603][Open] app_factorial と so_ackermann が動かない
— SASADA Koichi <ko1@...>
2012/12/22
あれぇ,以前よりも増やしたつもりだったんだけど....
[#46807] [ruby-trunk - Bug #7625][Open] Arrayを継承したオブジェクトのcompactがArrayを返す — "mogya@... (Daisuke Furukawa)" <mogya@...>
19 messages
2012/12/26
[#46813] backport93からの移動 [Re: [ruby-core:51175] [Backport93 - Backport #7632] IRB autocompletion bug] — keiju@... (keiju ISHITSUKA)
けいじゅ@いしつかです.
3 messages
2012/12/29
[ruby-dev:46695] [ruby-trunk - Bug #7502][Open] ObjectSpace.each_object で inspect できないオブジェクトが渡ってくる
From:
"ko1 (Koichi Sasada)" <redmine@...>
Date:
2012-12-03 10:01:59 UTC
List:
ruby-dev #46695
Issue #7502 has been reported by ko1 (Koichi Sasada).
----------------------------------------
Bug #7502: ObjectSpace.each_object で inspect できないオブジェクトが渡ってくる
https://bugs.ruby-lang.org/issues/7502
Author: ko1 (Koichi Sasada)
Status: Open
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0
ruby -v: ruby -v: ruby 2.0.0dev (2012-12-03 trunk 38155) [x86_64-linux]
西山さんに,
http://bugs.ruby-lang.org/issues/7435#note-4
のコードが動かない,と教えて貰って調べてみると,
64bit 環境で 4 な VALUE が入った Array オブジェクトが
辿れることがわかりました.
(64bit flonum 環境では,4 はあり得ない値)
どこかと調べてみると,compile.c で
#define ADD_CATCH_ENTRY(type, ls, le, iseqv, lc) \
(rb_ary_push(iseq->compile_data->catch_table_ary, \
rb_ary_new3(5, (type), \
(VALUE)(ls) | 1, (VALUE)(le) | 1, \
(VALUE)(iseqv), (VALUE)(lc) | 1)))
とあるところで type が 4 だった,というオチでした.type には
iseq_catch_table_entry::catch_type が入っており,こいつらは指定のない
enum なので,4 が入ったという感じです.
iseq_catch_table_entry::catch_type の各値を Fixnum にすることで解決しようと思います.
ここを tmp ary にするなり,別の方法もありますが,とりあえず.
今回のことで得た教訓:
- ARRAY_PTR[x] = y というコードは死ぬべきである
(こうなっているところを探し回って 4 が代入されたところを探した)
2.1 では,ここをマクロ化したい(ライトバリアとかにも役立つ).
- ObjectSpace.reachable_objects_from() が役に立つか! と思ったけど,
今回は役立てられなかった.
--
http://bugs.ruby-lang.org/