Haskell Weekly News: September 23, 2007
Welcome to issue 65 of HWN, a newsletter covering developments in the Haskell community.
This episode comes to you live from Portland, Oregon, where the HWN automaton now lives, running on a virtual host at Galois, Inc.
Announcements
Cabal 1.2.0 released. Thomas Schilling announced that Cabal version 1.2.0 is available. The major new feature in this release is support for Cabal configurations. This allows package authors to more easily adopt their package descriptions to different system parameters such as operating system, architecture, or compiler. In addition, some optional features may be enabled or disabled explicitly by the package user.
SparseCheck. Matthew Naylor announced SparseCheck, a library for typed, depth-bounded logic programming in Haskell allowing convenient expression of test-data generators for properties with sparse domains. More information on the home page.
monadLib 3.3.0. Iavor Diatchki announced a new version of monadLib, adding the identiy transformer, and a family of deriving functions.
ListLlke. John Goerzen announced ListLike, a generic interface to the various list-like structures in Haskell.
HaL2: Meeting Haskell in Leipzig 2: videos. Klaus Meier announced that the videos and presentations of the talks given at HaL2 are now online.
The Monad.Reader: Issue 8. Wouter Swierstra announced that the latest issue of The Monad.Reader is now available. Issue 8 consists of the following two articles: Brent Yorgey on 'Generating Multiset Partitions' and Conrad Parker's 'Type-Level Instant Insanity'
Haskell mode plugins for Vim. Claus Reinke announced improved haskell mode plugins for vim.
hstats-0.1. Marshall Beddoe announced a statistical computing module for Haskell.
HIntegerByInt. Isaac Dupree announced a reimplementation, in Haskell, of the Integer type that Haskell provides in its Prelude. It is designed in mind of being actually usable as the implementation of that type, for compilers. It is also a module that exports a working Integer type. It is in terms of only basic Prelude functions, lists, and Int. It is NOT a purely inductive definition, because Int is much faster than a purely inductive definition would allow, and nevertheless often easier to come by (more portable, license-wise, size-wise, nuisance-wise...) than GMP or other C bignum libraries.
OzHaskell: Australian Haskell Programmers Group. Manuel Chakravarty started organising OzHaskell, an Australian Haskell user's group.
Israeli Haskell Programmers Group. B K also seeks to form an Israeli Haskell user's group
xmonad 0.3. Don Stewart announced the 0.3 release of xmonad. xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use.
HPDF 1.0. alpheccar announced version 1.0 of the HPDF library.
pcap: user-level network packet capture. Bryan O'Sullivan announced the release of pcap 0.3.1
Gtk2Hs Tutorial. Hans van Thiel announced a port of the GTK2 tutorial by Tony Gail and Ian Main to Haskell's gtk2hs.
An efficient lazy suffix tree library. Bryan O'Sullivan posted a suffix tree library to hackage. It implements Giegerich and Kurtz's lazy construction algorithm, with a few tweaks for better performance and resource usage.
Bay Area Functional Programmers. Keith Fahlgren announced the formation of the Bay Area Functional Programmers group. This group is for anyone using or interested in functional programming and functional programming languages, particularly strongly typed languages such as Haskell, OCaml and SML.
Haskell irc channel reaches 400 users. Don Stewart noticed that, five and a half years after its inception, under the guiding hand of Shae Erisson (aka shapr), the Haskell IRC channel on freenode has reached 400 users!
Guihaskell and PropLang 0.1. Asumu Takikawa announced the results of his Google Summer of Code project: Guihaskell, a graphical REPL using PropLang and work on PropLang, a GUI library built on Gtk2hs that allows for high level design.
HAppS-Data 0.9: XML, Pairs, HList, deriveAll. Alex Jacobson announced that the components of HAppS are being released as individual useful packages. HAppS-Data is the first in a series, and provides useful operations on XML data.
Introduction to proving Haskell code. Tim Newsham put together a small intro lesson on proving Haskell code using quickcheck, equational reasoning and Isabelle/HOL.
Very Fast Searching of ByteStrings. Chris Kuklewicz announced a Boyer-Moore algorithm implemented for strict and lazy bytestrings (and combinations thereof). It finds all the overlapping instances of the pattern inside the target.
Infinity 0.1. Austin Seipp announced Infinity v0.1. an IRC bot in the essence of lambdabot; that is, it should be extendable through plugins and plugins should be easy to write, modify and contribute.
Haskell'
This section covers the Haskell' standardisation process.Libraries
This week's proposals and extensions to the standard libraries.- Add &&& and *** to Data.Tuple
- Add System.Info.isWindows
- Make arrays safer
- GenT monad transformer variant of Gen
- Test.HUnit documentation
- Data.List.groupBy with non-transitive equality predicate
- Add dropped STM invariants functions
- Add Data.Eq.equating to match Data.Ord.comparing
- Fix abstract unix sockets
Hackage
This week's new libraries in the Hackage library database.numbers-2007.9.23. Lennart Augustsson. numbers: instances of the numerical classes for a variety of different numbers.
hmp3 1.3. Don Stewart. hmp3: An mp3 player with a curses frontend.
utf-string 0.2. Eric Mertens. utf8-string: A UTF8 layer for IO and Strings.
hstats 0.1. Marshall Beddoe. hstats: A library of commonly used statistical functions.
sparsecheck 0.2. Matthew Naylor. SparseCheck: a library for logic programming in Haskell that allows convenient description of test-data generators.
monadLib 3.3.0. Iavor Diatchki. monadLib: A collection of monad transformers.
ListLike 1.0.0. John Goerzen. ListLike: Generic support for list-like structures in Haskell.
cabal-test 0.1. David Himmelstrup. cabal-test: Cabal-test is a tool for testing cabal projects.
HPDF 1.1. alpheccar. HPDF: a PDF library.
hxt 7.3. Uwe Schmidt. hxt: The Haskell XML Toolbox.
irc 0.1. Trevor Elliott. irc: A small library for parsing IRC messages
hsdns 1.0. Peter Simons. hsdns: an asynchronous DNS resolver based on GNU ADNS.
streamproc 1.0. Peter Simons. streamproc: Stream Processer Arrow
hsemail 1.0. Peter Simons. hsemail: Parsers for the syntax defined in RFC2821 and 2822
funcmp 1.0. Peter Simons. funcmp: Functional MetaPost is a Haskell frontend to the MetaPost language
cabal-rpm 0.3.1. Bryan OSullivan. cabal-rpm: This package turns Haskell Cabal source packages into source and binary RPM packages.
Finance-Quote-Yahoo 0.3. Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com
xmonad 0.3. Spencer Janssen. xmonad: a minimalist tiling window manager for X
hint 0.1. Daniel Gorin. hint: an interpreter monad for Haskell expressions based on ghc-api
ipprint 0.2. Gleb Alexeyev. ipprint: Tiny helper for pretty-printing values in ghci console
pandoc 0.44. John MacFarlane. pandoc: Conversion between markup formats
X11-extras 0.3. Spencer Janssen. X11-extras: Missing bindings to the X11 graphics library
dsp 0.2. Matthew Donadio. dsp: Digital Signal Processing, Fourier Transform, Filter design, Frequency estimation, Interpolation, Linear Algebra, Polynomials
c2hs 0.15.0. Manuel Chakravarty. c2hs: C->Haskell assists in the development of Haskell bindings to C libraries.
regex-base 0.92. Chris Kuklewicz. regex-base: Interface API for regex-posix,pcre,parsec,tdfa,dfa
soegtk 0.9.12.2. Duncan Coutts. soegtk: SOE api for gtk2hs
hsns 0.5.3. Austin Seipp. hsns: a miniature network sniffer
anydbm 1.0.4. John Goerzen. anydbm: Interface for DBM-like database systems
suffixtree 0.2.1. Bryan O'Sullivan suffixtree: An efficient, lazy suffix tree implementation.
Discussion
A regressive view of support for imperative programming in Haskell. Paul Hudak sparked an interesting thread about the effect on the language of rich support for imperative programming.
Conference roundup
Jobs
A top tier Investment bank is looking for a Haskell developer. Kyle McBeath announced that there is a available a permanent position in London, joining a cross asset team. You will be able to use Haskell commercially everyday, be generously compensated and be on the forefront of technology in banking. This is a great opportunity for PhD students or above with proven experience of Haskell programming.
Postdoctoral Fellowship in Functional Programming. Graham Hutton announced that applications are invited for a 3-year postdoctoral research fellowship in functional programming, to work on the EPSRC-funded project 'Reasoning About Exceptions and Interrupts'.
Blog noise
Haskell news from the blogosphere.- Peano induction for binary numbers
- Simple proof of stack correctness for a tiny language (in Agda)
- Peano, episode 3
- Proving Haskell programs correct with QuickCheck and Isabelle/HOL
- Coq and simple group theory
- Coq and The Monad Laws: Introduction
- Coq and The Monad Laws: The First and Second
- Coq and The Monad Laws: The Third
- Revisiting board-building in chess
- Monads
- A Monad Tutorial for Ocaml
- Learning about (Computational) Monads
- I Wasn't Joking about One-Argument Haskell Functions
- Mapping Programming Language IRC Channels
- ASCII Rave in Haskell
- Today is similar to the programming languages situation of twenty years ago
- Haskell - the videos
- QuickCheck : Why Testing code should be Laissez-faire
- Rationals!
- Grass-Roots Functional Languages?
- Programming in C, ummm, Haskell
- And what about C arrays?
- Real Quicksort in Haskell
- Pointer tagging
- n00b Thoughts on Haskell
- 'The way forward involves functional programming'
- Does Syntax Matter?
- A bright future: security and modern type systems
- Making the transition from sequential to implicit parallel programming: How sequential languages obscure parallelism
- Software Transactional Memory - Making multithreading easier
- Roman Numerals in Haskell
- A history of monad tutorials
- Java Becoming Solution for Safety-Critical Applications
- Dunno (about STM)
- A thesis about language niches
- Thoughts on Scheme from a Haskeller
- Arrow Transformers for sample rate conversion
- Playing with Propositional Logic in Haskell
- Programmer productivity, feature set implementation, and runtime performance
- Anatomy of a new monad
- Welcome to Haskell for Maths Blog
- Monadic Parser Combinators using C# 3.0
- Blog Rewrite - I'm giving up
- Implementing The Kelly Criterion
- Universal Floating Point Errors
- Polyglot Programming - is it all Greek to you?
- Factor with a dash of curry
- How to learn to program
- I dated Haskell Curry's daughter
- Importance and Prominence and the wave: FP
- A Beautiful Regex Matcher... In Haskell
- San Francisco Bay Area FP Group
- AngloHaskell: The Aftermath
- Leibniz Equality, Decomposition, and Definability
- Word ladder in Haskell
- Existential Data Constructors in Haskell and Qi
- Sun slots transactional memory into Rock
- Haskell for pluggable apps, with the GHC API
- Yoda Speaks Haskell: A Tutorial
- Haskell Syntax Gem
- ClusterBy: a handy little function for the toolbox
- Squarefree numbers in Haskell
- Overloading functional references
- Haskell PDF 1.0
- More fun with randoms
- Learn Haskell in 5 minutes a day: lesson 1
- Destructive Quicksort in Haskell
- Tries and their derivatives
- Haskell HMAC
- Solving the word numbers problem: part 2
- Solving the word numbers problem: part 3
- Functional Forth
- F#'s monadic syntax
- The Actors Model and Haskell
- Haskell and the South African Computing Olympiad
- The Power of Folds
- Folding Incremental Averages in Haskell
- OpenGL tetris in Haskell
- Learn Haskell in 5 minutes a day: Lesson 1: Hello, World!
- Learn Haskell in 5 minutes a day: Lesson 2: Input and Output, Variable Binding, and more
- Learn Haskell in 5 minutes a day: Lesson 3: case
- Break a string into groups of characters
- A news aggregator
- Haskell elevator pitch
- Do Notation and Sequence Operator
- Part 1: How sequential languages obscure parallelism
- Part 2: How to achieve parallel execution
- Part 3: Explicit parallel programming with threads and locks
- Part 4: Explicit parallelism: message-passing programming
- Part 5: Implicit parallel programming: Declarative languages
- Part 6: So, why aren't we using functional languages yet?
- More articles about multicores and multiprocessors
Quotes of the Week
- nomeata: Haskell is basically Swiss: Small, Efficient, and it is fun to explore the higher parts.
- Tom Moertel: In the not-too-distant future, perhaps, we might look back in amazement at the days when important security properties were neither free nor guaranteed but expensive and uncertain, underwritten only by the heroic efforts of individual programmers, struggling against impossible odds to achieve inhuman perfection.
- Adam Turoff: In any case, Simon Peyton Jones is right -- the way forward involves functional programming, whether it means choosing a language like Haskell, or integrating ideas from Haskell into your language of choice.
- bootslack: Once, around the time of the discovery of fire, there was a large population of people that thought mastering fire would be too difficult so they didn't. The rest of us killed them, cooked them and ate them.
Code Watch
Notable new features and bug fixes to the Haskell compilers.Thu Sep 6 09:19:48 PDT 2007. Norman Ramsey . massive changes to add a 'zipper' representation of C--
Tue Aug 14 03:36:23 PDT 2007. Ben Lippmeier. Add graph coloring register allocator. Refactored linear allocator into separate liveness annotation and allocation stages. Added graph coloring allocator, use -fregs-graph to enable. New dump flags are -ddump-asm-native -- output of cmm -> native transform. -ddump-asm-liveness -- code annotated with register liveness info -ddump-asm-coalesce -- output of register move coalescing (this is a separate pass when using the coloring allocator) (this could change in the future) -ddump-asm-regalloc -- code after register allocation -ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator -ddump-asm-conflicts -- a global register liveness graph in graphviz format The new register allocator will allocate some registers, but it's not quite ready for prime-time yet. The spill code generator needs some work.
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. 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
- Login to post comments