ScalaのMacroの今後のロードマップ

ロードマップ発表されていたので、簡単に要約しておきます

http://scalamacros.org/news/2014/07/16/roadmap-for-scala-macros.html


重要なのは、このあたりでしょうか。以下引用

We plan to support existing experimental functionality in both scala.reflect and macro paradise for Scala 2.12. However, we don't plan to introduce new features, so the functionality of macros in Scala 2.12 and Paradise 2.12 is going to be the same as in Scala 2.11 and Paradise 2.11 modulo bugfixes and stability improvements. In particular, it is highly unlikely for macro annotations to become part of official Scala distribution in 2.12.

まず

  • 今までどおり、(experimentalで入ってる)scala.reflectのマクロや、macro paradiseのcompiler pluginについては2.12でも引き続きサポートは続ける
  • でも新機能は入れずに、基本的にバグ修正や安定性向上のみに注力する
  • macro annotationsは、オフィシャルのScala2.12のディストリビューションの一部にはならないだろう*1

という感じ。

続いて

We plan to support existing experimental functionality in both scala.reflect and macro paradise for Scala 2.12.

と言っていて、既存のマクロはメンテしつつ、scala.metaという、ついこの前のScaladays2014で発表された、新しいマクロの開発を頑張るらしいです。scala.metaについては以下に適当にリンク貼っておきます

また、Scala2.13以降の予定はそれほど具体的には言及されてませんが、最終的にexperimentalではない形でScala標準にマクロを入れたい、とは言っていて、scala.metaが順調に開発すすめば最終的にそれが入ることになるんでしょうかね?
ただ、IDEなどのツールを対応させないといけない、ということは意識しているようなので、そのあたり含めるとscala.metaが安定してその後標準に入るのは、結構先になりそうという印象です

*1:マクロアノテーションは、macro paradiseの機能の一部。とても強力でなんでもできるが、それゆえに扱いづらいのかも?IDEやsbtが現状だと全然対応できてなさそう。以前blog書いた http://d.hatena.ne.jp/xuwei/20140623/1403549702