6 ms·
is this supposed to replace Cabal?
by mrcactu5 11y ago
is this supposed to replace Cabal?
- dragonwriter 11y agoIt relies on cabal-the-library. It replaces cabal-the-tool.
- mcbuilder 11y agoIt's basically a drop in replacement for `cabal-install`, while leveraging off Cabal the library, which means package description files don't need to be rewritten, i.e. your old cabal package will still work. It's a huge departure from using cabal-install. Faster project setup time, and not having to worry about managing sandboxes, compiling a new sandbox, or getting stuck in cabal hell. So, yes, you could look at it as a cabal-install rewrite.
- mightybyte 11y agoFor some use cases it might work as a replacement, but it doesn't have a dependency solver so I don't think you can really say it's a serious general-purpose cabal replacement. It's more like build porcelain for cases where you already have your package's whole dependency tree locked down.
- snoyberg 11y agoThis is false, see the `stack solver` and `stack init --solver` commands. Currently it's using cabal's dependency solver under the surface, but there is work in progress (by multiple parties) to implement a new SAT-based solver, see: https://github.com/commercialhaskell/stack/issues/116 https://github.com/commercialhaskell/stack/issues/116
- mightybyte 11y agoAhh, my mistake. Cabal's solver is in the cabal-install package and since stack doesn't depend on it I assumed it wasn't tackling that problem. Since it's actually shelling out to the cabal executable for its solving needs it still pretty much fits the definition of porcelain.