You are currently browsing Sergei Trofimovich’s articles.
Time to time internetz stumble upon a ghci bug which is seen as inability to load base haskell package:
Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... ghc: /usr/lib64/ghc-7.4.2/base-220.127.116.11/HSbase-18.104.22.168.o: unknown symbol `stat' ghc: unable to load package `base'
But the bug was most popular across rare gentoo users. An interesting correlation!
This post is about the root of this problem: the gory implementation details of ghci dynamic loader down to libC and even ELF symbols!
Not scared? Fasten your belts and Read On!
We have moved gentoo-haskell overlay to github!
It will require some additional actions for overlay users:
layman -f layman -d haskell layman -a haskell
Our move was stimulated by a couple of events:
We’ve got ghc-6.12.3 stable on x86, amd64 and sparc arches! (more to come)
What does it mean for end user?
You’ll get latest haskell compiler and will be able to taste it’s new features! We also got rid of hacky ghc-updater and switched to haskell-updater.
Unfortunately, some haskell packages in main tree might stop building on new compiler. Please report them as problematic to gentoo bugzilla or drop a line in #gentoo-haskell on freenode IRC network.
I’ve decided to look back and estimate timeframe it took us to deliver ghc for you:
- 12 Oct 2009 – GHC-6.12 RC1 appears in public
- 2 Nov 2009 – GHC-6.12 RC1 hits gentoo-haskell overlay
- 12 Jun 2010 – GHC-6.12.3 is released
- 26 Sep 2010 – GHC-6.12.3 goes stable on amd64
So, it took us almost 4 months.
The major problems were:
- Resurrect GHC on exotic architectures (we have 10 patches on top of vanilla ghc!). Unfortunately, hppa support was lost.
- Fix packages breaking with 6.10/6.12 branch of ghc (tons of them)
Brave souls can try to install ghc-7-rc2 (aka 22.214.171.12401028) from overlay (currently masked). It has no base-3 (deprecated in ghc-6.10), so you’ll have great chance to become a contributor to various haskell projects!