Important: You are required to change your passwords used for Gentoo services and set an email address for your Wiki account if you haven't done so. See the full announcement and Wiki email policy change for more information.

Haskell

From Gentoo Wiki
Jump to: navigation, search
External resources

Haskell is a purely-functional programming language.

Gentoo and Haskell

The most important part is that this overlay requires a specific unmasking procedure to prevent blockers.

Compiler and interpreter

  • The probably most important and up-to-date Haskell-implementation is the Glasgow Haskell Compiler (GHC). You can install it with:
root # emerge --ask dev-lang/ghc
The package also includes an interpreter called GHCI (except on the ARM-architecture).
  • Furthermore, there's Hugs, an (meanwhile (almost) out-dated) interpreter for Haskell98. You can install it with:
root # emerge --ask dev-lang/hugs98

Cabal

With cabal you can package and build libraries and programs. Install it with:

root # emerge --ask dev-haskell/cabal-install

Updating Haskell packages

Sometimes:

root # emerge -auvDN --keep-going @world

has trouble figuring out how to update Haskell packages. Providing emerge with the full list of dev-haskell packages that have upgrades available can sometimes help:

root # eix-update
root # emerge -av --oneshot --keep-going `eix --only-names --upgrade -C dev-haskell`
root # haskell-updater

Unless EAPI="6" is approved sometimes we have sub-slot blockers (when updating ghc or some specific package there are a list of blockers) this issue could be solved via running

root # haskell-updater -all -- dev-lang/ghc-7.6.2

Hoogle with local installation

The Hoogle ebuild is currently only available in the offical gentoo-haskell overlay. So add that first.

Important
Remember to unmask the overlay packages as described in the overlay README
root # layman -a haskell

In order to get the an offline installation of all hoogle data, you need to enable the "doc", "hscolour" and "hoogle" USE flag.

root # echo "dev-haskell/* doc hoogle hscolour" >> /etc/portage/package.use

Enable the relevant USE flags for hoogle to store all data local, and emerge hoogle

root # echo "dev-haskell/hoogle fetchdb fetchdb-ghc localdb" >> /etc/portage/package.use
root # emerge --ask dev-haskell/hoogle

After emerging haskell packages, the hoogle database of the locally installed packages is updated by running:

root # hoogle-build-localdb

HLint

HLint checks and simplifies your haskell source code! Install it with:

root # layman -a haskell
root # emerge --ask dev-haskell/hlint

Editor plugins

Emacs

Haskell Mode

The Haskell-Mode for (X)Emacs makes programming easier; install it with

root # emerge --ask app-emacs/haskell-mode

for GNU Emacs, or with

root # emerge --ask app-xemacs/haskell-mode

for XEmacs.

Then, you can configure it with M-x customize-group RET haskell RET.

ghc-mod

The official gentoo haskell overlay provides an ebuild for ghc-mod, an extension of Haskell mode. Add the overlay with

root # layman -a haskell

Then, install the ebuild

root # emerge --ask app-emacs/ghc-mod

Haskell-Mode for Vim

There's also a Haskell-Mode for Vim.

IRC

For further information and individual help, visit #haskell or #gentoo-haskell on chat.freenode.net.