Welcome to issue 115 of HWN, a newsletter covering developments in the Haskell community.

By all reports, the 5th Haskell Hackathon was a resounding success, with over 50 hackers present and many interesting Haskell projects worked on!

Announcements

darcs hacking sprint 2 and hac5 report. Eric Kow sent out a link to a report on the second darcs hacking sprint, held as part of the Haskell Hackathon.

HPong-0.1.2: A simple OpenGL Pong game based on GLFW. R.A. Niemeijer announced the release of HPong, a simple Pong game implemented using OpenGL and GLFW.

Hac5 roundup. Martijn van Steenbergen reported on the 5th Haskell Hackathon. See the wiki page for details, pictures, and links to blog posts.

HTTP-4000.0.6. Sigbjorn Finne announced a new release of the HTTP package, which adds more robust handling of ill-formed cookies, and fixes a bug in normalization of certain proxy-bound requests.

dataenc 0.12.1.0. Magnus Therning announced version 0.12.1.0 of the dataenc package. This version adds a bunch of new encodings, including xxencode, hexadecimal, quoted-printable, python escaping, and url encoding; and also fixed some bugs.

list-tries-0.0 - first release. Matti Niemenmaa announced the first public release of list-tries, a library providing implementations of finite sets and maps for list keys using tries, both simple and of the Patricia kind. The data types are parametrized over the map type they use internally to store the child nodes: this allows extending them to support different kinds of key types or increasing efficiency.

curl-1.3.5. Sigbjorn Finne announced a new release of the curl package, which provides Haskell bindings to libcurl. It works with ghc 6.10.2, taking into account the updated story on how to register Haskell-based finalizers.

Runge-Kutta library -- solve ODEs. Uwe Hollerbach announced a Runge-Kutta library for numerically solving ordinary differential equations.

funsat-0.6. Denis Bueno announced version 0.6 of funsat, a modern, DPLL-style SAT solver written in Haskell. Funsat solves formulas in conjunctive normal form and produces a total variable assignment for satisfiable problems. Version 0.6 adds a representation for logical circuits (and, or, not, onlyif, iff, if-then-else) supporting efficient conversion to CNF, and now uses the BSD3 license.

control-monad-exception-0.1: Explicitly typed exceptions. Pepe Iborra announced the control-monad-exception package, which provides explicitly typed exceptions for Haskell. The type of a computation in the EM monad carries a list of the exceptions that the computation may throw. A exception is raised with 'throw', which in addition adds it to the type, and captured with 'catch', which correspondingly removes it from the type. Only safe computations (all exceptions handled) can escape from the monad.

Haskell Implementers' Workshop 2009 (co-located with ICFP). Simon Marlow issued a call for talks to be given at the ACM SIGPLAN Haskell Implementers' Workshop, to be held on September 3 in Edinburgh, Scotland, in conjunction with ICFP 2009. The proposal deadline in 15 June. The Haskell Implementers Workshop is a new workshop to be held alongside ICFP 2009 this year in Edinburgh, Scotland. There will be no proceedings; it is an informal gathering of people involved in the design and development of Haskell implementations, tools, libraries, and supporting infrastructure.

persistent-map-0.0.0. Peter Robinson announced the persistent-map package, which provides a thread-safe (STM) frontend for finite map types together with a backend interface for persistent storage.

A pragmatic Haskell .NET interop layer, 0.4.0. Sigbjorn Finne announced a new release of hs-dotnet, a Haskell .NET interop layer. It lets you access .NET functionality from Haskell and vice versa. The new version includes development done since the start of the year. Apart from rewriting the internals completely to put it all on a sounder footing, this release includes proper support for .NET generic types (classes and interfaces), mapping them naturally on to Haskell parameterized types.

Utrecht Haskell Compiler (UHC) -- first release. atze announced the first public release of the Utrecht Haskell Compiler (UHC). UHC supports almost all Haskell98 features plus many experimental extensions. The compiler runs on MacOSX, Windows (cygwin), and various Unix flavors. Features include multiple backends, including a bytecode interpreter backend and a GRIN based, full program analysing backend; experimental language extensions, some of which have not been implemented before; implementation via attribute grammars and other high-level tools; and ease of experimentation with language variants, thanks to an aspect-oriented internal organisation.

6.10.3 plans. Ian Lynagh announced plans for a 6.10.3 release of GHC, in order to fix the handling of ^C in ghci. 6.10.3 will also use haskeline instead of editline.

A HERE Document syntax. Jason Dusek proposed a lightweight syntax for HERE documents in Haskell.

Discussion

Functor and Haskell. Daryoush Mehrtash asked about the link between functors in category theory and Haskell's Functor class; the resulting thread is a good introduction to the connections between Haskell and category theory for those just learning the latter.

breaking too long lines. Christian Maeder asked how to break long lines in Haskell source, leading to an interesting discussion of coding style.

Jobs

Haskell consultant wanted to develop small, Mac-based utility in Haskell or AppleScript. R J announced an opportunity to develop a short program to annotate lists of words with their definitions.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

About the Haskell Weekly News

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.

To help create new editions of this newsletter, please see the information on how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get http://code.haskell.org/~byorgey/code/hwn/ .