2.10のときは、actorが分離されてなおかつdeprecatedになりましたが、2.11でも(当初言っていたとおり)scala-library.jarがscala-xml.jarとscala-parser-combinators.jarの3つにわかれます。
「3つに分かれる」というのは、これ書いている2.11.0-M4の時点の情報なので、2.11.0.finalが出る際には、変わっている(更に細かく分かれる?)可能性もあります。
2.10からactorはdeprecatedでしたが、scala-xmlやscala-parser-combinatorsは(少なくとも今のところ)「deprecatedにするために分けた」というわけではないようです*1
ちなみに、Scalaのcompilerも2.11.0.finalまでに「REPL関連」「Scaladoc関連」「コンパイラ本体」といったように分ける予定があるらしいです。(どのように分けるのかは完全には決まってない?)このコンパイラ側の変更に関しては、おそらく2.11では間に合わなかったみたいで、2.12でやる予定になったみたい。
これにより、androidでScalaをやってるユーザーなどにはかなり恩恵がありますね。
Scala2.10.2のscala-library.jarは、訳6.8MByte(7121818byte)だったのが
Scala2.11.0-M4の時点で5.5MByte(5798106byte)になっています。
http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.2/
http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.0-M4/
これなら、ギリギリproguardやらなくてもそのままいけるかもしれません(試したわけではない)
proguardするしないにかかわらず、Androidでjarのサイズは大問題(proguardの処理自体にも時間かかるし)なので。
また、個人的には以下のようなことを考えてますが、みんないつ頃から対応始めるんでしょうかね
scala-library.jarが、2.11からxmlとparser-combinatorsと3つに分かれる予定なので、「xmlやparser-combinatorsに依存しないようにライブラリのモジュール分けられるなら、今のうちからそうしておくべき」運動を展開していきたい
2013-07-26 11:59:15 via web
で(ちょっとはやすぎる気もするが)Scalazでそれを提案したいのだが、xmlとparsersに依存してる部分すごく少ないし、モジュールさらに2つ増えるのも若干微妙なので、もうxmlとparserに依存してる部分単に削除してもいいんじゃないかくらいに個人的には思ってるんだが
2013-07-26 12:08:33 via web to @xuwei_k
誤解のないようにいっておくと、もちろん依存を追加すれば引き続きxmlやparser-combinatorは使えるので、無理に急ぐ必要はありません*2
まだあまり必要ないでしょうが、Scala2.10以前と、2.11をsbtでcross buildする場合*3は、以下のような感じで地味にif文を書くことになりますScalaのversionと、xmlやparser-combinatorのversionが関係なくなったので、最新の書き方はScala公式ページを見てください。
libraryDependencies <++= scalaVersion{ v => if((v startsWith "2.9") || (v startsWith "2.10")) Seq() else Seq( "org.scala-lang" % "scala-parser-combinators" % v, "org.scala-lang" % "scala-xml" % v ) },
あと、モジュールが分かれる話とは関係ないですがついでに書いておくと、普通にsbt0.12.xを使うと、Scala2.11.xでsbt-consoleが動作しません。
https://groups.google.com/d/msg/simple-build-tool/Yz6hDX0lnHg/Bi0bdYmP2SsJ
「sbt0.13.xのlauncherを使ってsbt0.12を起動させる」と使えるようです。もちろん、sbt0.13はScala2.11対応してるようです。