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

New releases of haddock, gitit, jhc, formlets, and lots of other libraries and tools; Edinburgh Hack Day, ICFP, and HacPDX coming up; exciting times! The Google Summer of Code has also wrapped up. See below for final progress reports from this summer's Haskell participants.


GLUT Sven Panne announced a new version of the GLUT package. The package is now autoconf-free, with API entries are resolved dynamically at runtime; support for sRGB framebuffers has been added; and support for context profiles has been added.

Potential Network SIG. Thomas DuBuisson announced the formation of a SIG to hammer out a design for a new Network API, seeing as the current API, a straight-forward Berkeley binding, doesn't seem to please anyone in a Haskell context.

epoll bindings 0.1.1. Toralf Wittner announced the release of epoll bindings 0.1.1. Epoll is an I/O event notification facility for Linux similar to poll but with good scaling characteristics. Currently the bindings are fairly low level and close to the C API, but there are plans to add some buffer or stream abstraction on top. Eventually, when GHC can make use of epoll/kqueue in addition to select, this library will not be needed anymore. Until then it might be useful for applications which monitor large numbers of file descriptors.

gitit 0.6.1. John MacFarlane announced the release of gitit 0.6.1, a wiki program that runs on happstack, the Haskell web application server stack, and stores pages and other content in a git or darcs filestore. The whole code base has been overhauled since the last release: gitit is now faster, more memory efficient, more modular, and more secure. It also has many new features, including page metadata and categories, atom feeds (sitewide and per-page), support for literate Haskell, a better configuration system, an improved caching system, a Haskell library exporting happstack wiki handlers, and a plugin system.

jhc 0.7.1. John Meacham announced the 0.7.1 release of the jhc optimizing Haskell compiler. There have been a lot of changes since the last public release. Some notable ones include the use of a general compiler cache by default rather than object files; reworked library support; an updated manual, with clearer build instructions; support for writing pure C libraries in Haskell; numerous library updates; smart progress meters; typechecking before compilation; and various bug fixes and cross compilation improvements.

rss2irc 0.3 released. Simon Michael announced the release of rss2irc version 0.3, an irc bot created by Don Stewart to watch rss feeds and announce new items on irc, now maintained by Simon. This version includes reliable http networking, irc flood protection, better error handling & reporting, extensive debugging output, Atom support, more useful defaults, precise control of irc output, and is now installable on OSX. Feedback and patches welcome.

formlets 0.6. Chris Eidhof announced that the formlets team has released a new version of formlets, a library to build type-safe, composable web forms. Most notably, Mightybyte and Chris worked on the massInput functionality, which is now ready for use!

graphtype -- A simple tool to illustrate dependencies between Haskell types. Max Desyatov announced the release of graphtype, a tool for visualising type declarations in Haskell source files. It produces .dot-files for subsequent processing with graphviz.

OAuth library in haskell. Diego Souza announced the release of hoauth, a library which helps you to deal with the oauth protocol. Currently it supports only consumer side applications, but there are plans to add service providers support in near future.

ByteString Nums. Jason Dusek announced bytestring-nums, a simple package for relatively careless parsing of numbers from ByteStrings. It works to parse out integer strings, floating point strings and hex strings.

haskell-src-exts-1.1.3. Niklas Broberg announced the release of haskell-src-exts-1.1.3, a package for Haskell source code manipulation. It handles (almost) all syntactic extensions to the Haskell 98 standard implemented by GHC, and the parsing can be parametrised on what extensions to recognise. haskell-src-exts-1.1.3 is a highly experimental release, which does not change the current stable part of haskell-src-exts. But it includes a whole new set of modules implementing a new and more accurate syntax tree where all nodes are adorned with annotations. Together with this comes a parser that retains exact source information, stored in the aforementioned annotations. Help in testing and bug reporting is welcome and appreciated!

ministg-0.2, an interpreter for STG operational semantics. Bernie Pope announced the first public release of Ministg, an interpreter for a high-level, small-step, operational semantics for the STG machine, the abstract machine at the core of GHC. One of the main features of Ministg is the ability to record a trace of the execution steps as a sequence of HTML files; here is an example trace.

OpenCLRaw 1.0.1000. Jeff Heard announced the release of OpenCLRaw, a raw binding to the OpenCL, a platform for single-host heterogeneous, data-parallel computing. He has future plans to create higher-level bindings on top of these raw ones.

compose-trans-0.0. Miguel Mitrofanov announced compose-trans, a small library intended to make monad transformers composable.

Haddock version 2.5.0. David Waern announced the release of Haddock 2.5.0. This version reverts to the old multi-page index for large packages, shows GADT records in the generated documentation, adds a --use-unicode flag for displaying prettier versions of common symbols, and many other changes.

Edinburgh Meetup (Sat 29 Aug) and Hack Day (Sun 30 Aug). Eric Kow sent a reminder that we will be having a Hack Day in Edinburgh on Sunday 30 August at the ICFP venue. There will also be a meetup the day before, 09:30 Saturday 29 August just outside the ICFP venue; we'll have a quick wander and hopefully find some nice places to sit and chat, whip out the occasional laptop and fling a lambda or not being careful not to injure the passers-by.

Cleaner networking API - network-fancy. Taru Karttunen announced network-fancy, which offers a cleaner API to networking facilities in Haskell. It supports high-level operations on tcp, udp and unix sockets. Feedback on the API is welcome!

GLFW-0.4.1. Paul L announced a new version of GLFW, 0.4.1. Notable changes include a workaround for a FFI bug that affects GHC < 6.10 on 64-bit machines, a fix for the compilation problem on OS X for GHC > 6.10.1, a compatibility fix to work with both OpenGL and older versions, choice of a "dynamic" flag to link with dynamic GLFW C library instead, and a number of other fixes, cleanups and improvements.

HacPDX, A Hackathon in Portland. Thomas DuBuisson announced HacPDX, an opportunity for Portland Haskell hackers to join together in building and improving libraries and tools. If you've never been, hackathons are typically not only a good opportunity for experienced devs to work together but also a great way for newcomers to get involved in the community. HacPDX will take place Friday September 25 to Sunday September 27 at Portland State University; see the email for more specific details.

Hack on the Delve core, with Delve and Haskell. spoon announced Delve, a new programming language intended to bring the benefits of static type checking and functional programming to object-oriented design and development, currently being implemented in Haskell. Contributors welcome!

cabal-query 0.1. Max Desyatov announced the release of cabal-query, a package to assist in finding a set of Cabal packages which satisfy your needs.

EnumMap-0.0.1. John Van Enk announced the first version of EnumMap, a generalization of IntMap that constrains the key to Enum rather than forcing it to be Int.

Google Summer of Code

Progress updates from participants in the 2008 Google Summer of Code.

Haddock improvements! Isaac Dupree has wrapped up his project, with patches waiting to be merged back into both Haddock and GHC. His final post contains a detailed description of the work he did; looks like we'll have much better cross-package documentation support in Haddock soon!

EclipseFP. Thomas Ten Cate began adding a notion of build targets to EclipseFP, so that projects can be created without .cabal files. He has wrapped up the project for now, and although he isn't fully happy with the results that he achieved, he was able to make useful contributions which hopefully others can continue to build on.

Improving the Haskell space profiling experience. Gergely Patai's project is done: he uploaded hp2any, a set of realtime space profiling tools, to Hackage. He also created a haskellwiki page describing it and its use.

haskell-src-exts -> haskell-src. Niklas Broberg has been working on a complete revamp of the AST, lexer and parser to allow for exact source info to be kept in the tree, which in turn will allow exact printing of the code as it was read.

darcs. Petr Rockai posted a final report where he described his accomplishments: the hashed-storage library for reading and writing filesystem trees in hash-based formats; darcs whatsnew integration with hashed-storage; progress on a new and improved version of hashed-storage, and a branch of darcs depending on it; and darcs-benchmark, a standalone package for benchmarking darcs.


Unification and matching in Abelian groups. John D. Ramsdell shared some code implementing unification and matching in Abelian groups.

Grouping and SIMD in parallel Haskell (using Nested Data Parallel Haskell ideas in legacy code). Zefirov Sergey posted some code showing how to translate Parallel Haskell programs (expressed with par and pseq) into Nested Data Parallel Haskell.

Request for Comments - hscurrency 0.0.1. Max Cantor requested feedback on some simple tools to do safe calculations on different currencies.

DDC compiler and effects; better than Haskell? (was Re: unsafeDestructiveAssign?). Peter Verswyvelen began a long discussion about the DDC compiler and its effect system, and the relationship to Haskell and monads.


Credit Suisse is hiring. Ganesh Sittampalam announced that the Global Modelling and Analytics Group (GMAG) at Credit Suisse is once again looking to hire functional programmers; see his email for more information.

Jane Street is Hiring (as if you didn't already know). Yaron Minsky sent out a reminder that Jane Street is looking to hire functional programmers; see his email for more details. He also mentioned that he will be at parts of ICFP, CUFP and DEFUN this year, so if you're interested, come and talk to him there.

Galois is Hiring. Don Stewart announced that Galois is continuing to hire, with multiple positions for talented functional programmers (with both junior and senior positions). They will be at ICFP and related events; see Don or Lee Pike.

Blog noise

Haskell news from the blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them!

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/ .