<div dir="ltr">Best way to avoid this problem in my experience is to use something that'll cache dependencies so that you're building as few new packages as possible when checking something out. Historically people have used their user package-dbs or sandboxes (just package-dbs you put in a place), but there's nothing done to ensure versions won't start conflicting as the arrow of time plunges forward.<div><br></div><div>To that end, I think Stack[1] is pretty useful as you can pick a default (global to you) user snapshot and everything the snapshot covers will have a set of versions that work with everything else. This doesn't cover absolutely everything on Hackage but it should save a lot of build time if you're going on a library perambulation.</div><div><br></div><div>There's no reason, in principle, that you couldn't accomplish the same with careful tending of a package-db yourself, but in practice nobody knows or cares to know how anything works so its best to just give them something they can outsource their executive functions to WRT package versioning.</div><div><br></div><div>[1]: <a href="https://github.com/commercialhaskell/stack">https://github.com/commercialhaskell/stack</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 1, 2015 at 9:19 PM, Peder Jakobsen <span dir="ltr"><<a href="mailto:pjakobsen@gmail.com" target="_blank">pjakobsen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I’ve read the Simple Guide to Cabal at <a href="http://katychuang.com/cabal-guide/" target="_blank">http://katychuang.com/cabal-guide/</a><div><br></div><div>It says:<br><div><br></div><div><span style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center;background-color:rgb(238,238,238);font-size:14px">create a copy of a package by running the command</span></div><div><span style="font-size:14px"><code style="font-family:menlo,monospace;background-color:rgb(0,0,0);border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:10px;color:white;padding:5px 15px;line-height:60px;text-align:center">cabal install</code><br style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center"><span style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center;background-color:rgb(238,238,238)">Some flags can speed up this process</span><br style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center"><span style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center;background-color:rgb(238,238,238)">--only-dependencies</span><br style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center"><span style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center;background-color:rgb(238,238,238)">-jN to build N packages in parallel</span><br style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center"><span style="font-family:Georgia,'Times New Roman',Times,serif;line-height:60px;text-align:center;background-color:rgb(238,238,238)">--dry-run to see what cabal plans to do (recommended)</span></span><br><div><br></div><div>But here’s the thing (piping a word count from —dry-run) </div><div><br></div><div>$ cabal install hakyll --dry-run | wc -l     </div><div><span style="white-space:pre-wrap">        </span> 97</div><div><div>cabal install hakyll --only-dependencies  --dry-run | wc -l</div><div>      96</div></div></div></div><div><br></div><div>So it takes 20+ minutes to install a package that you just want to check out for a few minutes, while your CPU melts down in the process?  I must be missing something here…?</div><div><br></div><div>Thanks again for your newbie support, greatly appreciated. </div><span class="HOEnZb"><font color="#888888"><div><br></div><div>P.J. </div><div><br></div><div><br></div><div><br></div></font></span></div><br>_______________________________________________<br>
cabal-devel mailing list<br>
<a href="mailto:cabal-devel@haskell.org">cabal-devel@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr">Chris Allen<br><div><span style="font-size:12.8000001907349px">Currently working on </span><a href="http://haskellbook.com" target="_blank">http://haskellbook.com</a></div></div></div></div></div></div>
</div></div>