タグ

ブックマーク / xuwei-k.hatenablog.com (3)

  • sbtにおけるテストの並列実行の設定詳細解説 - xuwei-k's blog

    いきなり題というか、一番言いたいことを書くと、まず テストの fork の設定によってぜんぜん違う。 という点があまり知られていない気がします。 *1 というか、自分も今回調べるまで、微妙に古い知識のままで完璧に知らなかったので、今一度理解した現時点での詳細を今書いています。 sbtにおいて、テストがどう並列化されるか?に関して、関係するというか、今回話すのは、以下の点です Test / parallelExecutionというkey Test / fork が true か falseか concurrentRestrictionsというkey testForkedParallelというkey また、今から話すのはsbt 1.3.8時点の情報です。 さらに前提として、マシンのCPUのコア数によって挙動が異なる可能性がありますが、ひとまずそれなりに十分にコア数がある、として話を進めます。

    sbtにおけるテストの並列実行の設定詳細解説 - xuwei-k's blog
  • 戻り値の型が型引数に依存してる関数について - xuwei-k's blog

    まず戻り値の型が型引数に依存してるってどういうことかっていうと、こういう感じ def foo[A]( param :String ) : A = { ... } 依存してるって言い方が一般的なのか、あってるのかは知りませんというか、勝手にこう呼んでます。つまり、 foo[Int]( "scala" ) というように、明示的に型引数を書く val obj:Int = foo( "scala" ) のように、戻り値の型が推論してもらえるような場所に書く 上記と結局は同じだが、 def bar( param: Int ) という関数があり bar( foo( "scala" ) ) という呼び方をする というような使い方をしないといけない関数のことです。 これを val obj = hoge("scala") というように呼ぶと、objがNothing型に推論されてしまいます。 まぁ普通コンパイ

    戻り値の型が型引数に依存してる関数について - xuwei-k's blog
  • ScalaコンパイラやsbtとJava 9の対応表 - xuwei-k's blog

    Java 9が広まってきて、しかし多少古いScalaやsbtのままやろうとしてハマっている人を見かけることが多くなってきたので、簡単にまとめておきます。 (追記) Java 9となっているところは、Java 10やJava11と置き換えても大体当てはまります。つまりJava8からJava9のclasspath関連の変更が一番重大で、逆にJava9で動けばJava10や11でも動く場合が多いので。 Java 9 で動くScala(のコンパイラやREPL) 2.9系以前は不可能 2.10系はScala 2.10.7以降なら可 2.11系はScala 2.11.12以降なら可 2.12系はScala 2.12.1以降なら可 *1 2.13系はマイルストーン含めて全部可 Java 9 で動くsbt sbt 0.12系以前は不可能(0.12系はScala 2.9系なため) sbt 0.13系はsbt

    ScalaコンパイラやsbtとJava 9の対応表 - xuwei-k's blog
  • 1