BT

Scala 2.11 メジャーリリース最新版

| 作者: Bienvenido David フォローする 1 人のフォロワー , 翻訳者 株式会社オープンストリーム 中村 フォローする 0 人のフォロワー 投稿日 2014年6月16日. 推定読書時間: 3 分 |

原文(投稿日:2014/05/06)へのリンク

Typesafe社は最近、三条項BSDライセンスに基づくScala 2.11のリリースを発表した。このメジャーリリースにはscalac, REPL, パッケージング/モジュール化, マクロ, コレクションライブラリ, その他様々なバグフィックスが含まれる。Scala 2.11はJava6をターゲットとしており、Java8については限られた範囲での試験的サポートに留まっている。2.10系とのバイナリ互換性はないが、2.10にて廃止予定警告 (deprecation warning) なしでコンパイルされたコードは2.11でもコンパイル出来るようだ。

2.11系から組み込まれた新機能を下記に抜粋して紹介する。

コレクション. List map, flatMap, collectのパフォーマンスが向上した。Immutable HashMapとHashSetは処理が早くなり、メモリフットプリントが削減された。また、キーがLongもしくはAnyRefの場合のパフォーマンス向上のため、Mutable LongMapとAnyRefMapが追加された。

コンパイラ. インクリメンタルコンパイルとバッチコンパイルの性能が向上した。試験的.NETバックエンドが除去された。未使用の変数や型、インポート等を警告してくれるよう-Xlintがアップデートされた。試験的バックエンドとscalacのオプティマイザとしてGenBCodeが導入された。試験的-Ydelambdafy:methodを使用することで、少ないバイトコードで高速に無名関数がコンパイルされるようになった。さらに、定数評価による部分木の削除が行われるようになった。

REPL. インタプレタがJSR-223に準拠したスクリプトエンジンとなった。逆アセンブラコマンド:javapがJava 7で動作するようになった。新コマンド :kindによって型コンストラクタから基の型が分かるようになった。

モジュール化. XML、パーサコンビネータ、Swing、継続のモジュールがコアのScala標準ライブラリから分離された。モジュールは個別に、もしくはScalaリリースを構成するモジュールを統合するscala-library-allにて使用可能である。コンパイラについても内部でモジュール化されており、プレゼンテーションコンパイラ、scaladoc、REPLを分離している。これらのコンパイラモジュールはScala 2.12にて別々のJARとなる予定だ。

マクロ. 構文木を操作するための使いやすい表記法である、準クォートが追加された。さらに、Scalaメタプログラマにとって知っておくべきリフレクションとマクロについての多数の重要な変更がある。詳しくはマクロ Scala2.11での変更点に記載されている。

Scala 2.11は2.10とのバイナリ互換性はないため、2.11を使用するためビルドをアップデートする必要があるだろう。Scala 2.11リリースノートの使用可能プロジェクトセクションにて、既に2.11用に対応されたScalaプロジェクトの一覧を確認出来る。また、多数の非推奨も発表されており、非推奨セクションにて確認することが出来る。例えば、scala-actors, scala.concurrent.future, scala.concurrent.promise等が非推奨となっている。

Scala 2.11を始めるには、Typesafe ActivatorのHello Scala 2.11テンプレートが使用出来る。Eclipse 4.2/4.3 (Juno/Kepler)用のScala 2.11アップデートサイトからEclipseのScala用IDEが利用可能である。Scala 2.10からアップグレードする場合は、アップグレード前に全ての非推奨警告を解決しておくことをお勧めする。また、XML、パーサ、Swingモジュールを使用している場合、これらの依存関係を明示的に追加する必要がある。アップグレードする決心が付かない人に注意してほしいこととしては、2.10系はメンテナンスモードに入り、2014年末にはバージョン2.10.5にて終了となる可能性が高いという点が挙げられる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT