News from 2006
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.
QuickCheck 2 development version. Bjorn Bringert announced that the development version of QuickCheck 2 is now available in a public darcs repository. Highlights of the new QuickCheck version include: shrinking of failing test cases; supports testing monadic code; handles exceptions gracefully; coarbitrary has moved to a separate class; type-level modifiers for changing test data generation (e.g. NonNegative); function table printing; and user-defined actions when properties fail. The source is available via darcs.
PQC: QuickCheck in the Age of Concurrency. Don Stewart announced PQC: Parallel QuickCheck. PQC provides a single module: Test.QuickCheck.Parallel. This is a QuickCheck driver that runs property lists as jobs in parallel, and will utilise as many cores as you wish, with the SMP parallel GHC 6.6 runtime. It is simple, scalable replacement for Test.QuickCheck.Batch.
cabal-test: automatic testing for Cabal projects. David Himmelstrup announced cabal-test, the automatic tester for Cabal projects. The cabal-test tool is capable of testing embedded QuickCheck properties in any and all cabalized projects. The tests are currently executed in parallel with PQC. QuickCheck properties can reside anywhere in the code and don't have to be exported. The darcs repo is available.
Streams 0.1.7. Bulat Ziganshin announced Streams version 0.1.7, a fast extensible I/O and serialization library. Changes include: GHc 6.6 support, support for files larger than 4G on Windows, haddock documentation.
Ranged Sets 0.0.3. Paul Johnson announced the 0.0.3 release of Ranged Sets. Ranged sets allow programming with sets of values described by a list of ranges. A value is a member of the set if it lies within one of the ranges. The ranges in a set are ordered and non-overlapping, so the standard set operations can be implemented by merge algorithms in O(n) time.
How to build an adaptable interpreter in one day. The slides of this paper, by Dan Popa, presented at ICMI 45, and not included in the proceedings, are available now (pdf). The paper is a step by step guide on the building of a small monadic interpreter. The papers slides are also available.
Haskell XML Toolbox 7.0. Uwe Schmidt released a new version of the Haskell XML Toolbox. New in 7.0 is a module for XSLT transformation. The XSLT module implements most of the XSLT standard. The development of the XSLT module is done by Tim Walkenhost in his master thesis, describing the design of the transformer (and the limitations) is included in the distribution. HXT 7.0 works with ghc-6.4 and ghc-6.6. A tutorial is available in the Haskell wiki.
Hac: Haskell Hackathon 2007. The Hac organisers announced that the inaugural Haskell Hackathon, Hac 2007, will be held at Oxford University Computing Laboratory, January 10-12, 2007. The plan is to hack on Haskell infrastructure, tools, libraries and compilers. To attend please register, and get ready to hack those lambdas!
Darcs release candidate. Tommy Pettersson announced it's time for a new darcs release candidate, 1.0.9rc2. There will probably be yet another release candidate (rc3) before final 1.0.9. Get testing!
Safe library 0.1. Neil Mitchell announced the release of Safe library, 0.1. People often have a problem with pattern match errors, and the only helpful message they get is: 'pattern match error'. The Safe library hopes to eliminate some of the frustration this causes by providing versions of these partial functions with more helpful error messages.
LocH, located errors 0.1. Don Stewart announced the release of LocH, a small Haskell module providing source location-specific error messages and debugging strings for Haskell code. It uses the compiler-expanded 'assert' token, rather than cpp or m4, to provide a lightweight approach to generating source locations. No preprocessor is required. More information is available at the LocH site, including API documentation.
Starting your own Haskell project. Jason Dagit and Don Stewart expanded on the document describing how best to set up a new Haskell project, leading to the creation of mkcabal, a new tool for setting up cabalised Haskell projects.
Major typeclass overhaul. Simon Peyton-Jones mentioned that for some time he has been promising an overhaul of GHC's type inference machinery to fix the interactions between type classes and GADTs. This overhaul has now been completed, and user-visible changes are summarised, including: GHC's type inference becomes complete, the restriction that every constraint in a type signature must mention at least one of the quantified type variables is lifted, dictionaries are packaged in data constructors and the proper interaction between GADTs and type classes is now respected.
Great language shootout: reloaded. Don Stewart mentioned that now GHC 6.6 is available on the shootout machines, the time has come to improve the existing language shootout entries. Improvements can be posted to the wiki for review.
SmallCheck 0.2. Colin Runciman announced that SmallCheck 0.2, a lightweight testing library for Haskell, is out, and can be obtained. Since version 0.1: there's now a choice of interactive or non-interactive test-drivers using iterative deepening; more pre-defined test-data generators, including revised Int, Integer, Float, Double, Nat and Natural and additional examples. SmallCheck is similar to QuickCheck but instead of testing for a sample of randomly generated values, SmallCheck tests properties for all the finitely many values up to some depth, progressively increasing the depth used.
Hoogle Command Line 3 Beta. Neil Mitchell released Hoogle Command Line version 3 Beta, an alternative to the Hoogle website. Hoogle lets you search for Haskell functions by name and by type signature.
The Monad.Reader. Wouter Swierstra issued a call for submissions for articles for the next issue of The Monad.Reader. There are a large number of conferences and journals that accept research papers related to Haskell; unfortunately, the platform for non-academic publications is far less developed. This is where The Monad.Reader fits in. So if you are tossing around some ideas, write it up, and submit! Deadline for submissions is January 19th, 2007.
Haskell Communities and Activities Report. Andres Loeh reminded us that the deadline for the November 2006 edition of the Haskell Communities and Activities Report is now! -- there may still be just enough time to make sure that the report contains a section on *your* project, on the interesting stuff that you've been doing; using or affecting Haskell in some way. For more info see the call for contributions.
HsMan. Frederik Eaton announced hsman, a tool that indexes Haddock-generated HTML files, and allows users to search for functions and also GHC manual topics.
HaL, Haskell meeting in Leipzig. Johannes Waldmann announced that a local Haskell meeting is to take place on December 5th in Leipzig, Germany. The meeting will be hosted by IBA Consulting. It will be quite informal, with some very short talks (most probably in German). Interessenten sind herzlich eingeladen. Details and (free) registration.
A type-based solution to the "strings problem". Tom Moertel wrote on a solution to the problem of keeping web applications free of string-based XSS and SQL-injection vulnerabilities, by employing the Haskell type system.
Associated data types in GHC. Manuel Chakravarty announced the availability of indexed data types, an extension of our earlier proposal for associated data types, in GHC's development version. Detailed information on where to get the right GHC and how to use indexed types is available from the Haskell wiki.
Haskell Program Coverage. Andy Gill checked the latest version of HPC, with GHC support, into the head GHC branch
Haskell Mersenne Twister. Lennart Augustsson made available his Haskell implementation of the Mersenne Twister random number generator.
Haskell-specific Google Search Engine. Don Stewart initialised a Haskell-specific search engine, as part of Google's coop engine system, which seems to do a good job of targeting just Haskell sites, in particular, mailing list items
A process for submitting library extensions. The libraries hackers have developed a document describing how to best go about contributing new code to the core Haskell libraries. On a similar note, the GHC team has prepared a page on best practice for GHC submissions.
How to create a Haskell project. Don Stewart and Ian Lynagh prepared some guidelines on starting your own Haskell project.
MissingH 0.16.0. John Goerzen announced that the latest version of MissingH is now available. MissingH is a suite of 'missing' library functions. New features include: render numbers as binary units, a progress tracker, turn QuickCheck tests into HUnit tests, and GHC 6.6 support.
GHC version 6.6. The GHC Team announced a new release of GHC! There have been many changes since the 6.4.2 release. For details, see the release notes. Binary builds, source and packages are all found at GHC's home.
STM invariants and exceptions. Tim Harris announced that new transactional memory features have been committed to GHC. The main change is to add support for dynamically checked data invariants of the kind described in this paper (pdf). There are two operations:
always X :: STM Bool -> STM ()and
alwaysSucceeds X :: STM a -> STM (). More details in here (pdf).
Cabal version 1.1.6 is now available. Duncan Coutts announced that Cabal, the common architecture for building applications and libraries, version 1.1.6 is now available. It is included in GHC version 6.6.
Fun in the Afternoon: Thurs 16th Nov in Oxford. Jeremy Gibbons announced that he, Graham Hutton and Conor McBride at Nottingham are organizing a seminar, Fun in the Afternoon, on functional programming and related topics. The idea is to have a small number of talks as an antidote to mid-term blues, three afternoons a year. The hope is that talks will be informal and fun, and that there will be plenty of scope for discussion and chat as well. Looks fun!
HC&A Call for Contributions. Andres Loeh asked for contributions towards the 11th Haskell Communities & Activities Report, a bi-annual overview of the state of Haskell as well as Haskell-related projects of all flavours.
Generic Haskell version 1.60 (Diamond). Utrecht's Generic Haskell Team announced a new release of Generic Haskell, an extension of Haskell that facilitates generic programming. Generic Haskell includes: type-indexed values and type-indexed types. The Generic Haskell compiler takes Generic Haskell source and produces Haskell code. This release adds support for Generic Views.
Streams 0.1 available for GHC 6.6. Bulat Ziganshin announced that the Streams 0.1 library is now compatible GHC 6.6.
hinotify 0.1. Lennart Kolmodin announced hinotify 0.1, a library to inotify which has been part of the Linux kernel since 2.6.13. inotify provides file system event notification, simply add a watcher to a file or directory and get an event when it is accessed or modified. API and source.
Monad Transformer Tutorial. Martin Grabmueller published a small tutorial on using monad transformers. In contrast to others approaches, it concentrates on using them, not on their implementation. PDF and Literate Haskell source available.
Speaking Haskell in Spanish. Luis Araujo announced a project to make Haskell documentation more available to Spanish speakers. The idea is to collect information in Spanish about Haskell, including news and tutorials, and to translate Haskell wiki pages.
Haskell Packages 6.6. Isaac Jones announced that the Cabal package tools for Haskell are in a good state, with almost 30 packages already in the database. Time to start testing packages, starting with the cabal release candidate that'll go into GHC 6.6, to make sure they work nicely together!
Cabal-1.1.6 release candidate. Duncan Coutts released a tarball for the next 1.16 Cabal release candidate. Let's get this tested before GHC 6.6 arrives!
Darcs 1.0.9 release candidate. Tommy Pettersson announced the first release candidate for next stable darcs, 1.0.9rc1. This will mainly be a bug fix version to get things right that got wrong or didn't get right in 1.0.7 and 1.0.8, but there are some new features and optimizations too.
Haskell and Vim. Marc Weber wrote some Vim scripts to ease various Haskell coding tasks in Vim.
Proceedings Haskell Workshop 1995. Henrik Nilsson announced that in celebration of the 10th Haskell Workshop that took place recently, the proceedings of the very first Haskell workshop, in La Jolla 1995, have now been made available on the Haskell Workshop home page. Thanks to Paul Hudak for help locating the proceedings and arranging for them to be scanned into PDF.
Common library for generic programming. Johan Jeuring and Andres Loeh announced an initiative to design a common library for generic programming, which should work together with most of the Haskell compilers, and for which they hope to guarantee support for generics in Haskell into the future. If you want to get involved (or just want to see the discussion), you can subscribe to the generics mailing list. Check the Haskell research wiki for some background on generics.
GHC 6.6 Second Release Candidate. Ian Lynagh announced that the Second Release Candidate phase for GHC 6.6 is underway. Get testing!
Lazy functional language for the JVM. Luke Evans announced that the research group at Business Objects has developed a lazily evaluated, strongly-typed language called CAL, with many similarities to Haskell, targeting the JVM, to facilitate representing certain kinds of business logic as reusable, composable pieces.
ICFP Contest Results. CMU's Principles of Programming Group announced the results of this year's ICFP programming contest. Congratulations to the winning team from Google, 'Team Smartass', (Christopher Hendrie, Derek Kisman, Ambrose Feinstein and Daniel Wright), who used Haskell along with C++, Bash and Python. Haskell has now been used by the winning team three years running! An honourable mention to team Lazy Bottoms, another Haskell team, who managed to crack several of the puzzles first. Five teams from the #haskell IRC channel were placed in the top 50. A video stream of the results announcement is available, shot and cut by Malcolm Wallace. Many thanks to the CMU team for organising such a great contest!
New release of Hugs. Ross Paterson announced a new minor release of Hugs, fixing a few bugs with the May 2006 release, and with libraries roughly matching the forthcoming GHC 6.6 release. It is available from the Hugs page.
HAppS version 0.8.2. Einar Karttunen announced the release of the Haskell Application Server version 0.8.2. HAppS is a Haskell web application server for building industrial strength internet applications safely, quickly, and easily. With HAppS you focus entirely on application functionality implemented in your favourite language and you don't have to worry about making sure all sorts of server subsystems are functioning properly. More info.
Codec.Compression.GZip and .BZip. Duncan Coutts released two new packages: zlib and bzlib, which provide functions for compression and decompression in the gzip and bzip2 formats, directly on ByteStrings. Both provide pure functions on streams of data represented by lazy ByteStrings. This makes it easy to use either in memory or with disk or network IO. There is API documentation is available here and here.
System Fc branch merged into GHC. Manuel Chakravarty merged the System Fc branch of GHC into GHC head. This is a significant development, adding extensions to GHC to support an FC-based intermediate language, a new implementation of GADTs, along with indexed data types and indexed newtypes (generalised associated data types). More details about the implementation.
Job writing security software in Haskell. Andrew Pimlott announced that Planning Systems, Inc. has a job opportunity for Haskell programmers, writing a high-assurance authorization system. Job description.
Dr Haskell 0.1. Neil Mitchell released Dr Haskell, a tool to help suggest improvements to your Haskell code. Dr Haskell will analyse your code, and suggest shorter alternatives for rewriting. More details.
A DSL for state machines. Stephane Bortzmeyer announced a Haskell implementation of a proposal to the IETF to standardize a language used for finite state machines (which are common in IETF standards). The reference implementation is available.
A language tag parser. Stephane Bortzmeyer announced GaBuZoMeu, a set of programs to parse and check language tags (see RFC 4646 produced by the IETF Working Group LTRU - Language Tag Registry Update).
Haskell98 Termination Analyser . Stephan Swidersk announced the integration of an automatic Haskell98 termination analyzer in the termination tool AProVE. The tool accepts full Haskell as specified in the Haskell 98 Report and is available through our web interface. More
Free theorems . Janis Voigtlaender announced that Sascha Boehme has done a project to implement the Reynolds/Wadler algorithm generating theorems from polymorphic types, plus simplifications and postprocessings for such free theorems. More info
Haddock/GHC SoC . David Waern announced a short status report of the "Port Haddock to use GHC" Summer of Code project. The GHC modifications, are finished and will be included in the GHC head repository soon.
SOE implementation based on Gtk2Hs . Duncan Coutts Due to popular demand the new SOE implementation based on Gtk2Hs is [now available]. The rendering quality is better than the original HGL version. Here's a side-by-side comparison
SmallCheck . Colin Runciman released a prototype tool that is similar in spirit, and in some of its workings, to QuickCheck. SmallCheck is, though, based on exhaustive testing in a bounded space of test values. More info
Frisby: composable, linear time parser for arbitrary PEG grammers . John Meacham released Frisby, an implementation of the 'packrat' parsing algorithm, which parse PEG grammars and have a number of very useful qualities, they are a generalization of regexes in a sense that can parse everything in LL(k), LR(k), and more, including things that require unlimited lookahead, all in guaranteed linear time. More information
HaskellNet . Jun Mukai published a status report on the state of his SoC project, HaskellNet
GHC's new support engineer . Simon Marlow announced that GHC now has a full-time support engineer, Ian Lynagh (aka Igloo on IRC). He'll be helping with all aspects of GHC, especially release management, bug diagnosis and tracking, documentation, packaging, and supporting other GHC hackers. Welcome Ian!
The Haskell Workshop . Andres Loeh announced the preliminary schedule of the Haskell Workshop 2006, part of the 2006 International Conference on Functional Programming (ICFP)
The GHC typechecker is Turing-complete . Robert Dockins was able to show how that the GHC typechecker with multi-parameter typeclasses, functional dependencies, and undecidable instances is Turing-complete.
Haskell Program Coverage . Colin Runciman announced the first release of hpc, a new tool for Haskell developers. Hpc records and displays Haskell program coverage. It provides coverage information of two kinds: source coverage and boolean-control coverage. More here
Smash your boiler-plate without class and Typeable . Oleg Kiselyov described a new generic programming technique, expressive enough to traverse a term and return another term of a different type, determined by the original term's type/structure. More details
Paper: Software Extension and Integration with Type Classes . Ralf Laemmel and Klaus Ostermann invite comments towards the final version of their paper Software Extension and Integration with Type Classes
Monadic probabilistic functional programing . Stefan Karrmann announced that he had extended Martin Erwig's PFP library to support abstract monads, cabal and darcs
hdbc-odbc 22.214.171.124 . John Goerzen released DBC-odbc, the ODBC backend driver for HDBC, version 126.96.36.199.
Few Digits 0.5.0 . Russell O'Connor This year, Few Digits competed in the More Digits contest. To celebrate, version 0.5.0 of Few Digits is available. Few Digits 0.5.0 is now ten times faster and three times more complicated. Few Digits has been Cabalized for your convenience. More info
System.FilePath 0.9 . Neil Mitchell announced System.FilePath 0.9
The History of Haskell . Phil Wadler, John Hughes, Paul Hudak and Simon Peyton Jones have been writing a paper, The History of Haskell, for the History Of Programming Languages conference (HOPL'07), and they invite feedback. Wiki page here.
Haskell XML Toolbox Version 6.0, 6.1 . Uwe Schmidt announced two new versions of the Haskell XML Toolbox. New features include ghc 6.4.2 support, better XPath integration, separate documentation for filter API and an arrow API
Down the rabbit hole . Bulat Ziganshin announced the availability of a new tutorial directed toward comprehensive explanation of the IO monad, and it's use in complex programs
ldap-haskell, arch2darcs and darcs-buildpackage . John Goerzen posted new versions of these packages
Internships on GHC and Haskell at MSR Cambridge . Simon Peyton-Jones announced that MSR Cambridge is taking interns year-round, not just in the summer months. GHC HQ are keen to attract motivated and well-qualified folk to work on improving or developing GHC. More details
FGL . Martin Erwig announced a new release of his well known Functional Graph Library (FGL).
Takusen . Alistair Bayley and Oleg Kiselyov released a new version of Takusen, a library for accessing DBMSs. The most significant code change is a new internal design, giving better separation of concerns like statement preparation, binding, and result-set processing. Takusen is now held in darcs, and hosted at haskell.org
Text.Regex.Lazy 0.44, 0.56, 0.66 and 0.70 . Chris Kuklewicz announced Text.Regex.Lazy 0.44-0.70, with many enhancements. Multiple backends are supported, in addition to the "full lazy" and the DFA backends. Text.Regex.Lazy is a replacement and enhancement for Text.Regex. More details here
Streams 0.2.1 beta . Bulat Ziganshin released Streams 0.2.1 beta, featuring various bug fixes and improvements to the streams library
- Ninth annual ICFP Programming Contest (2006) is over. Results will be announced in September.
HDBC 1.0 . John Goerzen released the latest HDBC. HDBC is a database tool, modeled loosely on Perl's DBI interface, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. You can find the code here.
hpodder . John Goerzen announced the first release of hpodder. hpodder is a podcast downloader (podcatcher) written in pure Haskell. It exists because John was unsatisfied with the other podcatchers for Linux. Full details here.
hmp3 1.1 . Don Stewart announced a new release of hmp3, the curses-based mp3 player written in Haskell. Release 1.1 is a maintenance release, fixing support for GHC 6.4.2
QDBM and Hyper Estraier bindings . Jun Mukai released a library of bindings to Quick DBM, a database module similar to GDBM, Berkeley-DB, optimized for performance and a simple API. Additionally, Jun's code includes support for Hyper Estraier, a full-text search system using QDBM, with the ability to search documents according to keywords.
Streams 0.2 . Bulat Ziganshin announced the beta release of his Streams 0.2 library, providing fast string and binary IO, now with Data.ByteString support.
HNOP 0.1 . Ashley Yakeley released the first version of HNOP 0.1. HNOP does nothing. This version should be considered "beta" quality.
HList updates . Oleg Kiselyov announced that HList, the library for strongly typed heterogeneous lists, records, type-indexed products (TIP) and co-products is now accessible via darcs, here. Additionally, Oleg pointed to some new features for HList, including a new representation for open records. Finally, he published a note on how HList supports, natively, polymorphic variants: extensible recursive open sum datatypes, quite similar to Polymorphic variants of OCaml. HList thus solves the `expression problem' -- the ability to add new variants to a datatype without changing the existing code.
Translating Haskell into English . Shannon Behrens published a new Haskell tutorial, hoping to give readers a glimpse of the Zen of Haskell, without requiring that they already be Haskell converts.
The GHC Hackathon . Simon Peyton-Jones announced that GHC HQ are going to run a hackathon, in Portland, just before ICFP this September (14-15th). It'll be held at Galois's offices, in Beaverton. Thanks go to Galois for hosting the meeting. Here are the details. If you are interested in finding out a bit about how GHC works inside, then you should find the hackathon fun. It will be informal and interactive. If you think you might come, please take a look at the above page, and register.
Bytecode API library . Robert Dockins announced a release of an alpha version of a library for reading and writing the YHC bytecode file format. It reads and writes the entire bytecode set, version 1.9 (the one used by recent YHC builds). Check it out.
Google Summer of Code. The Haskell.org team announced that nine Haskell projects have been selected to receive funding to the value of $45k under Google's 2006 Summer of Code program. A wide range of projects will be worked on, contributing to the community important tools and libraries. The students have until August 21 to complete their projects, and receive their grants. Details of the accepted projects can be found here
Haskell Communities & Activities Report. Andres Loeh published the 10th edition of the Haskell Communities and Activities Report (HCAR). If you haven't encountered the Haskell Communities and Activities Reports before, you may like to know that the first of these reports was published in November 2001. Their goal is to improve the communication between the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell.
Read the 10th edition here.
Would you like a job working on GHC?. Simon Peyton-Jones announced that GHC HQ is looking for support engineer. The Glasgow Haskell Compiler (GHC) is now being used by so many people, on so many platforms, that GHC HQ has been struggling to keep up. In particular, the candidate should be someone who is enthusiastic about Haskell, and fired up about the prospect of becoming a GHC expert.
Shellac and Lambda Shell 0.3. Robert Dockins announced the simultaneous release of Shellac 0.3 and Lambda Shell 0.3. Shellac is a library for creating read-eval-print style shells. It makes binding to feature-rich shell packages (ie, readline) easier. Lambda shell is full-featured shell environment for evaluating terms of the pure untyped lambda calculus and a showcase/tutorial for Shellac's features.
darcs-graph. Don Stewart released darcs-graph, a tool for generating graphs of commit activity for darcs repositories.
- extracts version information from Cabal files,
- maintains version tags in darcs,
- computes patch levels by querying darcs,
- extracts the current context from darcs, and
- adds all this information to a source file
Streams 0.1e. Bulat Ziganshin released Streams library version 0.1e. Now cabalised and BSD-ified.
Hitchhikers guide to Haskell - chapter 5. Dmitry Astapov announced that chapter 5 of his online tutorial, the Hitchhikers guide to Haskell, is available. Changes include: It's bigger. It's better. It now comes with source code included.
Haskell Shell (HSH) 0.1.0. John Goerzen released version 0.1.0 of HSH, the Haskell shell. Things are still very preliminary in many ways, but this version already lets you:
- Run commands
- Pipe things between commands
- Pipe command input/output into and out of pure Haskell functions
- Pure Haskell functions are as much a first-class citizen as is grep or cat
Edison 1.2. Robert Dockins released the final, stable release of Edison 1.2. Edison is a library of efficient, purely-functional data structures for Haskell.
Arrays & References Library 0.1. Bulat Ziganshin announced version 0.1of his arrays and references library. Featuring:
- Unboxed references in IO and ST
- Monad-independent interfaces to boxed and unboxed references
- Syntax sugar to make using of mutable objects easier (=:, +=, -=,..)
Kamiariduki Shelarcy released Kamiariduki - a system to judge your derivative work's purpose and license is valid with Ceative Commons License Works.
lambdabot 4.0. Don Stewart announced the release of version 4.0 of the venerable Haskell IRC bot, lambdabot. lambdabot is a stable, feature rich IRC bot based on a plugin framework. lambdabot 4.0 comes with a suite of more than 50 plugins, and many new features.
Linspire Chooses Haskell for Core OS Development. Clifford Beshers announced that the OS team at Linspire, Inc. is standardizing on Haskell as their preferred language for core OS development. Much of the infrastructure is being written in Haskell, including the Debian package builder (aka autobuilder). Other tools such as ISO builders, package dependency checkers are in progress. The goal is to make a tight, simple set of tools that will let developers contribute to Freespire, based on Debian tools whenever possible.
lambdaFeed. Manuel Chakravarty released lambdaFeed -- lambdas for all! lambdaFeed is an RSS 2.0 feed generator. It reads news items - in a non-XML, human-friendly format - distributed over multiple channels and renders them into the RSS 2.0 XML format understood by most news aggregators as well as into HTML for inclusion into web pages. Source is available in darcs. Check it out.
Milfoh, an image to texture loading library. Maurizio Monge announced he has put together a very small library, using SDL_image (and a bare minimun of SDL), to load image files as opengl textures. More information here.
Haskell Charting Library. Tim Docker released his Haskell 2D charting library. It's still at quite an early stage, but already it has:
- Line charts, points charts, fills, and combinations.
- Automatic layout sizing and adjustment.
- Auto scaling of axis ranges
- Extensible to support new plot types
- Uses the cairo graphics library for output
Edison 1.2RC4. Robert Dockins announced the 4th release candidate for Edison 1.2. Edison is a library of efficient data structures for Haskell.
Collections pre-release. Jean-Philippe Bernardy announced an alpha release of the new collections package he (and others) have been working on. It's still far from perfect, but I hope it's already a good choice for many use cases of collection data structures.
Haskell Graph Automorphism Library. In a busy week, Jean-Philippe also released HGAL 1.2 (Haskell Graph Automorphism Library), a Haskell implementation of Brendan McKay's algorithm for graph canonic labeling and automorphism group. (aka Nauty). Improvements over the previous release include a faster algorithm implementation and the library is now cabalised.
Darcs 1.0.7. Tommy Pettersson announced the release of darcs 1.0.7, containing a few bug fixes, and some new features.
hmake. Malcolm Wallace released version 3.11 of hmake, the compiler-independent project-building tool for Haskell programs. It automates recompilation analysis, based on import declarations in your files, to rebuild only those modules that are impacted by a change. It is rather like ghc's --make mode, but faster, less memory intensive, and it works with any compiler (e.g. hbc, nhc98).
cpphs. In a busy week, Malcolm also released version 1.2 of cpphs, the in-Haskell implementation of the C pre-processor. The major change in this release is that the source files have been re-arranged into a cabal-ised hierarchical library namespace, so you can use cpp functionality from within your own code, in addition to the stand-alone utility.
Cabal 1.1. Duncan Coutts (as the new Cabal release manager) announced that Cabal-1.1.4, the version shipped with GHC 6.4.2 is now available to download as a separate tarball. There is also a new mailing list for Cabal development discussion including patch review. This is also where patches sent via "darcs send" will end up. The Cabal team would also like to take the opportunity to invite people to get involved in Cabal development, either new features or squashing annoying bugs.
DownNova-0.1. Lemmih released downNova, a program designed for automating the process of downloading TV series from mininova.org. Written in Haskell, it will scan your downloaded files to find out what your interests are and download missing/new episodes to your collection. Advanced classification techniques are used to interpret the file names and 'downNova' will correctly extract series name, season number, episode number and episode title in nigh all cases.
Student SoC Application Deadline is rapidly approaching. Paolo Martini encouraged students to apply to google, using the student application form, and Haskell.org is looking forward to the several dozen applications we hope to receive.
GHC 6.4.2. Simon Marlow announced the release of the Glasgow Haskell Compiler, version 6.4.2. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, whatever). GHC is distributed under a BSD-style open source license. For more information, see:
Communities and Activities Report. Andres Loeh released the call for contributions to the 10th (!) Haskell Communities and Activities Report. If you are working on any project that is in some way related to Haskell, write a short entry and submit it to Andres.
The Haskell Communities and Activities Report is a bi-annual overview of the state of Haskell as well as Haskell-related projects over the last, and possibly the upcoming 6 months. If you have only recently been exposed to Haskell, it might be a good idea to browse the November 2005 edition -- you will find interesting topics described as well as several starting points and links that may provide answers to many questions.
Google Summer of Code. Paolo Martini announced that Haskell.org would have a presence as an official mentoring organisation for this year's Google Summer of Code. Several members of the Haskell community have volunteered as mentors, and a large number of proposals have been listed. If you're interested in mentoring, suggesting projects, or applying as a student to spend your summer writing Haskell code, check it out!
Debian from Scratch. John Goerzen announced Debian From Scratch (DFS), a single, full rescue linux CD capable of working with all major filesystems, LVM, software RAID, and even compiling a new kernel. The tool that generates the ISO images (dfsbuild) is written in Haskell. The generated ISO images also contain full, working GHC and Hugs environments.
Hazakura - search-based MUA. Jun Mukai announced the first release of hazakura, a search-based mail client, written in Haskell.
Halfs, a Haskell filesystem. Isaac Jones announced the first release of Halfs, a filesystem written in Haskell. Halfs can be mounted and used like any other Linux filesystem, or used as a library. Halfs is a fork (and a port) of the filesystem developed by Galois Connections. In addition, Halfs comes with a virtual machine to make using it extremely easy. You don't need an extra partition or a thumb drive, or even Linux (Windows and Mac OS can emulate the virtual machine). See more at the Halfs site.
DrIFT-2.2.0. John Meacham released DrIFT-2.2.0, the type sensitive preprocessor for Haskell. It extracts type declarations and directives from modules. The directives cause rules to be fired on the parsed type declarations, generating new code which is then appended to the bottom of the input file. Read more here.
MissingH 0.14.2. John Goerzen announced version 0.14.2 of MissingH, the library of "missing" Haskell code. Now including support for shell globs, POSIX-style wildcards and more. Check here for more details.
HAppS - Haskell Application Server 0.8 Einar Karttunen announced HAppS 0.8. The Haskell Application Server version 0.8 contains a complete rewrite of the ACID and HTTP functionalities. Features include:
- MACID - Monadic framework for ACID transactions.
- An HTTP Server (outperforms Apache/PHP in informal benchmarks).
- An SMTP Server.
- Mail delivery agent.
- DNS resolver in pure Haskell
- XML and XSLT. Separate application logic from presentation using XML/XSLT.
- And more..
More information on the the HAppS page.
Index-aware linear algebra. Frederik Eaton announced an index-aware linear algebra library written in Haskell. The library exposes index types and ranges so that static guarantees can be made about the library operations (e.g. an attempt to add two incompatibly sized matrices is a static error). Frederik's motivation is that a good linear algebra library which embeds knowledge of the mathematical structures in the type system, such that misuse is a static error, could mean Haskell makes valuable contribution in the area of technical computing, currently dominated by interpreted, weakly typed languages.
Crypto-3.0.3. Dominic Steinitz announced Crypto-3.0.3, a new version of the Haskell Cryptography Library. Version 3.0.3 supports: DES, Blowfish, AES, Cipher Block Chaining (CBC), PKCS#5 and nulls padding, SHA-1, MD5 , RSA, OAEP-based encryption (Bellare-Rogaway), PKCS#1v1.5 signature scheme, ASN.1, PKCS#8, X.509 Identity Certificates, X.509 Attribute Certificates. See here for more.
hImerge: a graphical user interface for emerge. Luis Araujo released hImerge, a graphical user interface for emerge, (Gentoo's Portage system) written in Haskell using gtk2hs. Here's a jpg. The main idea is to simplify browsing the entire portage tree as well as of running the most basic and common options from the emerge command. hImerge also offers several handy tools, like global and local use flags browsers, and a minimal web browser.
Edison 1.2 rc3. Robert Dockins announced that the 3rd release candidate for Edison 1.2 is now avaliable.
monadLib 2.0. Iavor Diatchki announced the release of monadLib 2.0 -- library of monad transformers for Haskell. 'monadLib' is a descendent of 'mtl', the monad template library that is distributed with most Haskell implementations. Check out the library web page.
Text.Regex.Lazy (0.33). Chris Kuklewicz announced the release of Text.Regex.Lazy. This is an alternative to Text.Regex along with some enhancements. GHC's Text.Regex marshals the data back and forth to C arrays, to call libc. This is far too slow (and strict). This module understands regular expression Strings via a Parsec parser and creates an internal data structure (Text.Regex.Lazy.Pattern). This is then transformed into a Parsec parser to process the input String, or into a DFA table for matching against the input String or FastPackedString. The input string is consumed lazily, so it may be an arbitrarily long or infinite source.
HDBC 0.99.2. John Goerzen released HDBC 0.99.2, along with 0.99.2 versions of all database backends. John says "If things go well, after a few weeks of testing, this version will become HDBC 1.0.0". HDBC is a multi-database interface system for Haskell.
GHC 6.4.2 Release Candidates Simon Marlow announced that GHC was moving into release-candidate mode for version 6.4.2. Grab a snapshot and try it out. The available builds are: x86_64-unknown-linux (Fedora Core 5), i386-unknown-linux (glibc 2.3 era), and Windows (i386-unknown-mingw32). Barring any serious hiccups, the release should be out in a couple of weeks.
HaRe 0.3. Sneaking out without us noticing, in January, a new snapshot of HaRe, the Haskell refactoring tool, was released. This snapshot of HaRe 0.3 is now compatible with the latest GHC and Programmatica. New refactorings have also been added.
Haskell on Gentoo Linux Duncan Coutts writes that GHC 6.4.1 has been marked stable on x86, amd64, sparc and ppc, for Gentoo Linux. (We also support ppc64, alpha and hppa.) Gentoo also has a collection of over 30 Haskell libraries and tools. There is also a #gentoo-haskell channel on freenode.
Planet Haskell. Isaac Jones asked if someone could volunteer to set up "Planet Haskell", an RSS feed aggregator in the style of Planet Debian, Planet Gnome or Planet Perl. Happily, Antti-Juhani Kaijanaho stepped up, and now Planet Haskell is live at http://planet.haskell.org. Antti-Juhani asks that any Haskell people with blogs submit their feed urls to him, so check it out!
Concurrent Yhc. The Yhc dev team reports that Yhc now includes support for concurrency! The interface is the same as Concurrent GHC. Currently only
are implemented, however many other abstractions can be written in Haskell in terms of MVars.
lhs2TeX version 1.11. Andres Loeh announced lhs2TeX version 1.11, a preprocessor to generate LaTeX code from literate Haskell sources.
lhs2TeX includes the following features:
- Highly customized output.
- Liberal parser -- no restriction to Haskell 98.
- Generate multiple versions of a program or document from a single source.
- Active documents: call Haskell to generate parts of the document (useful for papers on Haskell).
- A manual explaining all the important aspects of lhs2TeX.
- Alternative to Text.Regex. Chris Kuklewicz announced an alternative to Text.Regex. While working on the language shootout, Chris implemented a new efficient regex engine, using parsec. It contructs a parser from a string representation of a regular expression.
- pass.net. S. Alexander Jacobson launched Pass.net. Written in Haskell, using HAppS, Pass.net lets websites replace registration, confirmation mails, and multiple passwords with a single login, authenticating via their email domain.
- Haskell as a markup language. Oleg Kiselyov writes on using Haskell to represent semi-structured documents and the rules of their processing. SXML is embedded directly in Haskell, with an open and extensible set of `tags'. The benefit of this is of course in static type guarantees, such as prohibiting an H1 element to appear in the character content of other elements.
- hmp3 1.0. Don Stewart released hmp3 version 1. hmp3 is a curses-based mp3 player written in Haskell, designed to be fast, small and stable.
- Edison 1.2rc2. Robert Dockins announced the second release candidate for Edison 1.2 is now ready for comments.
- Long Live Edison. Robert Dockins announced he had revived the Edison data structure code, and is maintaining a darcs repository, with a view to modernising the codebase.
- The Haskell Workshop. Andres Loeh released the initial call for papers for the ACM SIGPLAN 2006 Haskell Workshop, to be held at Portland, Oregon on the 17 September, 2006. The purpose of the Haskell Workshop is to discuss experience with Haskell, and possible future developments for the language. The scope of the workshop includes all aspects of the design, semantics, theory, application, implementation, and teaching of Haskell.
- Probability Distributions. Matthias Fischmann released a module for sampling arbitrary probability distribution, so far including normal (gaussian) and uniform distributions.
- Constructor Classes. Sean Seefried announced an implementation of a tool to help explore constructor classes (type classes which can take constructors as arguments) described in Mark Jones' paper, A system of constructor classes: overloading and implicit higher-order polymorphism. The implementation not only infers the type but also prints out a trace of the derivation tree for the syntax directed rules.
- FFI Imports Packaging Utility. Dimitry Golubovsky
the pre-release of the FFI Imports Packaging Utility
(ffipkg), a new member of the HSFFIG package.
The `ffipkg' utility prepares a Haskell package containing FFI imports
for building by accepting locations of C header and foreign library
files as command line arguments and producing Haskell source files
with FFI declarations, a Makefile, a Cabal package descriptor file,
and a Setup.hs file suitable for running the Cabal package setup
program. The utility acts as a "driver" running the C preprocessor,
the equivalent of the hsffig program, and the source splitter.
darcs get --partial http://hsffig.sourceforge.net/repos/hsffig-1.1
- Haskell in Higher Education. John Hughes announced that the result of his survey into the use of Haskell in higher education are out. The survey covers 89 universities, accounting for 5-10,000 students being taught Haskell this academic year. The results are available on the web.
- EclipseFP. Thiago Arrais announced that EclipseFP 0.9.1 has been released since last Friday. It is an open-source development environment for Haskell code. EclipseFP integrates GHC with an Haskell-aware code editor and also supports quick file browsing through an outline view, automatic building/compiling and quick one-button code execution. Downloads and more information are available on the project home page.
- Class-parameterized classes, and type-level logarithm. Oleg Kiselyov writes: we show invertible, terminating, 3-place addition, multiplication, exponentiation relations on type-level Peano numerals, where any two operands determine the third. We also show the invertible factorial relation. This gives us all common arithmetic operations on Peano numerals, including n-base discrete logarithm, n-th root, and the inverse of factorial. The inverting method can work with any representation of (type-level) numerals, binary or decimal. Oleg says, "The implementation of RSA on the type level is left for future work".
- Fast mutable variables for IO and ST. Bulat Ziganshin released a module for fast mutable variables, providing efficient newVar/readVar/writeVar, as well as support for unboxed values, fast unboxed bitwise operations, and more.
- C-- Frontend. Robert Dockins announced the initial alpha release of a C-- frontend (parser, pretty printer, and semantic checker) written in Haskell. The goal when beginning this project was to create a modular frontend that could be used both by people writing and by those targeting C-- compilers. This implementation attempts to follow the C-- spec as exactly as possible.
- Type level arithmetic. Robert Dockins also released a library for arithmetic on the type level. This library uses a binary representation and can handle numbers at the order of 10^15 (at least). It also contains a test suite to help validate the somewhat unintuitive algorithms.
This week Isaac Jones announced that the Haskell' standardisation
process is underway. Haskell' will be a conservative refinement of
Announcing the Haskell' ("Haskell-Prime") process. A short time ago, I asked for volunteers to help with the next Haskell standard. A brave group has spoken up, and we've organized ourselves into a committee in order to coordinate the community's work. It will be the committee's task to bring together the very best ideas and work of the broader community in an "open-source" way, and to fill in any gaps in order to make Haskell' as coherent and elegant as Haskell 98.
Read the full announcement here.
Presently, the following resources are available:
- The haskell-prime mailing list
- The Haskell' issue tracking system/wiki
- A darcs repository for larger code examples and experiments
Please join us in making Haskell' a success.
- hdbc-odbc. John Goerzen released the first version of hdbc-odbc, the ODBC backend for HDBC. With this driver, you can use HDBC to connect to any database for which ODBC drivers exist, including such databases as MySQL, Oracle, MS SQL Server
- A Faster Binary. Bulat Ziganshin posted a preliminary optimised Binary library, achieving excellent (de)serialization speeds of around 50 Mb/s in testing.
- Process library. Bulat Ziganshin announced a new library abstracting over some of the process and concurrency functions in the standard libraries, using ideas from Unix pipes.
- Djinn. Lennart Augustsson released Djinn, a theorem prover/coding wizard, that generates Haskell code from a given type. A lambdabot plugin for Djinn was also written, for use in #haskell.
- Ranged Sets. Paul Johnson released a ranged sets library 0.0.1 and 0.0.2. Ranged sets allow programming with sets of values that are described by a list of ranges. A value is a member of the set if it lies within one of the ranges.
- Hmp3. Don Stewart announced a stable release of hmp3, an curses-based mp3 player written in Haskell. Portability has improved, and binaries are available for 5 architectures.
- HSQL. Krasimir Angelov released HSQL 1.7. New features include a driver for Oracle.
- HDBC. John Goerzen announced the 0.5.0, 0.6.0 and 0.99.0 releases of Haskell Database Connectivity library. Patterned after Perl's DBI, it includes an Sqlite3 and a PostgreSQL backend
- Shellac. Robert Dockins released Shellac, a framework for building read-eval-print style shells. This should ease the burden of binding readline-style interactive shells in Haskell.
- Lambda Shell. Robert Dockins also released v0.1 of Lambda Shell, a shell environment for evaluating terms of the pure, untyped lambda calculus. A lambdabot interface for use in #haskell also exists.
- Shaskell. David Mercer announced version 0.21a of Shaskell, a SHA2 library for sha256 and sha512 hashes, written in pure Haskell.
- hdbc-missingh. John Goerzen announced the initial release of HDBC-MissingH, a library to add database features to MissingH, allowing the use of a SQL database as storage for a simple DBM-like key/value interface.
Archives by year
- 2005 Archives
- 2004 Archives
- 2003 Archives
- 2002 Archives
- 2001 Archives
- 2000 Archives
- 1999 Archives
- 1998 Archives
- 1997 Archives
- 1996 Archives
- 1995 Archives
- 1994 Archives
- 1993 Archives
- 1992 Archives
- 1991 Archives
- 1990 Archives
- 1989 Archives
- 1988 Archives
- 1987 Archives
- 1986 Archives
- 1985 Archives
- 1984 Archives