[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30273] Re: exception on Singleton

From: SASADA Koichi <ko1@...>
Date: 2007-02-05 17:11:46 UTC
List: ruby-dev #30273
 ささだです.

SASADA Koichi wrote:
>  このようなプログラムが動かなくなっているようです。多分、ivar2 関係で、
> Singleton で使う @__mutex__ という変数が nil になっているので、その辺に
> 理由があるんじゃないかと思います。

 最初,この辺は ivar2 の実装がまずいのかな,と思ったんですが,ちょっと
よくわかりませんでした.なんとなく,意図した挙動になっているような気もし
ます.

 実装が正しいとして,対処としては,

1. Singleton の実装を変える(@__mutex__ を @mutex__ にする,など)
2. @_v でクラスローカルインスタンス変数とするのをやめる

になるかと思います.どうしたもんでしょうか.1 の対処で動くことは確認しま
した.

 個人的には,@_v のようなインスタンス変数は既に沢山あるので,@_v 以外の
選択肢を模索する(たとえば,@.v や @v!,@v@ とか)のもありなのではないか
なと思うのですが,どうでしょうか.Matzにっきで散々繰り返された話題で,い
まさら反対意見言うなよ,ということなのかもしれませんが.個人的には @.v
がいいです.で,$.v がスレッドローカル変数.@v@と$v$の組もいいか.

-- 
// SASADA Koichi at atdot dot net


In This Thread