Posted on October 7, 2019 authored by Shinya Yamaguchi Last Updated January 22, 2020 はじめに cabal-fmt でできること。 cabal ファイルの整形 フォルダを指定して自動でモジュールを expand できる 以下のフィールドをアルファベット順で自動的に並べ替え&重複を削除 exposed-modules other-modules default-extensions other-extensions build-depends λ cabal-fmt --version 0.1.1.1 λ cabal -V cabal-install version 3.0.0.0 compiled using version 3.0.0.0 of the Cabal library # 使い方 λ caba
(2015-08-27 追記) この記事は無視して stack コマンドを使いましょう Haskellでプログラムを楽しむときに外部のライブラリを利用したくなることがある。cabal install コマンドを使えば ~/.cabal/ 以下に外部ライブラリをインストールして利用することができる。 外部ライブラリは他ライブラリの特定のバージョンに依存していることが多い。依存関係が衝突した場合、ライブラリ群を同時にインストールできないことがある。たとえばライブラリAがライブラリXのバージョン1に、ライブラリBがライブラリXのバージョン2に依存する場合には、AとBを同時に ~/.cabal/ にインストールすることはできない。 ひとつのプロジェクトから A と B に依存することはないが、ひとつのプロジェクトでは A に依存し、もうひとつのプロジェクトで B に依存したいことはあるので困る。こ
cabalファイルだけでは足りない事がある。どうしても単一のプログラムではできないこともあるし、TemplateHaskellでも生成できなくてやむなくソースコードを自動生成するスクリプトを書かざるを得ない事もあります。自動生成なんかやると何かに負けた気分になりますが、cabalでなければ普通にやっている事なので、何も問題は無い気がします。MakefileとかAntとか。 具体的には、 (1) Haskell製コード生成プログラムをビルド (2) シェルスクリプト経由でコード生成プログラムを実行 (3) 本体のプログラムをビルド という事をやりたい。 ところがcabalには直接的に外部のコマンドを実行してビルドする方法が無いみたいです。無いみたいなんですが、ビルドを細かく制御する方法はいくつか用意されています。 (A) Build-Type: Configureでautoconfで頑張る
DEC 2020 UPDATE: A lot has changed since this post was written. Much of "cabal hell" is now a thing of the past due to cabal's more recent purely functional "nix style" build infrastructure. Some of the points here aren't really applicable any more, but many still are. I'm updating this post with strikethroughs for the points that are outdated. I posted this as a reddit comment and it was reall
cabal install --reorder-goals --max-backjumps=-1 これで問題のないバージョンの組み合わせが見つかるまで試行してくれる。 --max-backjumpsに指定する値が-1だと組み合わせが見つかるまで試してしまうので、それが問題な場合は-1以外の値を指定することでやり直しの上限回数を設定する。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
On behalf of all cabal contributors, I'm proud to announce cabal 1.20. This is quite a big release, with 404 commits since 1.18. To install: cabal update cabal install Cabal-1.20.0.0 cabal-install-1.20.0.0 New features Since there are 404 commits since cabal 1.18, there are too many changes to give all of them a just treatment here. I've cherry-picked some that I thought you would find interesting
具体的にはaesonのバージョンが新しい場合にのみscientificを依存関係に組み込みたいとする。 library build-depends: (aeson >= 0.3.2.5 && < 0.7.0) || (aeson >= 0.7.0 && scientific) こんな感じにできないかなぁと思っていたが、これはparse errorになり動かない。同僚に聞いてみたところ、flagを使うのが定石らしい。 flag aeson070 default: False manual: False library if flag(aeson070) build-depends: aeson >= 0.7.0 , scientific else build-depends: aeson >= 0.3.2.5 && < 0.7.0 aeson070という名前は何でも良い。なぜならmanual
Haskeleton: a Haskell project skeleton by Taylor Fausak on March 04, 2014 I’m new to Haskell. I’ve learned enough to feel comfortable writing programs in it. I can solve code katas like exercism.io, H-99, and Project Euler. Yet I don’t feel comfortable developing software with it. Writing idiomatic, maintainable and well-tested Haskell code remains a mystery to me. Cabal, the Haskell build tool, p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く