Data Parallel Haskell: a high-performance extension to GHC
The Data Parallel Haskell project is about adding support for nested data paralellism to the Glasgow Haskell Compiler (GHC). Nested data parallelism enables a high-level description of a wide range of parallel algorithms, while supporting a language-based cost model. It is also a rather portable form of parallelism, although our current focus for Data Parallel Haskell is SMP hardware, and especially, multi-core processors.
Data.Array.Accelerate: accelerated array processing in Haskell
Data.Array.Accelerate is a Haskell library that provides an embedded language of collective operations on regular, multidimensional arrays. It is currently under active development with the aim of providing online compilation of the embedded array language to a variety of high-performance architectures, such as programmable GPUs.
C->Haskell: Haskell bindings to C libraries made easy
C->Haskell is an interface generator for Haskell bindings to C libraries. Most of the Gtk+HS binding is generated using C->Haskell.
λFeed: Generate your own news feeds, blog feeds, podcasts, etc.
λFeed generates RSS 2.0 feeds and corresponding HTML from a non-XML, human-friendly format for channels and news items. The tool is in an early development phase and very hackable.
VersionTool: Integrate version information into program sources
Gtk+HS: A library for powerful GUIs in Haskell
This project is no longer under active development. Together with a some other Haskell hackers, I am currently developing a GTK+ Binding for Haskell. It is already usable for GUIs of medium complexity and also features support for OpenGL via Sven Panne's HOpenGL and GtkGLArea as well as a binding to a widget embedding the rendering engine of the Mozilla web browser and libglade. There an experimental wrapper for functional GUI programming in the GTK+ binding now: iHaskell. It is based on the Haskell Ports Library, a new abstraction for modelling time-dependent variables in Haskell.
IDoc: Generating interface documentation for your Haskell libraries
This project is no longer under active development. Haskell mixes interface and implementation of a module in a single file, so that it is is difficult to pass the interface to a library user without exposing them to the implementation, too. (This is not about preventing access to the implementation, but about maintaining abstraction barriers between loosely-coupled parts of large software systems.)
IDoc is a simple and easy-to-use tool that, for the price of following a couple of simple and non-obstructive conventions, generates interface documentation from Haskell modules, rendering them in markup languages like HTML.
Together with Gabriele Keller, I wrote a (non-optimized) two-dimensional n-body code based on the Barnes-Hut algorithm. It is meant as a reference implementation - we wrote it to debug a parallel implementation of the algorithm. For more details have a look at the Dagstuhl Barnes-Hut page.
Functional languages are very well suited for implementing compilers. The Compiler Toolkit (CTK) provides some core functionality needed in any kind of compiler, like symbol table management, input-output operations, error management. Furthermore, there are now self-optimizing scanner and parser libraries. The latter can be obtained and used stand alone in the Compiler Toolkit Light (CTKlight).
Here are two modules from the toolkit that are useful outside the compiler context:
Related to Haskell hacking is the Glasgow Haskell Compiler Commentary. It's aim is to explain the magic behind the Glasgow Haskell Compiler - and, believe me, there is a lot of magic in it. I started the commentary only recently, so the material is still very limited.
Moreover, I am the editor of the Haskell 98 Foreign Function Interface Addendum, a proposal for a standardised foreign function interface for Haskell.
The class file
I wrote a guide to installing GNU/Linux on the Fujitsu S6130 and P5020 entitled "Liberating the Fujitsu S6130 & P5020, or Centrino in the Free World". A while ago, I wrote a similar document for the Dell Latitude C400 notebook under the title "Liberating the Dell Latitude C400", but it is probably not of much value anymore.
|• Copyright 2005 Manuel M T Chakravarty • Last modified: Thu Jun 8 16:45:35 EDT 2006 •|