Scala 2.11.3 が生まれる前に死んでしまった話
↓に関して、https://gitter.im/scalajp/public で盛り上がってた内容をまとめました。
なぜこんなことになってしまうのだろう(未調査) https://github.com/skinny-framework/skinny-framework/issues/193
これ Skinny 側で何か work around できないですかね https://github.com/skinny-framework/skinny-framework/issues/193#issuecomment-58773130
2.11.3 を指定して build した Scalatra を scalaVersion := "2.11.0" なアプリから利用するのは問題なさそうだった。となると Scalatra に 2.11.3 でビルドした 2.3.1 を出してもらうようお願いするのが手っ取り早いのかな。こういう問題への対処、それでいいのかという気はするけど、ユーザが困ってしまうので。
Scalatra に issue 立てるのはまだ早いのでまずは scala-lang の JIRA へ...
2.11.3 の scala.collection.TraversableLike
の呼び出すメソッドが変わったってこと,,?
bincompat-backward.whitelist.conf に
+ // see github.com/scala/scala/pull/3925, SI-8627, SI-6440 + { + matchName="scala.collection.TraversableLike.filterImpl" + problemName=MissingMethodProblem + },
というのが増えてるな
これは影響範囲が大きすぎるような。
これが該当の変更かな? https://github.com/scala/scala/pull/3949 なぜ例外が起きるのかわかってないけど。
privateからprivate[scala]にすると、どちらにしろソース上はprivateだから問題なさそうに見えるけど、内部表現結構変わるとかそういう...
scalatraが標準ライブラリのコレクションを継承してることも一因だろうか。まぁ本当にあの変更が原因なら、scala本体側が明らかに悪そうだけど
2.11.3 はまだ様子見しよう...
これ、confに書いてるから確信犯だよなー。そんなに重要な修正だった and/or 他に修正方法なかったのだろうか。dbuildは全部同じversionでビルドやり直すから、こういう問題は多分検知されないし
キタコレ! play2でも trait Cookies extends Traversable[Cookie]
というのあるから、Scala 2.11.3 使って、request.cookies.filter
とかするとAbstractMethodError
発生する! https://github.com/playframework/playframework/blob/2.3.5/framework/src/play/src/main/scala/play/api/mvc/Http.scala#L683
@xuwei-k 2.11.3 はお蔵入り決定ですね
キタ━━━━(゜∀゜)━━━━ッ!!
キタ━━━━(゜∀゜)━━━━ッ!!
2.11.3 生まれる前に死んでしまったか…
R.I.P. 2.11.3
scala-internalsのメーリングリストで SI-8899 の話が始まらないのだけど、(時差とかあるし)まだ気づいてないか問題の重要性認識してる人が少ないのか、いやこの程度なら予定通り出すのか、それともclosedなところでtypesafeの人たちは既に話を始めているのか。もうしばらく待って(待たなくても?) 「えっ、明らかにバイナリ互換崩れてるのに、予定通り 2.11.3 公式アナウンスするつもりなんですか?」って scala-internals のメーリングリストに誰か投稿したほうが?
とりあえず知らせといた https://groups.google.com/d/msg/scala-internals/ZSx-ZW69BJA/bFF8PtjdzpsJ
お、はやい。ありがとうございます :+1:
:+1:
:+1:
おっ、このtweet https://twitter.com/xuwei_k/status/521272044663894016 がScalatra作者にretweetされたり、Scalazコミッターからmention来たりして広まってきた > /dev/null
お、「別の重要な問題も見つかったんだ」的な返信きてる・・・
"[SI-8900] Assertion failure in isAnonymousOrLocalClass - Scala" https://issues.scala-lang.org/browse/SI-8900
元のやつも、バグのPriorityをコミッターの人が1番上か2番目?に上げてるし、まぁ重要性は伝わってるみたいなので、あとは見守るしかないな
:pray:
BlockerでFix versionが2.11.4ってことは2.11.3はこのままお蔵入りか
2.11.3のtagできててcentralにもあがってるから、2.11.3がtarget versionのままではおかしいから、とりあえずtarget versionを2.11.4にあげただけで、お蔵入りかどうかなどの詳細はまだ決まってなさそう(というあくまでも予想)
アルパカの人より自分のほうがdbuildの仕組みとか把握してるっぽい https://twitter.com/extempore2/status/521379266789797888 し、とりあえずrevetして https://github.com/scala/scala/pull/4048 2.11.4 をはやめに出す方向になりそう?だし、大体予想通りなので言うこと無い > /dev/null
https://github.com/scalaz/scalaz/commit/6a1354d74#commitcomment-8130530 a few daysらしい
Also note 2.11.3 wasn't fully released (pushing binaries to Sonatype isn't the last step in the process).
アナウンスするまでがリリースってことかな
とりあえず、ぎりぎり公式アナウンス前に地雷踏んでくれた瀬良さんに感謝ですね・・・
ですね。アナウンス前なのでさほど混乱はなさそう。