Scala勉強会でEmacsの話をしてきた。

週一という無謀なペースで開かれているScala勉強会in渋谷(#rpscala)に参加しています。
第6回の今回はちょっと発表してみました。


テーマは「ENSIME」
ひとつ前のエントリで書きましたが、Emacs上で動くScalaIDEです。


前半はENSIMEの紹介、
後半は発表というか、みんなでENSIMEのソースコードリーディングしましょうという感じでした。


資料とかまとめときます。
発表スライド
aemoncannon/ensime · GitHub
The ENSIME Blog: Building an IDE with the Scala Presentation Compiler: A Field Report
Scala勉強会第6回 in 渋谷 - Togetterまとめ



話題になったことなど

  • receiveとreact

ensimeではreceiveを多用している。
なぜreceiveを使っているのかについてはよくわからない。
ただコミットログには、reactを使うとIncrementalBuilderあたりで不都合が起きる、と書いてあるらしい。→あとで調べる


  • Actorの設定パラメータの話。

System.setProperty("actors.corePoolSize", "5")
System.setProperty("actors.maxPoolSize", "10")
Actorを使うときのチューニング。
これ重要。
ちなみになぜENSIMEはこの値にしているのかは謎。

  • S式をScalaでどう扱っているのか。

正規表現でまじめに頑張ってパースしていた。

  • ENSIMEはあまり綺麗な書き方ではない?

Actorの使いかたがいまいちだとか。
try-catchがやたら多いとか。
refactorしてやりたい、との声も。



ENSIMEのScalaのソースはScala上級者の人から見ると?なところが多いようでした。
んー、自分はまだそこらへんの感覚がわかっていない。


勉強会での発表は初めてでしたが、
逆にこっちがいろいろ教えてもらえてラッキーでした。
発表するのが一番勉強になりますね。