Welcome to issue 76 of HWN, a newsletter covering developments in the Haskell community.
The ICFP Programming Contest is this weekend! Go forth and kick some butt, Haskell-style. A big thank you in advance to all those at PSU and U Chicago who are working hard to write and run the contest.
Luke Palmer (luqui) is having a great time in Antwerp.
John Goerzen's son is so cute, it should be illegal.
Haskell-cafe on lively.com. Edward Kmett has created a Haskell Cafe room on Google's new virtual-world platform Lively (which is unfortunately windows-only at the moment).
Uniplate 1.2. Neil Mitchell announced the release of Uniplate 1.2, a library for reducing boilerplate code by performing generic traversals. Version 1.2 features some bug fixes, a compatibility layer with Compos and SYB, and a 25-50% performance increase over Uniplate 1.0.
GHC 6.8.2 stable in Gentoo. Luis Araujo announced that GHC 6.8.2, and its accompanying libraries, have now been marked as stable in the official Gentoo portage tree.
The Monad.Reader (11) - Call for Copy. Wouter Swierstra announced a call for copy for Issue 11 of the Monad.Reader. The submission deadline is August 1, although you should let Wouter know as soon as possible if you plan to submit something.
hCsound. John Lato announced the initial public release of hCsound, a Haskell binding to the Csound audio processing language API.
Portland and OSCon. John Goerzen inquired whether any Haskellers in Portland would be interested in getting together during OSCon July 23 or 24.
Faster graph SCCs. Iavor Diatchki announced that he has implemented Tarjan's algorithm for computing the strongly connected components of a graph, which is considerably faster than the containers package for larger graphs. Iavor's implementation is available in the GraphSCC package.
parallel map/reduce. jinjing exhibited some code for doing parallel map/reduce computations.
Disciplined Disciple Compiler. Ben Lippmeier announced version 1.1 of the Disciplined Disciple Compiler (DDC), an explicitly lazy dialect of Haskell, with support for first class destructive update of arbitrary data, computational effects without the need for state monads, and type directed field projections. Version 1.1 includes a number of new features and more example code.
darcs 2.0.2. David Roundy announced the release of darcs 2.0.1 and 2.0.2. These releases fix quite a few bugs, and users of darcs 2 are strongly recommended to upgrade.
Progress updates from participants in the 2008 Google Summer of Code.
GHC plugins. Max Bolingbroke is working on dynamically loaded plugins for GHC. Over the past two weeks, he has implemented type safe dynamic loading, an annotations system, and some sample plugins.
Hoogle 4. Neil Mitchell (ndm) is working on Hoogle 4. This week, he has been working on type searching, using a much more efficient algorithm than type search in previous versions of Hoogle. Next week, he plans to finish off type search and work on the build system.
DPH physics engine. Roman Cheplyaka (Feuerbach) is working on a physics engine using Data Parallel Haskell. He spent most of this week fixing bugs and improving existing simulation code. And he now has something to show for it!
Language.C. Benedikt Huber (visq) is working on Language.C, a standalone parser/pretty printer library for C99. This week, he created a semantic representation for declarations and types, and a way to convert between an AST representation and a semantic representation.
Cabal dependency framework. Andrea Vezzosi (Saizan) is working on a make-like dependency analysis framework for Cabal.
Generic tries. Jamie Brandon is working on a library for efficient maps using generalized tries.
GHC API. Thomas Schilling (nominolo) is working on improvements to the GHC API.
Extensible exceptions. Ian Lynagh sent out a proposal to replace the current exception mechanism in the base library with extensible exceptions, a la Simon Marlow's extensible extensions paper. Deadline for discussion is 25th July.
Qualified import syntax badly designed (?). Neil Mitchell began a discussion about Haskell syntax for qualified module imports (and module imports in general).
Trouble with zip12. Michael Feathers is having trouble with the zip12 function and some weird SQL-related errors...
Santana on my evil ways. John D. Ramsdell set off a spate of Haskell song and poetry.
Alternatives to convoluted record syntax. Dougal Stanton asked about alternatives to convoluted record update syntax, eliciting a number of interesting responses.
Lectureship in Functional Programming, Nottingham. Graham Hutton announced an opening for a Lecturer in the Functional Programming Lab in Nottingham, a recently formed research group that comprises Thorsten Altenkirch, Graham Hutton, Henrik Nilsson, four research fellows, and eleven PhD students. Applications from the Haskell community are encouraged! The closing date for applications is Friday 15th August 2008.
Edward Kmett: A Lively Haskell Cafe. A Haskell Cafe room on lively.com!
Sterling Clover: Comonads in everyday life. A neat post on using a zipper comonad to render a website menu hierarchy without lots of duplicated effort.
Chung-chieh Shan: Differentiating regions.
Real-World Haskell: Real World Haskell, The Book, Available for Pre-Order.
Benedikt Huber: An analysis-friendly representation. An update on Benedikt's Google Summer of Code project, Language.C.
Chris Okasaki: Breadth-First Numbering: An Algorithm in Pictures. Algorithms without words!
>>> Jeremy Frens: PE Problem #2 in All Languages (Part I). Jeremy explores solutions to Project Euler problem #2 in a variety of languages.
Roman Cheplyaka: Double buffering & demo. A demo of Roman's Google Summer of Code physics simulator!
Roman Cheplyaka: QuickCheck puzzle: the answer. Why Roman's QuickCheck test involving nonzero vectors didn't terminate. Sneaky.
Roman Cheplyaka: Status report: week 6. A status report on Roman's Google Summer of Code project.
>>> JP Moresmau: Handling errors in JSON to Haskell deserialization. JP adds error handling with an Either monad to his JSON deserialization code.
Braden Shepherdson: Fixed Point Datatypes. Braden explains the concept of recursive data types as fixed points of functors.
Luis Araujo: GHC 6.8.2 stable! (Himerge 0.21.9 too!).
Matthew Sackman: Anglo Haskell 2008.
Neil Mitchell: GSoC Hoogle: Week 6.
>>> James Hague: Functional Programming Went Mainstream Years Ago.
Max Bolingbroke: Compiler Plugins For GHC: Weeks Three and Four. An update on Max's Google Summer of Code project.
>>> David Overton: A Haskell Sudoku Solver using Finite Domain Constraints. David shows how to use his Haskell constraint solver to solve Sudoku puzzles. Pretty neat!
>>> Lorenz Pretterhofer: Haskell Does Concurrency.
Edward Kmett: Anamorphism. The newest installment in Edward's field guide to recursion schemes.
John Goerzen (Real World Haskell): Last Call for Comments on Most Chapters. Real World Haskell is going to press soon! Get your final comments in ASAP!
Edward Kmett: MSFP 2008.
Lennart Augustsson: Lost and Found. A very slick Haskell library for tracing how expressions are actually evaluated, including the ability to explicitly see the sharing involved!
Tom Nielsen (FP Lunch): braincurry. A domain specific language to define and execute experiments and simulations related to cellular neuroscience.
Alex McLean: Visualisation of a triangular mesh.
Paul R Brown: Beust Sequence Ruminations. Thoughts on solving an interesting puzzle in Haskell.
>>> David Overton: Constraint Programming in Haskell. David is working on a constraint logic programming system in Haskell.
>>> chaource: Why functional programming is almost dead (and has always been). Interesting argument? Flawed premises? Both? None of the above? You decide!
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.
To help create new editions of this newsletter, please
see the information on how
to contribute. Send stories to byorgey at seas dot upenn
dot edu. The darcs repository is available at darcs get http://code.haskell.org/~byorgey/code/hwn/
.