summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2023-10-22 23:06:19 +0200
committerTom Smeding <tom@tomsmeding.com>2023-10-22 23:06:19 +0200
commite98b0af27bf4aa9c35a67c4d130199c5df8c4a32 (patch)
treef7156d3d3a9c405ea89784865590cd29233183b3
parent1191a5d064617004251a1de04cccba328234f57a (diff)
haskell/cabal-lib: 'eigen' breaks because it's just generally old
-rw-r--r--haskell/cabal-lib.html20
-rw-r--r--haskell/cabal-lib.md23
2 files changed, 6 insertions, 37 deletions
diff --git a/haskell/cabal-lib.html b/haskell/cabal-lib.html
index 90bab1c..9f93c19 100644
--- a/haskell/cabal-lib.html
+++ b/haskell/cabal-lib.html
@@ -46,7 +46,7 @@ ghci&gt; print &quot;hi&quot;
Variable not in scope: print :: base-4.17.2.0:GHC.Base.String -&gt; t
ghci&gt;
</code></pre>
-<p>I mean, that doesn't look good, doesn't it?</p>
+<p>I mean, that doesn't look good, does it?</p>
<p>And if that did not scare you enough, suppose that in the future, you want to use a newer version of <code>brick</code> and try to install that using <code>cabal install --lib brick</code> again.
What you'll see is this:</p>
<pre><code>$ cabal install --lib brick-1.9
@@ -56,22 +56,8 @@ may break other packages. Use --force-reinstalls to proceed anyway. Packages:
brick
</code></pre>
<p>(I simulated the situation by installing an older version instead. I can't time-travel, unfortunately.)</p>
-<p>Or suppose that you now also want to use another library, say <code>eigen</code>:</p>
-<pre><code>$ cabal install --lib eigen
-Resolving dependencies...
-Error: cabal: Could not resolve dependencies:
-[__0] next goal: brick (user goal)
-[__0] rejecting:
-brick-1.10/installed-1f76dfaf75736c0f6e2a4a2cf992bb12da05f6bbc7985f9787547739947e4696
-(package is broken, missing dependency
-bimap-0.5.0-2ee7565ca29f0edc78a3c8fe09c9eef36c96d08473660eec8a944cef16ac4d86)
-[__0] trying: brick-1.10
-[__1] trying: vty-5.39 (dependency of brick)
-...
-...
-</code></pre>
-<p>The error message is much longer than this, but I cut it off to save some space.
-Apparently it claims our installation of <code>brick</code> is actually broken, despite it working okay in <code>ghci</code>, but in any case this didn't work.</p>
+<p>Another thing that would fail is trying to install a package that is incompatible with the versino of <code>brick</code> you have now &quot;installed&quot;.
+I don't have a good example for this post because I couldn't find a neat pair of incompatible packages that didn't have many other dependencies, but I hope you'll trust me that this will result in the well-known (to seasoned haskellers) cabal dependency resolution errors.</p>
<h2>What happened?</h2>
<p>Note the line printed by <code>ghci</code>:</p>
<pre><code>Loaded package environment from /home/tom/.ghc/x86_64-linux-9.4.7/environments/default
diff --git a/haskell/cabal-lib.md b/haskell/cabal-lib.md
index acb2bf1..2504fc8 100644
--- a/haskell/cabal-lib.md
+++ b/haskell/cabal-lib.md
@@ -66,7 +66,7 @@ ghci> print "hi"
ghci>
```
-I mean, that doesn't look good, doesn't it?
+I mean, that doesn't look good, does it?
And if that did not scare you enough, suppose that in the future, you want to use a newer version of `brick` and try to install that using `cabal install --lib brick` again.
What you'll see is this:
@@ -81,25 +81,8 @@ brick
(I simulated the situation by installing an older version instead. I can't time-travel, unfortunately.)
-Or suppose that you now also want to use another library, say `eigen`:
-
-```
-$ cabal install --lib eigen
-Resolving dependencies...
-Error: cabal: Could not resolve dependencies:
-[__0] next goal: brick (user goal)
-[__0] rejecting:
-brick-1.10/installed-1f76dfaf75736c0f6e2a4a2cf992bb12da05f6bbc7985f9787547739947e4696
-(package is broken, missing dependency
-bimap-0.5.0-2ee7565ca29f0edc78a3c8fe09c9eef36c96d08473660eec8a944cef16ac4d86)
-[__0] trying: brick-1.10
-[__1] trying: vty-5.39 (dependency of brick)
-...
-...
-```
-
-The error message is much longer than this, but I cut it off to save some space.
-Apparently it claims our installation of `brick` is actually broken, despite it working okay in `ghci`, but in any case this didn't work.
+Another thing that would fail is trying to install a package that is incompatible with the versino of `brick` you have now "installed".
+I don't have a good example for this post because I couldn't find a neat pair of incompatible packages that didn't have many other dependencies, but I hope you'll trust me that this will result in the well-known (to seasoned haskellers) cabal dependency resolution errors.
## What happened?