So-net無料ブログ作成

ghcid [Haskell]

Haskellのbuild環境としてstackを利用するようにした.

stackではbuild環境でのツールのバージョン管理を徹底させるために,環境ごとにコマンドやライブラリをインストールして使用するようになってるのだけど,そのためにstackでのbuildの環境とemacsのflymakeの実行環境が異なるためにerrorの出方が違うようになってしまった.

flymakeの設定を直そうかと調べたところ,最近はghcid -- "GHCi as a daemon", "GHC + a bit of an IDE"というものが使われているらしい.

ndmitchell / ghcid

端末で起動しておくと自動でソースの変更を検知して,buildの実行結果を表示するというもの.IDEというよりbuild daemonみたいだけど,やりたいことはflymakeと同じだし,editor非依存のghcidの方がいいかもしれない.

というわけで使ってみた.
% stack install ghcid
でinstallできて
% ghcid --height 16
でbuildが自動実行される.(heightは端末の行数)

はずなんだけど,emacsでファイルを編集すると以下のように言って止まっちゃう.
ghcid: /xx/xx/.#Lib.hs: getFileStatus: does not exist (No such file or directory)

emacsの一時ファイルにアクセスしようとしているところで一時ファイルが消えたので困っているのは間違いない.

調べると,#Lib.hsというのはemacsが作成するLockファイルのようで,.emacsで 'create-lockfilesをnilに設定すると作られなくなるらしい.というわけで.emacsで以下のようにして対策.
(add-hook 'haskell-mode-hook
          '(lambda ()
             (turn-on-haskell-doc-mode)
             (turn-on-haskell-indentation)
             (turn-on-haskell-indent)
             (font-lock-mode)
             (setq create-lockfiles)))



タグ:Haskell
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

スマホ買い替え [SmartPhone]

失態を犯し,スマホのガラスを割ってしまったため,スマホを機種変更することになりました.今の機種にしてまだ1年5ヶ月しか経っていないのでちょっと計画外の機種変でした.

HuaweiのAscend P7からASUSのZenFone 2 Laserへ.Laserはちょうど1年前に発売された機種でちょっと古いですが,値頃感があります.

Ascend P7って今でもバランスの取れた機種なのかと思っていましたが,Laserに換えたらかなりサクサク動くようになりました.

MVNOはネットワークのせいで動きが鈍いのかと思っていましたが,スマホの性能によるところも大きいのですね.MVNOでスマホの動作に不満を持っている人は機種変更してみるといいかもしれません.
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村