Haskell Weekly News: July 03, 2006

Submitted by dons on Sun, 07/02/2006 - 9:12pm.
Welcome to issue 39 of HWN, a weekly newsletter covering developments in the Haskell community. Each week, new editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org.

A week of busy activity in the community. Thanks to Simon Marlow and Josef Svenningsson for contributions to this issue.


  • HDBC 1.0 . John Goerzen released the latest HDBC. HDBC is a database tool, modeled loosely on Perl's DBI interface, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. You can find the code here.

  • hpodder . John Goerzen announced the first release of hpodder. hpodder is a podcast downloader (podcatcher) written in pure Haskell. It exists because John was unsatisfied with the other podcatchers for Linux. Full details here.

  • hmp3 1.1 . Don Stewart announced a new release of hmp3, the curses-based mp3 player written in Haskell. Release 1.1 is a maintenance release, fixing support for GHC 6.4.2

  • HSP.Clientside 0.001 . Joel Bjornson announced a prerelease version of Hsp.Clientside. This is Joel's Summer of Code project aiming to add support for client-side script generation in Haskell Server Pages. The basic building blocks for embedding Javascript has been implemented. As the project proceeds a suitable programming model based on these components will be added. Hopefully this will also include some kind of higher level Ajax support. For more information see here.

  • QDBM and Hyper Estraier bindings . Jun Mukai released a library of bindings to Quick DBM, a database module similar to GDBM, Berkeley-DB, optimized for performance and a simple API. Additionally, Jun's code includes support for Hyper Estraier, a full-text search system using QDBM, with the ability to search documents according to keywords.

  • Streams 0.2 . Bulat Ziganshin announced the beta release of his Streams 0.2 library, providing fast string and binary IO, now with Data.ByteString support.

  • HNOP 0.1 . Ashley Yakeley released the first version of HNOP 0.1. HNOP does nothing. This version should be considered "beta" quality.

  • HList updates . Oleg Kiselyov announced that HList, the library for strongly typed heterogeneous lists, records, type-indexed products (TIP) and co-products is now accessible via darcs, here. Additionally, Oleg pointed to some new features for HList, including a new representation for open records. Finally, he published a note on how HList supports, natively, polymorphic variants: extensible recursive open sum datatypes, quite similar to Polymorphic variants of OCaml. HList thus solves the `expression problem' -- the ability to add new variants to a datatype without changing the existing code.

  • Haskell IO Inside . Bulat Ziganshin wrote a new introductory tutorial to IO in Haskell, Down the Rabbit's Hole.

  • Bytecode API 0.2 . Robert Dockins published the Yhc Bytecode API version 0.2. More details here.

  • Translating Haskell into English . Shannon Behrens published a new Haskell tutorial, hoping to give readers a glimpse of the Zen of Haskell, without requiring that they already be Haskell converts.


This section covers the Haskell' standardisation process.


  • Haskell and the Great Language Shootout, reloaded . Simon Marlow highlighted some remarks and discussion from Brent Fulgham, the driving force behind the Great Language Shootout on the impact recent advances in the performance of GHC have had. In particular, many benchmarks had to be rewritten due to the performance advantage lazy Haskell programs had over strict (and wasteful) entries in other languages. Brent noted that "applications written in Haskell can be reasonably expected to yield good performance on all of the common x86 platforms without customizations". This in turn led to a discussion about further improvements we can expect to see in GHC Haskell over the next few months.

  • HNOP, doing nothing, and really complex ways of doing nothing . Ashley Yakeley forked a somewhat surreal thread regarding Haskell programs that do nothing.

Quotes of the Week

  • Brian Hulley : "It is definitely *a* haskell. There is actually no word in English with a silent 'h', though this statement is unfortunately controversial and news to whoever wrote the spell checker used in many printed publications. Of course some particular dialects use different pronunciation like 'me 'otel room 'ad an 'askell 'mpiler in t' closet as well as tub 'n sink tha knows'"

Code Watch

    Thu Jun 29 06:58:36 PDT 2006  Simon Marlow
        * No longer force -fvia-C for the RTS, it can now be compiled with the

    Sat Jul  1 01:43:45 PDT 2006  Don Stewart
        * Import Data.ByteString.Lazy, improve ByteString Fusion, and resync
        with FPS head

           This patch imports the Data.ByteString.Lazy module, and its helpers,
           providing a ByteString implemented as a lazy list of strict
           cache-sized chunks. This type allows the usual lazy operations to be
           written on bytestrings, including lazy IO, with much improved space
           and time over the [Char] equivalents.

Contributing to HWN

To help create new editions of this newsletter, please see the contributing information. Send stories to dons at cse.unsw.edu.au . The darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn