日本Scalaユーザーズグループでは、Scalaのより一層の普及を目指しています。
scala-lang.orgのニュースの抄訳です(翻訳:mhanada) 原文
Scala 2.12.0-M1のリリースを発表します。
Scala 2.11.xで非推奨の警告が出ないコードは2.12.xでもコンパイルできるはずです(リフレクションのような実験的APIは保証していません)。もしコンパイルできなければ不具合を報告してください。
Scala 2.12エコシステムのコアプロジェクトを利用できるようにコミュニティと協力しています。我々がScalaの標準ライブラリを改良し続けられるようにするため、このリリースは2.11.x系列とのバイナリ互換性は確保されません。
Scala 2.12系列はJava 8をターゲットにしています。Scala 2.12コンパイラを含め、Scala 2.12で書かれたプログラムはJava 8以降でのみ実行できます。ただし、このマイルストーンリリース(2.12.0-M1)ではまだJava 6をターゲットにしています。
Scala 2.12には2.11系列の不具合修正と改善がすべて含まれています。
現時点でのマイルストーンサイクルでは、Scala 2.12はまだ2.11とかなり近い状態のままです。
Scala 2.12では以下の変更が予定されています。
Java 8形式のクロージャ。ScalaコンパイラはJava 8と同じやり方でクロージャクラス(ラムダ)を生成するようになります。この機能に関する設計メモがこのgistにあります。
SAM(Single Abstraction Method)型用のラムダ構文。Java 8と同じようにScala 2.12では単一の抽象メソッドを持つ型のインスタンス化がラムダでできるようになります。この機能は-Xexperimentalコンパイラオプションを使うとScala 2.11ですでに利用可能です。この機能により、Java 8向けに書かれたライブラリをScalaで使用するときの使い勝手が改善されます。
新しいバックエンドとオプティマイザ。-Ybackend:GenBCodeコンパイラオプションを使うとScala 2.11でも使える”GenBCode”バックエンドがデフォルトで有効になります。さらにScala 2.12では新しいインライン化とバイトコードオプティマイザが含まれるようになります。新しいオプティマイザの不具合や、今後の作業項目はscala-optリポジトリのイシュートラッカーで管理していきます。
上記のリストが全てではなく、マイルストーン期間中に追加される予定です。
このマイルストーンで、ScalaチームとコントリビュータはScala 2.12特有の47のバグを修正しました。Scala 2.12の開発期間中に不具合修正の2.11へのバックポートも可能な限り続けていきます。
以下のモジュールはScala 2.12から取り除かれています。
ScalaのアクターはScala 2.12には含まれていません。代わりにAkkaのアクターライブラリを使用してください。ライブラリを移行するためには、Scala 2.12へアップグレードする前にScalaアクターのマイグレーションガイドを見てください。
Scalaの配布用アーカイブとmavenのscala-library-all依存設定にはAkkaのアクターは含まれません。Akkaのアクターライブラリをプロジェクトに追加するためには、Akkaの依存設定を追加してください。
継続(continuations)プラグインはScala 2.12配布パッケージに含まれません。
バグを見つけたらイシュートラッカーに登録してください。バグかどうかわからないときはscala-userメーリングリストで相談しましょう。新しい不具合を登録するときはすでに登録されていないか前もって検索してください。
Scala IDE for EclipseはScala 2.12リリースと同時にリリースされる予定ですが、このマイルストーンリリース時点ではまだリリースされていません。
Scala 2.12で使えるライブラリやフレームワークをチェックしてください。
Scala 2.12のマイナーリリースはバイナリ互換性を確保しますが、マイルストーンやリリース候補はこの限りではありませんので注意してください。
scala-lang.orgのニュースの翻訳です(翻訳:mhanada) 原文
Scala 2.12ではJava8が必須になります。この移行をできるだけスムーズにするためのプランを以下に記します。
メソッドハンドルを利用した効率的なラムダのコンパイル。(2.11では互換用の個別のモジュールが必要です。下記参照。)
以下の機能の開発は2015年から開始します。これらはバイナリ非互換のため、2.11には導入しません。
Scala 2.10.5 (2014年第4四半期)は2.10系列の最終リリースになります。2.11.xは2014年に5つのリリース、2015年にあといくつかを予定しています(2.11.xの最終リリースは検討中です)。2.12の開発は2014年の第4四半期にTypesafeでインフラの作業から開始されます。開発のフォーカスは2015年に2.12へと移ります。
2.10.0 2013/01/04 2.10.x 最初のリリース
2.11.0 2014/04/16 2.11.x 最初のリリース
2.11.1 2014/05/19
2.11.2 2014/07/21
2.11.3 2014/09/29
2.10.5 2014 第4四半期 2.10.x 最終リリース
2.12.0-M1 2014/11/24
2.11.4 2014 12月
2.12.0-M{2,3,4} 2015 第{1,2,3}四半期 2.12.0-Mx 3ヶ月おきのリリース
2.12.0-M5 2015 10月
2.12.0-RC1 2015 11月(M1の1年後)
2.12.0 2016 1月
2.11の開発中に、合計100万行に上るよく知られたオープンソースプロジェクト群のコミュニティビルドを通してリリースプロセスと回帰テストの自動化を大きく進歩させました。リリーススクリプトとコミュニティビルドは基本的に毎日最新のソースコードで実行されています。
上記のように、Scala2.11.1と同様バージョン2.x.yのy>0に対してはリリース候補を出さないことに決定しました。こうすることで決められたスケジュールにそってもっと頻繁にマイナーバージョンアップをリリースすることができるようになります。
(このロードマップは2014-06-30に公開されました。)