stack 1.0.0が出たので私が初めて使った時からの更新をピックアップ

More than 1 year has passed since last update.

:star: ナウでヤングなHaskeller :sunglasses: に絶賛定着中のstack, ついにv1.0.0がリリースされました! :tada:
:santa: クリスマスプレゼント :gift: です!

と、いうわけでタイミングよくネタを頂いたので私が初めてstackについて記事を書いた時からもりもり入った更新のうち、
私が気になったものをリリースノートから拾って取り上げたいと思います!
当時はまだv0.1.3.1だったんですね。
といってもまだたった3ヶ月しか経ってませんけど!

設定ファイルのディレクトリ構成が変わった (v0.1.6.0)

当時から使用している方にすれば恐らく一番重要な修正だと思うので一番最初に挙げます。
目的がより明確になるよう、設定ファイル・ディレクトリの名前が次のように変わりました。

  • ~/.stack/stack.yaml :arrow_right: ~/.stack/config.yaml
  • ~/.stack/global/ :arrow_right: ~/.stack/global-project/
  • /etc/stack/config :arrow_right: /etc/stack/config.yaml

UbuntuとDebianパッケージのリポジトリのURLが変わった (v0.1.10.0)

これも互換性に絡む修正です。よりDebianのガイドラインに沿うものに変えたそうです。
:warning: 数カ月後に古いものを廃止する予定だそうなので移行はお早めに。
詳しくはこちらをご覧ください。

--profile フラグ、--traceフラグの追加 (v1.0.0)

stack buildコマンドに--profileフラグと--traceフラグが追加されました。
--profile--bench--testと併せて使った時にプロファイリングした結果を吐き出せるようにします。
--trace例外発生時にスタックトレースを出力できるようにするそうです。
どちらもビルドしたコマンドの実行時に必要なRTSオプション(GHCのランタイムシステムに備わった拡張機能を実行するためのもの)を追加することで実現するようです。
(試しに使ってないので間違ってたらごめんなさい)

いずれもこの手の機能がわかりやすい名前のオプションで使えていいですね! :star2:

stack newコマンドが独自のテンプレートファイルを受け付けるようになった。

テンプレートの作り方は https://github.com/commercialhaskell/stack-templates にある各種 .hsfiles ファイルを参考にすればいいでしょう。
ローカルにある.hsfilesファイルだけでなく、リモートサーバーに置いたものでもいいみたいです。
つまり、

stack new http://example.com/my-powerful-template.hsfiles

でもよいらしいです。

Windowsのサポートの改善

v0.1.6.0でWindowsのパスの長さの制限に対応するなど、なんか色々良くなっているみたいです。
また、それまで別途作っていたMinGHCの機能を全て置き換えるようになったとか。

stack evalコマンド (v0.1.6.0)

ghciを起動するまでもなくGHCを電卓代わりに使いたい人向けの機能です。
stack ghc -- -e 'Haskellの式' 相当のことが stack eval 'Haskellの式'で出来ます。

$ stack eval 'take 5 [x * 2 | x <- [2, 4..]]'
[4,8,12,16,20]

hackageへのアップロード時、GPGを用いたパッケージの署名 (v0.1.10.0)

忘れてはなりません。
stackはstackageのパッケージを扱うだけでなく、hackageのパッケージを扱うことも出来ます。
そもそもがcabalのラッパーですからね。
当然のごとくhackageへのアップロードもできるのですが、
stack upload --signとすれば、アップロードするパッケージに対して署名できるようです。
stack sig signとすればアップロードしないで署名だけできる、のかな?

LTS Haskellのバージョンを変えた時、可能であればコンパイルしたバイナリを再利用する機能 (v0.1.4.0)

新しいLTS Haskellをインストールするたびに古いものを消すとかいうみみっちいことをしなくてよくなるっぽいです。

とりあえずこの辺にしておきます :sweat_drops:

:bow: 申し訳なくも、リリースノートを読んだだけでちゃんと自分で試せているわけではないので、誤解している部分などあるかもしれませんがご容赦を!

それでは急ぎ足になってしまいましたが2016年もHappy Haskell Stack-ing! :christmas_tree:

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.