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

This week we see the 11th Haskell Communities and Activities Report released, Visual Haskell 0.2 is available, and a suite of new libraries and applications are announced.

Announcements

Communities and Activities Report. Andres Loeh published the Haskell Communities and Activities Report (11th edition, November 2006). The report is now available from the Haskell Communities home page in several formats. The goal of the report is to improve the communication between the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell. When we try for the next update, six months from now, you might want to report on your own work, project, research area or group as well.

Visual Haskell prerelease 0.2. Krasimir Angelov announced that there is a prerelease version of Visual Haskell available. This is the first version that is: available for both VStudio 2003 and VStudio 2005, and distributed with a stable GHC version (6.6)

Haskell MIME library. Jeremy Shaw announced the availability of a MIME processing library. This library is supposed to be able to parse emails and decode various attachments, and generate emails with attachments. The library includes modules that implement portions of: RFC 2045, RFC 2046, RFC 2387 and RFC 2822.

Core (ghc-base) library. Bulat Ziganshin announced progress on the Core library project, to divide the Haskell base library into two parts: small compiler-specific one (the Core library proper) and the rest: new, compiler-independent Base library that uses only services provided by Core lib.

hpodder 0.99.0. John Goerzen announced hpodder 0.99.0, the first beta candidate for making an eventual 1.0.0 release of hpodder. hpodder is a podcast downloader that happens to be written in Haskell. This version introduces two major new features: nicer apt-like output and multithreaded downloading.

MissingH 0.16.3. John Goerzen released MissingH 0.16.3. Including a new module MissingH.ProgressTracker which tracks the progress of long-running tasks, and MissingH.Quantity which renders numbers according to a quantification system such as SI or binary.

The restricted IO monad. Stefan O'Rear introduced RIO, an experimental library for extensible restricted IO in Haskell.

Typed symbolic differentiation. Oleg Kiselyov showed symbolic differentiation of a wide class of numeric functions without any interpretative overhead. The functions to symbolically differentiate can be given to us in a compiled form (in .hi files); their source code is not needed. We produce a (compiled, if needed) function that is an exact, algebraically simplified analytic derivative of the given function. Our approach is reifying code into its `dictionary view', intensional analysis of typed code expressions, and the use of staging to evaluate under lambda.

Haskell'

This section covers the Haskell' standardisation process.

Libraries

This week's proposals and extensions to the standard libraries.

Discussion

The Data.Array.* hierarchy is unsafe: segfaulting for fun and profit. Spencer Janssen revealed that a malicious Ix instance can be used to create segfaulting array programs in pure Haskell (under GHC or Hugs), without the use of anything marked 'unsafe'. The array operators trust the Ix instance to manage boundaries correctly. It was pointed out that the Haskell standard requires Ix instances obey an in-range side condition (just as Monad instances have side conditions).

Merging MissingH into the standard libraries. John Goerzen proposed a renaming plan to aid splitting, and merging the various MissingH modules into their own packages, and into base

Defining Cg, HLSL style vectors in Haskell. Slavomir Kaslev asked about defining a couple of float2, float3, float4 Cg, HLSL style vectors in Haskell.

Extracting sublists. Huazhi Gong asked about the best way to extract sublists. Several solutions where suggested, including a nice one by Oleg.

Generating 50 randoms. Huazhi Gong also asked about how best to generate 50 random integers, leading to some lovely of creative writing...

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

Code Watch

Wed Nov 29 11:24:21 PST 2006. simonpj. Make SpecConstr work right for nullary constructors. For totally stupid reasons, SpecConstr didn't work for the (particularly easy) case of nullary constructors like True and False. I just had some equations in the wrong order, so that a Var case came first, which matches a nullary constructor, with the constructor-application case afterwards. The fix is easy.

Fri Dec 1 04:53:04 PST 2006. Wolfgang Thaller. Decouple -O from -fvia-C. Nowadays, there are situations where -fvia-C is definitely unwanted, such as when -fPIC is used on some platforms, so we do not want implicit -fvia-C any more.

About the Haskell Weekly News

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. Headlines are available as PDF. The Haskell Weekly News is also available in Spanish translation.

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