ものがたり(旧)

atsushieno.hatenablog.com に続く

しばらく何も書いてないじゃん。

最近はずっとunsuccessful hackingばかりで宜しくない。Encoding.GetEncodings()の実装を書いたらruntimeのSIGSEGVが起きて動かず、XmlTextWriterの20%高速な実装を書いたもののテストが何件も通らず(互換厨のためだけにあるテストが多いというのも悲しい事実である)、やむなく放置。XmlReader.Create()用のXmlTextReaderみたいなのも書きかけ。そしてI18Nを消してしまえという指令(?)の下、ByteEncodingのGetBytes()を高速化したいのだけど、pnetのベタなswitch-case展開(case '\uXXXX': byte = 0xXX; break;の羅列)が、何だかんだ言って高速なんじゃないかという、やや分の悪い作業だ。ASCIIみたいにfast-path最適化が出来れば良いのだけど。

2月に入ってからのMonoの動向でも書いてみよう。と思ったけど、うーん、ほとんど何も特に無い、かな。うちのチームは、皆バグフィックス作業が中心で、新機能の開発をしている人はほとんどいない。バグフィックスがほとんどだ。また早めのリリースという傾向でなくなっている気がする。1.1.14の噂は聞かない。

  • MonoDevelop: Lluisがsteticを使ったGUI designer integrationの作業を進めているらしい。と言っても、gladeui-sharpでやっていたものとの関係が見えないのだけど。steticはほぼmanaged codeなので、MDのAdd-Inに出来るとか、いろいろ利点はあるそうで。
  • JIT: 何か、tree moverの効果がいまいち出ていないらしい。ほとんどtreepropではなくinline,copyprop,consprop,deadceの効果だったとか。そんなわけで、そもそも何でその辺がデフォルトで有効に出来ないのか、という問題を掘り下げて、直して…というステップにいるらしい。ちなみに、SSAPREも、たまにスローダウンするコードパスがあるから、デフォルトで有効に出来ないらしい。実際のところ僕もssapreを有効にして大きくパフォーマンスが変わったという経験は無い。それと、regalloc高速化のためにZoltan星人が続けているlinear IL rewriteは、ほぼ終わっているらしいけど、まだ最適化をしたりOS Xでのバグ潰しをしたりという状態らしい。