Personal tools

Raspberry Pi

From HaskellWiki

Jump to: navigation, search

This article is a stub. You can help by expanding it.


1 Introduction

Raspberry Pi is an ARM based single-board computer, developed for educational purposes, costing USD 25. For more details, see the Wikipedia article about Raspberry Pi, or the FAQ list.

Raspberry Pi Beta Board.jpg

2 Links

3 GHC Status

Of the "official" images currently available from the Raspberry Pi Downloads page, the following versions of GHC are available

  • Arch Linux - 6.12.3-1
  • Debian Squeeze - 6.12.1-13
  • Debian Wheezy - 7.4.1-3
  • Raspbian Jessie - 7.6.3-21+rpi1

Note: GHCi does not work on ARM with older versions, but it has become available in GHC 7.8. See this post on haskell-cafe for the status as of December 2013. Success with 7.8 on a Raspberry Pi 2.

There seemed to be a point where GHCi was merged into version 7.4.2., and it may still be possible to install it in an experimental manner, but it is not (currently) available in the Debian Raspberry Pi repository. Here is a discussion thread wherein djhuk describes compiling and installing GHC-7.4.2 via QEMU to the Raspberry Pi, with incomplete GHCi functionality.

To build a cross-compiler from Linux to Raspberry Pi (running Raspbian), see the GHC Trac.

4 Libraries

  • pi-lcd
This package allows using an Adafruit character LCD and keypad kit on a Raspberry Pi from Haskell.
The package on Hackage
On GitHub
The announcement
  • wiringPi
A Haskell binding to the wiringPi library, for using GPIO on the Raspberry Pi
The package on Hackage
On GitHub
The announcement

5 Current Issues

The main issue encountered so far is the memory limitations of the devices with 256 MB RAM; GHC will execute fine, but problems will start to arise when using cabal-install to install new libraries, especially ones with lots of dependencies. (Recent model B boards have 512 MB on board [1], Raspberry Pi 2 Model B boards have 1GB on board.)

Potential solutions to this problem have been suggested, including using QEMU on a more powerful system and thus compiling your application there and copying the resulting binary across to your Raspberry Pi

6 Books

7 See also