sbt 1.0 で Scala 2.13.0-M2 がコンパイルできない問題

0
Kenji Yoshida @xuwei_k

(´・ω・`) github.com/sbt/sbt/issues… [info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.13.0-M2. Compiling...

2017-08-12 14:55:20
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k 最近 REPL に変更が入ったので、まーそういうこともあると思いますね。compiler bridge は設定可能なので、今後対策できるとは思いますが。

2017-08-12 14:56:59
Kenji Yoshida @xuwei_k

@eed3si9n_ja あーなるほど、最初クロスビルド関連のコマンド側がバグっているのかと思ったけど、単に、どうやっても2.13.0-M2が(最初からscalaVersionでsetされてても)sbt 1.0.0ではコンパイルできないだけですかね?これ。 (しかしなぜsbt 0.13.16は動くのか)

2017-08-12 15:02:05
Kenji Yoshida @xuwei_k

@eed3si9n_ja あー単に、 sbt 0.13.16 と 1.0.0 で ConsoleInterface.scala の内容が違うから、という理由っぽいですね(自己解決) github.com/sbt/zinc/blob/… github.com/sbt/sbt/blob/v… (ILoop参照してない)

2017-08-12 15:06:52
Kenji Yoshida @xuwei_k

sbtというかzincのbridge部分って、昔はもっと最小限な依存だった気がするんだけど、いつの間にか依存増えたのだろうか。それともリポジトリわけた影響で面倒になってるだけかな github.com/sbt/zinc/pull/… github.com/sbt/io/pull/81

2017-11-09 15:24:17
Kenji Yoshida @xuwei_k

テストで依存してるだけか

2017-11-09 15:44:05
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k テストで使ってるかもですが、bridge は compiler-interface と compiler に依存してるだけです。2.13 が面倒なのは、確認のために bridge を sbt 1 でコンパイルする必要があって、そのためには bridge が…

2017-11-09 15:44:28
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k でそれを解決すべくこの前 repo1.maven.org/maven2/org/sca… っていうのを publish してみたんですが、うまくそれがコンパイルしてくれてないみたいという所で止まっています。

2017-11-09 15:47:12
Kenji Yoshida @xuwei_k

sbt はつまり、compiler の bridge に互換なくなった場合でも最低限コンパイル可能なような、インクリメンタルコンパイルを一切行わない、scalacのmainに直接引数渡してコンパイルするだけのモードで動作可能であれば、今回の2.13.0-M2で発生したような面倒なブートストラッピング問題を回避出来るか?

2017-11-10 00:37:31
Kenji Yoshida @xuwei_k

おそらく Scala 本体のビルドを ant から sbt に変えたときにこのチェック消えてしまったのかなぁ github.com/scala/scala/co… github.com/sbt/zinc/blob/…

2017-11-10 12:29:55
Kenji Yoshida @xuwei_k

でもよく考えたら、Scala本体がsbtでビルドされてるんだから、Scala本体のビルドがsbt 1.xに移行されれば、2.13でbridgeがコンパイルできなくなる問題、勝手に検知されるようになるか?だとしても、この仕組み( twitter.com/xuwei_k/status… )がもし現状ないならあったほうがいいと思うが

2017-11-10 12:39:32
Kenji Yoshida @xuwei_k

compilers というkeyに独自に設定すれば不可能ではない? github.com/sbt/sbt/blob/v… github.com/sbt/zinc/blob/… github.com/sbt/zinc/blob/… (独自に設定するのどのくらい面倒なのか、本当に可能なのか、はわからない)

2017-11-10 13:32:09
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k 今週は 2.13 切って早めに 1.0.4 という流れ (github.com/sbt/sbt-contri…) でしたが、2.13 (github.com/sbt/zinc/pull/…) の修正できました。あとは、スクリプトから `bc` 無くそうという感じですね。

2017-11-17 02:05:38
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k あと、sbt 週一ミーティング (水曜 16:00 UTC、木曜 01:00 JST) は夜遅いですが、コントリしてくれる人なら誰でも参加していいよというスタンスなので、意見のある週だけでも参加してみてください。

2017-11-17 02:16:18
Kenji Yoshida @xuwei_k

これ参考にすればいけそう gist.github.com/lihaoyi/e14072… (sbtの例の問題はもう別の方法で解決するっぽいが)

2017-11-17 17:20:46