Author Archives: Don Stewart

happstack 0.4: A scalable framework for developing web applications in Haskell

Happstack is the Haskell Application Server Stack. It is a scalable framework for developing web applications, similar in purpose to Django, RoR, Turbogears, Grails, Seaside. happstack powers and and you can use it to beat the Arc Challenge. The latest release of happstack is now available in Arch, via AUR, and features a built-in HTTP server, built-in persistant data store, many ways to do templating, a rich EDSL for designing requests and responses, and easy integration with an external database, or webserver.

All the packages are here:

To get started with happstack, you can work through Real World Happstack.


Arch Haskell News: September 12 2009

Hackage now has 1540 (+97) Haskell packages, of which 1342 (+76) (87.2%) have been natively packaged for Arch in AUR. All these packages are available via AUR, using the “yaourt” tool.

You can find the status of all Haskell packages in Arch here, regularly updated using the archlinux Haskell package tools.

Automated Package Tracking for Arch Haskell

It’s a lot of work managing the Haskell packages for Arch Linux. We use the principle of automating all parts of the packaging process, and rely on cabal to give us good metadata about our packages. However, over time we end up with packages generated for Arch using old versions of tools, or gaps in coverage.

In order to ensure consistent, high quality packages, we’ve been building a programmatic interface to AUR and Hackage, to automate checking of package sanity.

You can find:

With the new AUR package linter tool it should be easier to ensure all those Haskell packages are building and working as desired.

Atom : a domain specific language for hard realtime applications

Atom 0.1.0 has just been released by Tom Hawkins.

Atom is an open source language, embedded in Haskell, for writing embedded real-time software. It was originally designed and deployed at Eaton Corporation to improve development times and ease of verification of hydraulic hybrid systems in buses and trucks. It has been open sourced, and is starting to be used for other embedded systems programming tasks.

Atom uses ideas from conditional term rewriting to compile atomic transition rules into C code with guarantees of constant memory use and execution time.

The productivity benefits were impressive from April 2009:

  • 5K lines of Haskell/atom replaced 120K lines of matlab, simulink,
    and visual basic.
  • 2 months to port simulink design to atom. – 3K lines of atom generates 22K lines of embedded C.
  • Rules with execution periods from 1ms to 10s all scheduled at
    compile time to a 1 ms main loop.
  • Atom design clears electronic/sw testing on first pass.
  • Currently in vehicle testing with no major issues.

Atom compiles Haskell source to C (so you can use it for writing regular old C programs). Here’s an example Atom kernel by Lee Pike:

atom "computeFib" $ do
  cond $ value runFib
  cond $ value i >. 0
  decr i
  snd <== (value fst) + (value snd)
  fst <== value snd

Examples are included in the Atom source.

It is available for Arch Linux:

Resources for Atom Programming

Arch Haskell News: July 25 2009

Hackage now has 1443 (+48) Haskell packages, of which 1266 (+44) (87.7%) have been natively packaged for Arch in AUR. All these packages are available via AUR, using the “yaourt” tool.

Read the full list of updates.

Notable Updates

There were some quite significant new apps, and libraries this month.

bloxorz: an OpenGL Logic Game written in Haskell

Bloxorz is a fun OpenGL-based logic game written in Haskell. On a 2 dimensional board, your goal is to flip the block until it reaches the hole.  Here’s a demo:

You can play with it on Arch Linux via:

    $ yaourt bloxorz

On other systems

    $ cabal install bloxorz

A background to the project is written up here.

Arch Haskell News: June 30 2009

Another update, since there was a bit of a package backlog.

Hackage now has 1395 (+130) Haskell packages, of which 1222 (+113) (87.6%) have been natively packaged for Arch in AUR. All these packages are available via AUR, using the “yaourt” tool.

The full log of updates and new packages is available here.

Notable Updates

Dozens of other packages have been added as well. Interestingly, a handful of new Haskell games have been published.