Scalaのソースコードを REPL 上で1行ずつ実行する build.sbt を書いた

Scala には REPL のテストをするための ReplTest っていうそのままの名前のクラスがあって

https://github.com/scala/scala/blob/v2.10.0-M2/src/partest/scala/tools/partest/ReplTest.scala

こんな感じに使います

https://github.com/scala/scala/blob/v2.10.0-M2/test/files/run/macro-repl-basic.scala
https://github.com/scala/scala/blob/v2.10.0-M2/test/files/run/macro-repl-basic.check

もちろん、Scala自体を作ってる中の人が使うためのものです。で、それつかってこんなもの作ってみました。↓


このあたり見てもらえばわかりますが
togetter Scala の Macro について
Scalaのマクロは同じコンパイル単位で動かないらしいですし、で

なんていってて、ちょっと試したところ、 Macro 以前にそもそも Scala2.10.0-M2 で xsbtscript が動かない!? っぽいんですが・・・(・ω・`) *1

この作ったやつなら、 「いちいち sbt で project 分けて*2作らなくても、同じファイルに書けて手軽にmacro 実行できるよねー(?)」 という。

まぁ macro 試す以外にも色々使えると思いますが。

そしてこのままじゃあれなので、できれば sbt-plugin にしてみるとか、 conscript のアプリにしたい・・・


追記:

sbt plugin つくった(`・ω・´)
https://github.com/xuwei-k/repl

*1:ちゃんと調べてないから、自分の設定が悪いだけの可能性もあるが・・・

*2: 普通にやるとこんな感じ https://github.com/xuwei-k/compile-time-fibonacci で分ける必要あり