kumaryu日記
2006-08-10 今日もあついぜ
_ あつい
夜1時に仕事から帰ってきて32℃とかひどくね。
_ [BeOS] VM
Parallelsのベータ版でZetaが動かないか試してみた。
結論から言えば、前と変わらず無理だったんだけど。
やはりブートローダが別ディスクのパーティションを認識出来ないんじゃないかと思うんだが。
同じディスクのパーティションが認識できるのかどうかは確認してないんだけど、Haikuのイメージが*1起動できるというのはそういうことなんじゃないかと。
となるとCD-ROMから起動できないのが気にはなるが。
でもCD-ROMの起動で最初のトラックにブート可能なFDDイメージが入っていてそこから起動、ってのが普通なんだよな。とすると、ブートローダが起動した時点では仮想FDDから起動してることになってて、CD-ROMはブートローダが別にマウントしなくちゃいけないのかな?
ほんとうかなぁ。CD-ROMの最初のトラックが起動可能なFDDイメージというのは正しかったと思うんだけど。
なんにせよHDDとは違うとは思う。
で、試したいのは、インストール済みのHDDイメージをひっこぬいてそれでブートできるかどうか。でもひっこぬくのめんどい。
土日でやれるといいけど。あー、Zeta1.2も欲しいな。
*1 ちょっといじる必要があるにせよ
_ [Riko] つかRuby
Rubyむずかしいよな。
クラス変数とかクラスのインスタンス変数とか。
class A def self.set_test1(v) @@test1 = v end def self.test1 @@test1 end def self.set_test2(v) @test2 = v end def self.test2 @test2 end set_test1 'a' set_test2 'a' end module M def self.set_test_m(v) @test_n = v end def self.test_m(v) @test_n end end class B < A set_test1 'b' set_test2 'b' end class C < B include M set_test1 'c' set_test2 'c' end p A.test1 # (1) p A.test2 # (2) p B.test1 # (3) p B.test2 # (4) p C.test1 # (5) p C.test2 # (6) C.set_test_m 'c' p C.test_m 'c' # (7)
さて、1〜7はどうなるか。
- 'c'
- 'a'
- 'c'
- 'b'
- 'c'
- 'c'
- つかその一行前でNoMethodError
つまりクラスの特異メソッド内のselfは継承後のクラス、というかレシーバか。しかしクラス変数はレシーバとか全然関係無くて、定義されたクラスっぽい感じ。
あとincludeと継承はすくなくとも特異メソッドの扱いが違うぞとか。
これむずくね?
もしかしたら1.9では変わってんのかな。クラス変数とか。
あと嵌まるのは。
class A def self.test=(v) @@test = v end def self.test @@test end test = 'ccc' p self.test # (1) end
これまた1には何が表示されるか。
- NameErrorで落ちる(@@testが初期化されていない)
つまりA内でのtest = 'ccc'はローカル変数への代入と。
ほんとむずいって。