<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Hi,<div><br></div><div><br></div><div>Small feedback in case it’s useful:<br><div><br></div><div>Switching from stack to cabal was painless with ghcup. I could not make it work without it (some dependencies failed to compile on Archlinux). </div><div><br><div dir="ltr">Alexis Praga </div><div dir="ltr"><br><blockquote type="cite">Le 18 sept. 2021 à 21:07, coot@coot.me a écrit :<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div>Hi Alexis,<br><br>There are several reasons:<br><br>* reproducible nix style local builds. By specifying hackage index one can build against the same set of packages locally and on CI.<br>* has access to whole hackage, though at times requires a bit of thought, most of the time it works just fine.<br>* `cabal.project` and `cabal.project.local`: the first corresponds to `stack.yaml`, the other does not have a counter part in stack. For example, this is very useful, when one wants to modify ghc options per package, e.g. adding or removing `-Werror` ghc option, or configuring a ghc plugin<br>* some options work better than in stack. One example is `--allow-newer`.<br>* one can experiment with backpack,<br><br>Cheers<br>Marcin<br><br></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user protonmail_signature_block-empty"></div><div class="protonmail_signature_block-proton">Sent with <a href="https://protonmail.com/" target="_blank">ProtonMail</a> Secure Email.</div></div><div><br></div><div class="protonmail_quote">
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br>
On Saturday, September 18th, 2021 at 20:52, Alexis Praga <alexis.praga@gmail.com> wrote:<br>
<blockquote class="protonmail_quote" type="cite">
<div dir="ltr">Hi,<br>
<br>
As an intermediate beginner, I've been back into Haskell for the last<br>
months for a small project, using stack as the building tool.<br>
<br>
Why stack ? A few years back, I learned that it was the "best" way to build<br>
projects to avoid "cabal hell", which I understood at the time as<br>
"managing dependencies with cabal is hard".<br>
<br>
As such, I've use stack since and have been quite happy with it. The<br>
only drawback is that building a project can be quite long.<br>
<br>
This is usually not a problem, except for writing Haskell scripts using<br>
shelly (for example), where the stack layout is a bit impractical for<br>
fast-paced development. A solution is to use `runghc` or a script<br>
interpreter [1].<br>
<br>
However, I've seen some projects where cabal is used to build directly<br>
instead of cabal, so it looks like the situation improved.<br>
<br>
My question is this: in 2021, is there a reason to switch back to cabal ?<br>
<br>
Thanks,<br>
<br>
[1] <a target="_blank" rel="noreferrer nofollow noopener" href="https://www.fpcomplete.com/haskell/tutorial/stack-script/">https://www.fpcomplete.com/haskell/tutorial/stack-script/</a><font color="#888888"><br></font><br clear="all"><br>-- <br><div data-smartmail="gmail_signature" dir="ltr"><div dir="ltr"><div><br> Alexis Praga <br></div></div></div></div>
</blockquote><br>
</div></div></blockquote></div></div></body></html>