2013-01-01から1ヶ月間の記事一覧

lift-json 2.5-M4 が、間違って specs2 に compile scope で依存してる件

追記 この問題が解決している新しいversionが出ているので、そちらを使いましょう

Haskell の partitionEithers を(汎用化したものを) Scala で

Haskell の partitionEithers っぽいものが欲しくなって、ググッたらこれ URL にたどり着いたけど、この議論の結論(現状のScalazに存在するのか?など含めて)がよくわからない・・・あとでゆっくり読むか・・・2013-01-28 16:09:29 via web結局現在のScalaz …

Scaladoc 生成時に、外部のScaladocへリンクをする

数年前からissueはあったようですが、ようやく2.10.0からできるようになりました。https://github.com/scala/scala/blob/v2.10.0/src/compiler/scala/tools/nsc/doc/Settings.scala#L197-L201たとえば、Scala本体のScaladocにリンクさせるには、*1 sbtだと以…

Play2 本体の build 時間を短縮する方法

Play2.1-RC2ぐらいの時点の情報なので、将来ビルドの部分の設定変わって、この情報役に立たなくなってるかもしれません。Play2.1では、ビルドにsbtを使っているのにも関わらず、(ちょっと試しにビルドする人にとっては)色々と面倒なことになっていて、単にsb…

Scala 2.10.0 では implicit value class の implicit の優先順位付けが不可能な件

What's the usual way to do implicit prioritization with implicit value classes? Value classes are not allowed to be inside a trait.2013-01-15 22:54:58 via web言われるまで気づかなかったし、他にこの件について言ってる人を(少なくとも自分は)見…

sbt の build.scala でも Seq[ Setting[_] ] を作るときには、seq を使おう?

追記: 残念ながらsbt 0.13 以降 deprecatedです・・・ https://github.com/sbt/sbt/blob/v0.13.0/main/src/main/scala/sbt/Defaults.scala#L1541-L1542 Seqじゃなくseqという、小文字なのがポイントです。*1 *1:Seqは、Scala標準のもの

unfiltered.filter.Planify を Scala 2.10.0 で使うと実行時に java.lang.VerifyError が発生する

以下のようなものを実行すると

Scala2.10.0 で Scaladoc の細かいバグに遭遇したけど、最新版では直ってた

Scalaz にわりと大きい pull request がきていたので、勝手にレビューというか、間違い探しをする↓とりあえずひとつ見つける*1↓Scala 2.10.0 では、細かい警告を大量に出してくれるようになっているので、あえて 2.10.0 でコンパイルとScaladoc生成をしてみ…

変数名自身の名前のStringを束縛するScalaのマクロ

なんかわかりづらいですが、つまり以下のコードを実行すると val foo, bar, baz = const println(foo) println(bar) println(baz) 順に foo, bar, baz が表示されます。正確にはコンパイラ内部のAPIにアクセスしてるので、単なるマクロというより、コンパイ…

Unboxed Tagged Types の落とし穴

ご存知の通り(?)以下のような血みどろなマサカリが飛び交っていましたがtwitter の bijection というライブラリの名前問題まぁその話の本体についてはおいておいて、その副産物というか、そのpull request欄のコメントにて、面白い有用な話を見つけたのでメ…

Playがvimのテンポラリファイルなどの余計なファイル変更を検知するのを修正する

Play2.0.4の時点で、Hoge.scala.html というような Scala Templateのファイル変更を検知するために以下のようになってる。https://github.com/playframework/Play20/blob/2.0.4/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala#L110追記:2.1.0…

可変長引数を持っているメソッドを部分適用した際の型が、Scala 2.9.2 と 2.10.0 で異なる件

自分が作っている、とあるコードを2.9.2と2.10.0でcrossBuildしようとしたら遭遇したhttp://stackoverflow.com/questions/13322930/how-to-define-and-invoke-a-partially-applied-function-with-varargs https://issues.scala-lang.org/browse/SI-4176以下…

ニート終了のお知らせ

以下のような経緯で、某社を辞めて、2012年の後半の数ヶ月間は、ニートしていたわけですが退社します(ワラビモチから2年)2013年から働くことになりました。1月7日(月曜日)に初出社の予定です。

sbt が harrah/xsbt から sbt/sbt に移りました

https://github.com/sbt/sbt harrah/xsbt から sbt/sbt へリポジトリを移譲*1 その後、リンク切れないように、 harrah/xsbt は、sbt/sbt から fork となってますが、 harrah/xsbt の方は更新されないはずなので、 今度からは sbt/sbt のほうにリンク貼りまし…

Scalaz の EphemeralStream

Scalazに関して、わりとtypeclassについてばかり書いていた気がするので、たまにはデータ構造の話を。Scalazには、結構昔から(Scalaz6の頃から) EphemeralStream というデータ構造があります。https://github.com/scalaz/scalaz/blob/v7.0.0-M7/core/src/mai…

生成後のclassファイル名の長さを制限できるScalaのコンパイルオプション

こんなtweetをみたので、そういえばほとんど知られていないだろうけど、そんなコンパイルオプションが存在するので書いておく

Scala2.10 以降に入るかもしれない機能まとめ

このblog書いてる時点の最新の安定版は、2.9.1ですが、version2.9系が出て以降、結構時間も経過し、最近はいろいろと動きがあるので、とりあえず自分が収集できた範囲(というか、自分がある程度興味を持った変更)をまとめておきます。現在trunkに入ってても…