Andrii Sergiienko

Software developer, Entrepreneur, Author

ghc-mod error: «is unusable due to missing»

Feb 16, 2016, 21:18

After I updated GHC to the latest version, I have got very weird and annoying error that constantly has been appearing when I open a Haskell source file in Emacs:


HandsomeSoup-0.4.2-686424195026beeaefb436ceaeb25636 is unusable due to missing or recursive dependencies:
HTTP-4000.2.20-4ed6237e324cc4ce05d3713645af2c44 base-4.8.1.0-075aa0db10075facc5aaa59a7991ca2f containers-0.5.6.2-2b49cce16f8a2908df8454387e550b93 hxt-9.3.1.15-a32a252f9c713840de391f0697d844e0 hxt-http-9.1.5.2-2d2f40dc927b9b1b2fc42c5087997de9 mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb network-2.6.2.1-54f9bbbc4dc78b945fb82127414a5b82 network-uri-2.6.0.3-a5f987b3a4896895214d8fff79983154 parsec-3.1.9-bddea73c8bf2d5ff1335dae2cc92e789 transformers-0.4.2.0-21dcbf13c43f5d8cf6a1f54dee6c5bff
(use -v for more information)


I spent a couple of days on resolving this issue, and the clue is apparently very simple. I made this note just to keep in mind how this error can be resolved.

First of all, check which GHC version you have installed don your machine:

# ❯ stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 7.10.2



Next, check which GHC version ghc-mod is linked to:

# ❯ ~/.local/bin/ghc-mod --version
ghc-mod version 5.5.0.0 compiled by GHC 7.10.3



Here we have a difference: system compiler is of version 7.10.2, and ghc-mod is linked to 7.10.3 — and this is the root cause of the problem.

Also, check the project.yaml: resolver should be set to lts-5.1 for GHC 7.10.3 (for 7.10.2 it would be of 3.4)

GHC is stored in the project locally: ./stack-work/install//lts-[version]

Globally GHC can be found under: ~/.stack/*//*/[ghc-version]/

HornetQ web console

Jul 1, 2015, 22:25

Playing with Scala, have written a simple tool for basic controlling HornetQ: HornetQ web console

Project Euler, problem #2

May 2, 2015, 21:09

Even Fibonacci numbers
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.



Haskell


lastN :: Int -> [a] -> [a]
lastN n l = foldl (const .drop 1) l (drop n l)

fibo' :: (Num a, Ord a) => a -> [a] -> a -> a -> [a]
fibo' n l x y =
           if
	      x+y <= n then
                  fibo' n (l++[x]) y (x+y) 
	   else
	      l++[x,y]

fibo :: (Num a, Ord a) => a -> [a]
fibo n = fibo' n [1] 2 3

fi :: (Num a, Ord a, Integral a) => a -> a
fi n = sum [x | x <- fibo n, 0 == mod x 2]

Project Euler, problem #1

Apr 30, 2015, 15:30

Multiples of 3 and 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.


Haskell

sum [x | x <- [1..1000], x < 1000, 0 == mod x 3 || 0 == mod x 5]



Erlang

lists:sum([X || X <- lists:seq(1,1000), X < 1000, (0 == X rem 3) or (0 == X rem 5)]).



WebRTC Cookbook is published!

Apr 7, 2015, 15:41

A new book on WebRTC is finally published: WebRTC Cookbook! It is definitely worth to take a look, if you're developing any WebRTC-related service.

Ctrl + ↓ Earlier