夜1時に仕事から帰ってきて32℃とかひどくね。
Parallelsのベータ版でZetaが動かないか試してみた。
結論から言えば、前と変わらず無理だったんだけど。
やはりブートローダが別ディスクのパーティションを認識出来ないんじゃないかと思うんだが。
同じディスクのパーティションが認識できるのかどうかは確認してないんだけど、Haikuのイメージが*1起動できるというのはそういうことなんじゃないかと。
となるとCD-ROMから起動できないのが気にはなるが。
でもCD-ROMの起動で最初のトラックにブート可能なFDDイメージが入っていてそこから起動、ってのが普通なんだよな。とすると、ブートローダが起動した時点では仮想FDDから起動してることになってて、CD-ROMはブートローダが別にマウントしなくちゃいけないのかな?
ほんとうかなぁ。CD-ROMの最初のトラックが起動可能なFDDイメージというのは正しかったと思うんだけど。
なんにせよHDDとは違うとは思う。
で、試したいのは、インストール済みのHDDイメージをひっこぬいてそれでブートできるかどうか。でもひっこぬくのめんどい。
土日でやれるといいけど。あー、Zeta1.2も欲しいな。
*1 ちょっといじる必要があるにせよ
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はどうなるか。
つまりクラスの特異メソッド内の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には何が表示されるか。
つまりA内でのtest = 'ccc'はローカル変数への代入と。
ほんとむずいって。