タグ

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

  • Scala2.10から2.11の変更点 - xuwei-k's blog

    例のごとく、最初に注意書き まだfinalがでていないので、細かい部分変わるかもしれません*1 個人的に、「大きい変更点だなと思ったもの」「ライブラリ側のユーザーが直接使うクラス関連*2」「なんとなく興味があるもの」を中心にとりあげただけで、すべてを網羅してるわけではありません finalがでるまではできるだけ随時更新する予定です Scala2.11.0は、今のところ順調にいけば2014年の2月には最初のRCがでて*3、3月にはfinalがでるらしいです。*4 https://issues.scala-lang.org/browse/SI しばらくこの記事がblogの一番上にくるように、少し未来の日付にしておきます。 2.9から2.10のときの変更点に比べると、だいぶ少ないですね。(2.9から2.10の変更点が多すぎただけですが)細かく追えていませんが、その分コンパイラ側の細かいパフォーマ

    Scala2.10から2.11の変更点 - xuwei-k's blog
    sunaoka
    sunaoka 2013/12/02
  • Scalaにおける細かい最適化のプラクティス - xuwei-k's blog

    列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の

    Scalaにおける細かい最適化のプラクティス - xuwei-k's blog
    sunaoka
    sunaoka 2013/07/09
  • Play 2.1 のテスト中に、OutOfMemoryError などが出てテストが途中で止まる場合の対策 - xuwei-k's blog

    OutOfMemoryErrorでなくても、stacktraceにObjectOutputStreamがどうとか、java.net.SocketException: Socket closedとか、見慣れないよくわからないstacktrace出る場合もあります。かつ、テストが途中で止まっても、最終的な結果はsuccessと表示される場合もあります。 Play2.1からテストがforkされたJVM上で行われるようになったけど、これ URL が、Play側で設定されてないから簡単にメモリ不足でテストが死ぬ。のでこれ URL と同じようなことしないといけない 2013-02-05 15:18:24 via web テスト用のサーバー起動させると簡単にメモリ不足になってこの現象に遭遇するので、必ずjavaOptions設定しておきましょう。*1 簡単に解説しておくと、Play2.1から*2最近sb

    sunaoka
    sunaoka 2013/05/16
  • sbt-updates-plugin - xuwei-k's blog

    https://github.com/rtimush/sbt-updates 「依存しているライブラリの新しいversionが出ているかどうかチェックしてくれるplugin」です。 依存が1つとか2つとか少ないなら、あまり必要ないかもですが、多くなってくると地味に面倒ですよね。あとREADMEにも書いてあるけど、こういうのはglobal pluginにすると便利ですね。 以前作った、クラス図を表示するプログラム http://d.hatena.ne.jp/xuwei/20110325/1301055337 とか、自分で適当に選んだScalaを中心とした色んなライブラリを20〜30は突っ込んであって https://github.com/xuwei-k/class-diagrams/blob/e1222dc596f43bef90f41ea39560b005b7322c4b/project/C

    sbt-updates-plugin - xuwei-k's blog
    sunaoka
    sunaoka 2013/04/18
    「依存しているライブラリの新しいversionが出ているかどうかチェックしてくれるplugin」
  • Scala2.11から、case classやメソッドの22制限が緩和されるらしいですよ! - xuwei-k's blog

    https://github.com/scala/scala/pull/2305/files 試しに引数が200個あるメソッドや、case classくらいまでならいけた。それ以上で、例えば1000くらいになると、コンパイラが変なところで落ちるか、"ClassFormatError: Too many arguments in method ..."とかになる 2013-03-31 21:48:39 via web URL 22制限がなくなる件、微妙に反響あったから補足しておくと、2.11.0.finalがでるのはおそらく一年後くらいなので、それまでは今のままですよ…念のため 2013-04-01 21:04:55 via Twitter for iPad https://github.com/scala/scala/pull/2426 メソッドのパラメータは、最大254個までになるみたい

    sunaoka
    sunaoka 2013/04/18
  • Scalaにおける括弧()と中括弧{}の違い (squerylでハマった備忘録) - xuwei-k's blog

    主にSqueryl( version 0.9.5-6 )の例で話しますが、括弧の違いの話はSquerylに限らずScala一般的な話です。 例えば、squerylのドキュメントのイントロダクションのページにこんな例があります。whereで条件絞り込んで、その後scoreInPercentageというfieldの平均求めています。 val avg: Option[Float] = from(grades)(g => where(g.subjectId === mathId) compute(avg(g.scoreInPercentage)) ) これを{}を使って以下のように書くと val avg: Option[Float] = from(grades){g => where(g.subjectId === mathId) compute(avg(g.scoreInPercentage))

    Scalaにおける括弧()と中括弧{}の違い (squerylでハマった備忘録) - xuwei-k's blog
    sunaoka
    sunaoka 2013/03/05
  • 1