分割コンパイルすると、AbstractMethodError
$ scala -version Scala code runner version 2.8.0.r20633-b20100122020238 -- Copyright 2002-2010, LAMP/EPFL
--- src/Parser.scala ---
class Parser {
def parse(t: Any): Unit = {
}
}
--- src/ResponseCommon.scala ---
trait ResponseCommon extends Parser {
private[this] var paramsParser: Parser = null
def withParamsParser(parser: Parser) = {paramsParser = parser; this}
override abstract def parse(t: Any): Unit = t match {
case ("params", value: List[_]) => value.foreach {paramsParser.parse(_)}
case _ => super.parse(t)
}
}
--- src2/MyResponseCommon.scala ---
class MyResponseCommon extends Parser with ResponseCommon
object MyResponseCommon {
def main(args: Array[String]) {
new MyResponseCommon
}
}
別々にコンパイルすると、
mkdir -p classes/out scalac -d classes/out src/*.scala mkdir -p classes/out2 scalac -cp classes/out -d classes/out2 src2/*.scala scala -cp classes/out:classes/out2 MyResponseCommon
AbstractMethodErrorになる。
java.lang.AbstractMethodError: MyResponseCommon.ResponseCommon$$paramsParser_$eq(LParser;)V
at ResponseCommon$class.$init$(ResponseCommon.scala:2)
at MyResponseCommon.(MyResponseCommon.scala:1)
at MyResponseCommon$.main(MyResponseCommon.scala:5)
at MyResponseCommon.main(MyResponseCommon.scala)
1回でコンパイルすれば、
mkdir -p classes/out scalac -d classes/out src/*.scala src2/*.scala scala -cp classes/out:classes/out2 MyResponseCommon
問題無し。バグ報告してみた。なんか内容が化けてしまった。ファイル添付しといたから、分かるかな。
猫はなんで、箱が好きなんだろうね〜
隠れられるからという説もあるけど、こんな浅い箱じゃあね。ダンボールの質感が好きなのかな。でも右のコルクの方が手(足?)触りはいいと思うんだけど。
君はコルクでもいいようだね。
Blu-ray double layer
Blue-rayのdouble layerって、片面なのね。DVD-RAMの時は、いちいち裏返すの面倒だったけど、片面ならいいなと思って、6倍速のを10枚ほど買ってきた。10枚セットはなくて、アキバのファーストメディアショップで、5枚で2828円ってのを2つ買ってみた。メーカーは三菱。
Braseroだとうまく書けないんで、結局NeroのLinux版を買ってしまった。
しかしビデオ用のメディアの方が、データ用より安いことがあるのは、なぜなんだろう。確か、ビデオ用の方が補償金込みなんだよね。良く分からん。
-Rメディアの書き込みというのは、いつもながらドキドキする。今17%。そういえば昔は、裏で重い処理をすると、失敗することがあって、かなり気を使ったよなぁ。Burn-Proofというのが出てから、過去の話になってしまったけど。








