From: Yukihiro Matsumoto Date: 2008-10-14T21:17:55+09:00 Subject: [ruby-dev:36728] Re: Segmentation fault in eval まつもと ゆきひろです In message "Re: [ruby-dev:36703] Re: Segmentation fault in eval" on Fri, 10 Oct 2008 18:23:30 +0900, Nobuyoshi Nakada writes: |At Fri, 10 Oct 2008 06:59:39 +0900, |Kazuhiro NISHIYAMA wrote in [ruby-dev:36698]: |> http://d.hatena.ne.jp/mamamoto/20081007/1223349255 |> のスクリプトを元にいじっていたらs="n=$*"で落ちました。 | |$*=0; $* が最小ですね。 | |argf回りを整理したときに、rb_define_virtual_variable()と間違えて |rb_define_hooked_variable()のsetterに0を渡すようにしたために、デ |フォルトのsetterが使われてしまっているというミスでした。 | |しかし、見直してみるとrb_define_hooked_variable()でreadonly変数 |を作る方法はないようです。readonly_setter()などを公開するのが簡 |単なのですが、どうしたものでしょうか。 なんか現状がよくわからないのですが、最少でfixするのはどんな 感じなんでしょうか。 readonly_setter()などは簡単なものなので、自分で定義すればい いんじゃないかと。 |さらにいうと、markerを独自に指定する方法もありません。 必要なケースってありましたっけ。 hooked variableはあんまり「よい」APIではない(Ruby的な意味で) ので、あんまり機能強化したくないんですが。 まつもと ゆきひろ /:|)