Haskell Weekly News: January 09, 2007
Welcome to issue 56 of HWN, a weekly newsletter covering developments in the Haskell community.
More libraries and applications for the new year, and the Haskell Hackathon gets underway!
Happy: LALR(1) parser generator. Simon Marlow announced version 1.16 of Happy, the parser generator system for Haskell. Changes from version 1.15 to 1.16 include switching to Cabal, a new %error directive, new production forms, and attribute grammar support. Happy version 1.16 is required for building GHC version 6.6 and later.
rdtsc: reading IA-32 time register. Martin Grabmueller announced version 1.0 of package rdtsc has just been released. This small package contains one module called 'Rdtsc.Rdtsc', providing the function 'rdtsc' for accessing the 'rdtsc' machine register on modern IA-32 processors. This is a 64-bit counter which counts the number of processor cycles since the machine has been powered up. Using this instruction, you can make very precise time measurements which are independent of the actual CPU frequency.
monadLib 3.0. Iavor Diatchki announced a new version of monadLib, a collection of standard monad implementations. Some of the changes compared to the previous version: the whole library is in a single module MonadLib.hs (~500 lines); simpler and more symmetric API; removed the (generic) monadic combinators; removed the search transformer; rewrote some transformers in the 'traditional' way (exceptions and output); there is an optional module that defines base monads corresponding to each transformer.
Shellac 0.6. Robert Dockins announced a simultaneously release of the following related packages: Shellac 0.6 Shellac-readline 0.3 and Shellac-vty 0.1. Shellac is a framework for building read-eval-print style shells which uses configurable backend plugins. The major new feature of this release is the new Shellac-vty backend package, which uses the new Vty library terminal I/O directly. It currently has basic line editing keybindings, paging, and a command history. The main package and Shellac-readline updates consist of minor API updates.
HNOP. Ashley Yakeley updated the status of HNOP, the Haskell library for doing nothing. It has recently been split into two Cabal packages: 'nop', a library of no-op services, and 'hnop', a program that uses nop to do nothing. Both packages can be found in darcs. The two packages are intended to be templates for Cabal projects, so I'm interested in making them as canonical and 'best practices' for packaging libraries and executables.
Haskell'This section covers the Haskell' standardisation process.
instance Monad Set, using GADTs. Roberto Zunino announced a definition of the Set datatype, with the usual operations, such that it can be made a member of the Monad class.
GADTs are expressive. Jim Apple described a data type which holds only those terms of the untyped lambda calculus that are reducible to normal form, using GADTs
Hackage interface. Ross Paterson set up (temporarily) a simple first cut at an interface to the Hackage package database. On a related note, there was some discussion for home pages for Hackage projects, and collecting statistics.
The Haskell Hackathon. Hac 2007 is being held this week, January 10-12th, in Oxford, with around 20 Haskell coders from across the world gathering to hack on libraries and practical tools for Haskell. Work is planned for at least hackage, Cabal, bytestrings, binary IO, http, GHC, YHC, Hoogle, DrHaskell, WinHugs, GHCi debugger, crypto, QuickCheck 2, Haddock and more besides. Notably, some graduates from this year's Google Summer of Code projects will be attending, with plans to integrate their work into the main project branches. Happy hacking everyone!
Blog noiseHaskell news from the blogosphere.
- Liberating Myself from the von Neumann Style
- First impressions of Haskell: Whoa!
- Comparing Gzip Code Reduction
- Simple demonstration of Haskell FFI
- Does Functional Programming Matter?
- 2006 in review
- Haskell script to replace tabs
- Functional programming is functional
- The shock of the forgotten
- Category theory
- Does Haskell need macros?
- On darcs
- Learning things
- Folds for imperative programmers
- Dammit all! I've been blubbed
- Getting started with installing third-party Haskell packages
- A Nice Way to Learn FP
- Learning Haskell
- Haskell and Eclipse
- Haskell and Eclipse: building a server executable
- What makes a programming language more productive?
- Composability and Productivity
- Arithmetic coding in Haskell
- A quick and dirty theorem prover in Haskell
- Haskell is Fun!
- 2007, the year of software reliability?
- Haskell, bondage-and-discipline and separation-of-concerns programming
- Type systems as safety belts
- It's Haskell!
- Two promising Haskell projects: Vital and Pivot
- Exceptions and interrupts
Quotes of the Week
- Eric: The Haskell [code] contains no redundancy. In fact, in all the [Haskell] code I've written, in both production and play, each idea is expressed once and only once. It is the Zen ideal of perfect code. And thats never happened to me before.
- nostrademons: Haskell is in a similar position [to Scala] - a complex language with many sustaining innovations - but it has one major disruptive innovation. Purity. Now, the question is whether that can be leveraged in a way that makes it useful in some market that existing imperative languages can't reach. My bets are on concurrency...
- Excedrin: Isn't OO deprecated?
- dpiponi: [monochrom] Nevermind monads. Use arrows. Come join the Dart Side! [dpiponi] Never mind arrows. Use comonads. Cojoin the other side.
- nilsi: #haskell is better than Google
- sigfpe: I think Haskell is a great language for short attention spans. You can get so much done in one line before you get bored.
- timthelion: Oh wait, I LOVE foldr!! And I have only been learning Haskell for hours
- kowey: All the things with guards are just there to siphon off the weirdos
- Eric: [Haskell] astonishes me at every turn with its beauty and elegance. I've never felt such power. Haskell has brought back a joy in programming that I didnt even know I was missing.
- Paul Johnson: Mutable state is actually another form of manual memory management: every time you over-write a value you are making a decision that the old value is now garbage, regardless of what other part of the program might have been using it.
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