Author Archives: Don Stewart

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.

Arch Haskell News: May 10 2009

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

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

Here’s today’s updates, broken down by category, so you can get a sense for what’s new in your area of interest:

Concurrency

Control

Cryptography

Data

Database

Devel

Graphics

Gui

Language

Math

Network

Text

Web

Unclassified

Arch Haskell News: May 3 2009

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

Hackage now has 1251 (+1) Haskell packages, of which 1095 (+43) (87.5%) have been natively packaged for Arch in AUR.  All these packages are available via AUR, using the “yaourt” tool.

Here’s today’s updates, broken down by category, so you can get a sense for what’s new in your area of interest:

Algorithm

Codec

Concurrency

Control

    Cryptography

    Data

      Database

      Devel

        Games

        Graphics

        Language

          Math

          Network

          Sound

          System

            Testing

            Text

            Web

            Arch Haskell News: May 2 2009

            Hackage now has 1250 (+87) Haskell packages, of which 1052 (+45) have been natively packaged for Arch in AUR.  All these packages are available via AUR, using the “yaourt” tool.

            Here’s this week’s updates, broken down by category, so you can get a sense for what’s new in your area of interest:

            Uncategorized

            Concurrency

            Control

            Cryptography

            Data

            Database

            Devel

              Distribubted Programming

              Games

              Graphics

                Language

                  Math

                  Music

                  Network

                  Sound

                  System

                    Testing

                    Text

                    Web

                    Xml

                    Arch Haskell News: Mar 14 2009: 1000 Haskell Packages

                    We’ve reached a milestone: more than 1000 Haskell packages packaged up for Arch Linux.

                    Hackage now has 1163 (+41) Haskell packages, of which 1007 (+33) have been natively packaged for Arch in AUR. That’s 33 new packages in two weeks, and lots of updates as well.

                    Here’s this week’s updates, broken down by category, so you can get a sense for what’s new in your area of interest:

                    Algorithm

                    Concurrency

                    Control

                    Cryptography

                    Data

                    Database

                    Devel

                    Graphics

                    Language

                    Network

                    System

                    Testing

                    Text

                    Web

                    Xml

                    The Arch Haskell Team maintains the Haskell toolchain on Arch Linux. You can join us in #arch-haskell on freenode.org, or on the mailing list.

                    Chart: A library for generating 2D Charts and Plots

                    Chart is a fairly mature Haskell library by Tim Docker for generated nice 2D plots and graphs using GTK/Cairo. It is now available in AUR. Here’s a demo doing some simple graphs from the command line.

                    SG: Small OpenGL geometry library for vectors and collision detection

                    SG is a small geometry library by Neil Brown for dealing with vectors, points, lines, simple shapes, and their various intersection tests written in Haskell. It is now available in AUR. You can try it out with the sgdemo app.

                    Here’s a video exercising the library.

                    On Arch Linux, you can get it with:

                    $ yaourt sgdemo

                    Everywhere else, with:

                    $ cabal install sgdemo