[Haskell-cafe] ANN: atom-1.0.0

Tom Hawkins tomahawkins at gmail.com
Sat Feb 13 06:10:55 EST 2010

Atom is a Haskell DSL for designing hard realtime embedded software.
The 1.0 release is meant to indicate some level of stability; most of
the core has been unchanged for quite some time.

That said, there are a few interesting changes in 1.0.  First the var'
family of variable declarations (bool', word8', double', etc.) are no
longer part of the Atom monad.  For example:

bool' :: Name -> V Bool

This cleaned up quite a bit of code in our production design.  This
also made the randomization in Atom's unit testing framework monadless
as well.

The other significant change with 1.0 is all state variables are now
packed into a hierarchical C structure that matches the hierarchy of
the Atom design.  Not only does this make the generated C a bit more
legible, it is now possible to interface external C code directly to
Atom's state variables and arrays.  Prior to this change, all
interfacing had to be done through var' declarations and action calls
-- too often a messy process.  To further aid interfacing to external
code, Atom now generates a header file that exposes both the iterative
function and the hierarchical state structure.



More information about the Haskell-Cafe mailing list