Cabal の dep hell 解消プロジェクト
- kazu_yamamoto
- 2237
- 0
- 2
- 0
.@tanakh Cabal の dep hell を解決するプロジェクトは頓挫したらしいです。で、僕が代わりに担当しようと思っているんですが、Nix とか hellno とかについて何か言っておきたいことはありませんか?
2013-04-15 12:12:05Haskell では Nix 方式を採用しても完全に dep hell を解決することはできないらしい。他のライブラリのモジュールを export できるからだそうだ。
2013-04-15 12:15:23@kazu_yamamoto nixのような仕組みは大がかりだし、hellnoは実装がいまいち(Linux向けのハードコーディングされてる部分とか)でしたが、解法としては良かったと思います。
2013-04-15 12:15:36あら……GSoCMultipleInstances の人が最近 https://t.co/ExbzNKpmwi を作っているのを見て、細々とプロジェクト続いているんだなとおもってましたが……頓挫してましたか。
2013-04-15 12:18:24@kazu_yamamoto あと、依存例の解決が未だしょぼいので、SATソルバを使えば良い物になると思います。Haskellで書かれた効率的な実装はありませんが、minisatあたりを(C++なんでめんどそうですけど)同梱できたら良いのかなあとか。
2013-04-15 12:18:38@kazu_yamamoto すくなくとも、Linuxで適当に試していたところ、hellnoはとてもうまく動いていました。試す価値はあると思います。
2013-04-15 12:20:19@kazu_yamamoto いまのSATソルバは、Haskellの総パッケージ数程度(数千~万)の節数なら余裕で充足解を見つける性能があるので(典型的なパッケージは依存関係もっとずっと少ないですし)、こういう用途には特に向いていると思います。
2013-04-15 12:22:12あっ、同じバージョンのパッケージを複数インストールできるようにする試みです。念のため > GSoCMultipleInstances http://t.co/bbBxdId6B8 https://t.co/HkeT1FXq3f https://t.co/J2iaLtmzDT
2013-04-15 12:23:45cabalの依存地獄、現状でもcabal-devかつ--reorder-goalsしてればハマることは無い。遅いのが難点。
2013-04-15 12:53:41そういえば、そろそろ cabal-install の sandbox 機能も完成間近でしたっけ。 - [cabal-devel] - Close to release candidate : http://t.co/zToUQnuBrW #miteru
2013-04-15 13:20:42つまり、そのパッケージ自身のコードを変更していなくても、コンパイル仕直すだけでインターフェースが変わる可能性がある
2013-04-15 15:14:16コンパイル仕直すだけで はちょっと違うな。そのパッケージ自身のコードを変更していなくても、使っているモジュールのバージョンを変えるだけでインターフェースが変わることがある
2013-04-15 15:20:06