Haskell Weekly News: August 07, 2007
Welcome to issue 64 of HWN, a weekly newsletter covering developments in the Haskell community.
This issue marks the second anniversary of the Haskell (not quite) Weekly News. Thanks to the Haskell community for support, content and for reading over the last two years!
OSCON Haskell Tutorial. Simon Peyton-Jones Appeared at the O'Reilly Open Source Convention (OSCON) in Portland, delivering a range of talks, including A Taste of Haskell, A Keynote on Functional Languages, Nested Data Parallelism and Transactional Memory for Concurrent Programming. Videos are available for most of these talks: A Taste of Haskell: Part 1, A Taste of Haskell: Part 2, slides for A Taste of Haskell, Transactional Memory for Concurrent Programming and the NDP talk at the London Hugs meeting.
hpodder 1.0. John Goerzen announced version 1.0.0 of hpodder, the command-line podcatcher (podcast downloader) that just happens to be written in everyone's favorite language. You can get it here. Version 1.0.0 sports a new mechanism for detecting and disabling feeds or episodes that repeatedly result in errors, updates to the Sqlite database schema, and several bugfixes.
encoding-0.1. Henning Günther announced the release of 'encoding', a Haskell library to cope with many character encodings found on modern computers. At the moment it supports (much more is planned): ASCII, UTF-8, -16, -32, ISO 8859-* (alias latin-*), CP125* (windows codepages), KOI8-R, Bootstring (base for punycode)
Dimensional 0.6: Statically checked physical dimensions. Björn Buckwalter announced a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities/units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units.
HackageThis week's new libraries in the Hackage library database.
hgal-1.0.1. Jean Philippe Bernardy. Computation automorphism group and canonical labeling of a graph
hpodder-1.0.3. John Goerzen. Podcast Aggregator (downloader)
dlist-0.3.1. Don Stewart. Differences lists: a list-like type supporting O(1) append
pointfree-1.0. Felix Martini. Stand-alone command-line version of the point-less plugin for lambdabot
encoding-0.1. Henning Guenther. A library for various character encodings
AppleScript-0.1.3. Wouter Swierstra. Call AppleScript from Haskell
SDL-ttf-0.4.0. David Himmelstrup. Binding to libSDL_ttf
Finance-Quote-Yahoo-0.2. Brad Clawsie. Obtain quote data from finance.yahoo.com
xmobar-0.7. Andrea Rossato. A Minimalistic Text Based Status Bar
Conference roundupOSCON. Simon Peyton-Jones gave a series of popular talks about Haskell and functional programming at OSCON, in Portland. Below are collected just some of the posts about Haskell at OSCON.
- A brief Haskell-at-OSCON trip report
- Wow! OSCON video viewing statistics
- OSCon Wednesday Part 2
- A Taste of Haskell, A Taste of C
- OSCON Day 1
- A Taste of Haskell
- OSCON 2007
- Threading Building Blocks and C++
- OSCON: Wednesday Morning
- OSCON: Wednesday Afternoon
- OSCON 2007 (July 25)
- Nested Data Parallelism in Haskell
- OSCON 2007: Wednesday Morning Keynotes
- A Taste of Haskell
Blog noiseHaskell news from the blogosphere.
- Ord, Countable Ordinals, and an Idea of sigfpe
- Word numbers, Part 1: Billion approaches
- Implementing SmallTalk in Haskell
- From walking to zipping, Part 1: Moving right
- From walking to zipping, Part 2: Down and up
- Irrefutable patterns for the ignorant
- Making Haskell nicer for game programming
- Nested Data Parallelism in Haskell
- Compiling Haskell to Erlang
- Peano's Axioms IV: Advanced Functions and Integers
- 37 Reasons to Love Haskell
- On the value of strong static typing
- Parsec Parser Testing with QuickCheck
- Fallacies in the Great Dynamic vs Static Debate
- Implementing a dictionary using first class functions
- Strong specifications in Coq: the type says everything
- Run length encoding in Haskell
- Run length encoding and arrows
- Playing with Arrows
- Monads! (and Why Monad Tutorials Are All Awful)
- Haskell: Explaining Arrows through XML Transformations
- Monads as computation
- Closed Categories
- Good Haskell Style
- Monads are hard to teach
- First attempt at using GTK with Haskell
- Introduction to Haskell, Part 3: Monads
- Programming in Haskell
- Haskell Fun
- Algebraic Data Types again
- DFAs, Categories, and Typecheckers
- Haskell State Accessors (second attempt: Composability)
- Developing Programs and Proofs Spontaneously using GADT
- Encoding Inductive and Coinductive Types in Polymorphic Lambda Calculus
- Polymorphic Types in Haskell without Constructors?
- Substraction not Definable in Simply Typed Lambda Calculus
- Imperative programming is a special type of functional programming
- Binding Haskell to C structs
Quotes of the Week
- schluehk: ... Haskell taking over the world and troubled parents ask why their kids have turned into math hippies talking about nothing but love and abstract algebra...
- JohnGoerzen: Haskell manipulates functions with the same ease that Perl manipulates strings
- (anonymous Russian blogger): Glory to Simons! Glory to Swedish professors!
- Laurent Sansonetti: I appreciated so much the Haskell talks that I am now learning the language.
- dcoutts: Apparently that's only 200x faster than the faster of two common python serialisation libs, so we've got some way to go yet.
- slava: [on Isabelle for web frameworks] IM IN UR WEB SITEZ, CODING PROVABLY-CORRECT BLINK TAG!!
- gimboland: At present i'd say 'tinkering with a nuclear bomb' is approximately where i am with monads...
- jcreigh: Could not find instance Ord for type ProgrammingLanguage
- kowey: i suspect we're one of the rare wikibooks to use higher order templates
- monochrom: 'm a -> (a -> m b) -> m b' is much more to the point than 'mumble computation mumble computation mumble computation mumble'
- roconnor: damn it, Haskell pseudo code is indistinguishable from actual code
- slava: Because top enterprise industry analysts recommend Because top enterprise industry analysts recommend that managers need to focus on Agile methodologies, SOA, B2B and Yoneda's lemma in today's rich internet application-driven environment. Don't get left behind by the AJAX craze by missing out on call center outsourcing and Yoneda's lemma!
Code WatchNotable new features and bug fixes to the Haskell compilers.
Fri Jul 27 03:41:57 PDT 2007. Simon Marlow. Pointer Tagging. This patch implements pointer tagging as per our ICFP'07 paper 'Faster laziness using dynamic pointer tagging'. It improves performance by 10-15% for most workloads, including GHC itself. The original patches were by Alexey Rodriguez Yakushev, with additions and improvements by me. I've re-recorded the development as a single patch. The basic idea is this: we use the low 2 bits of a pointer to a heap object (3 bits on a 64-bit architecture) to encode some information about the object pointed to. For a constructor, we encode the 'tag' of the constructor (e.g. True vs. False), for a function closure its arity. This enables some decisions to be made without dereferencing the pointer, which speeds up some common operations. In particular it enables us to avoid costly indirect jumps in many cases. More information in the commentary.
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.
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