Stackとは? つい先日のことですが、Stackage界隈からstackというツールがリリースされました。リリースされたとはいえ、開発され始めたのがちょっと前のことですし、現在も盛んに機能が追加されているので、絶賛開発中であるとかそういったほうがいいかもしれません。 まだ開発の始まったばかりのツールなのに、なぜこんな紹介記事を書こうと思ったのかというと、このツールがHaskellの開発において極めて有用になることが確定的に明らかであって、すでに荒削りながらも、大変便利に使えているからなのです。そしてここで紹介することで、多くの読者の方に興味を持ってもらって、それで開発がさらに盛り上がっていくと嬉しいなあと、そう思った次第であります。 なお、stackの開発が始まる少し前に、stackage-cliを始めとするいくつかのツールがリリースされましたが、今後開発はstackに一本化されるような
こんな状態 なので今すぐには無理って見解が出てるんだけど、cabalを捨て去らずに頑張ればなんとかなるかもね。誰かのヒントになるかもしれないのでやったことをメモ。 1. stackを普通に使う stack は普通に使いたいので、普通に使う。システムのghcが入っているか、またそれを使うかで多少ややこしくなるけど、今回はシステムに ghc が入っていてある程度使っていて、そこでさらに stack 経由で ghc-7.8.4 を入れたパターン。と言っても、この手順だとシステムのghcで使ってた環境は壊れてそうな気がする。 stack.yamlはこんなの。 最低でも stack build を一度は実行して、 *.cabal ファイルの依存は解決しておく必要がある。 2. ghc-modの調達 stack install ghc-mod で ~/.local/bin へ投入。ただ、 ghc-mo
この記事は Haskell Advent Calendar 2013 1日目前半の記事です.後半の記事もよろしく. cabal sandboxは便利だけどdep hellが無くなったわけではない.ほとんどにわかに見えなくなっただけだ.むしろsandboxに甘えて針穴通すようなbuild-dependsを書いてしまうようでは,すぐにまた地獄は-よりおぞましくなって-我々の前にその姿を現すだろう.しかも,そうなったときは最早避けようもない.みんなgems/bundlerやらcpan/cpanmやら先達のアレコレ見てきてイロイロと「こうなってるとマズい」という反省も貯まっているんじゃないのかねぇ? 特に,Debianなど全体で一貫した依存関係を目指し,かなりの気合いを入れてhackageも取り込んでメンテナンスしてくれてるディストリビューションにおいて dep hellに引き摺り込むようなhac
Recently I received a question from a user asking about "cabal hell" when installing one of my packages. The scenario in question worked fine for us, but for some reason it wasn't working for the user. When users report problems like this they usually do not provide enough information for us to solve it. So then we begin the sometimes arduous back and forth process of gathering the information we
mizchi.hatenablog.com Haskellを習得する上で難しいポイントだと思います。大きく分けると次の二つにまとめられるのではないかと思います。 コードの中で現れる識別子からそれが何なのかを探しづらい Cabalがつらい それぞれ個人的な見解を書いてみます。 コード中の識別子の探し方 モナドのところの <$> とか <*> とか、え〜どっちがApplicativeで何がFunctorだっけ、そもそもその定義はなんだったっけ。え〜あ〜〜〜みたいになる。 と名前空間の そして名前で役割を推測することが困難な事が多々ある。mapM_ とか、前述した演算子とか。いや mapM_ は map があって mapM があって、っていう段階があるのは理解しているけど、ソース読んでて突然出現するそれには全く対応できない。 はどちらも識別子から型がわかれば大部分が解決します。ありがたいことに近
Open source We’ve been working on Stackage server for a while and now that the code has stabilized it’s ready to be open source. You can fork it on Github! We’re a responsive team, used to bringing pull requests forward and getting them deployed. Since the last update we added a bunch of things. Here’s a rundown: Clarifying improvements Recommended snapshots: The home page now lists recommended sn
cabalg is an alias for installing cabal package from a git source repository. E.g. $ git clone https://github.com/author/foo $ git clone https://github.com/author/bar $ cabal install foo/foo.cabal bar/bar.cabal baz.cabal could be abbreviated by $ cabalg https://github.com/author/foo https://github.com/author/bar -- biegunka.cabal It also supports arbitrary git revisions mentioning like $ cabalg ht
Yesod is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications. Installing application dependencies using Stackage, sandboxes, and freezing November 12, 2014By Greg WeberView source on Github Installing Haskell packages is still a pain. But I believe the community has some good enough workarounds that puts Haskell on par with a lot of other pro
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
Welcome to the Cabal User Guide Edit on GitHub Welcome to the Cabal User Guide 1. Getting Started with Haskell and Cabal 1.1. Installing the Haskell toolchain 1.2. Creating a new application 1.3. Run a single-file Haskell script 1.4. What Next? 2. Introduction 2.1. A tool for working with packages 2.2. What’s in a package 2.3. Cabal featureset 2.4. Similar systems 3. Package Concepts and Developm
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く