News/2007
News from 2007
2007-11-11
GHC 6.8.1. Ian Lynagh announced the release of GHC 6.8.1, a new major release of GHC. There have been a number of significant changes since the last major release, including: Haskell Program Coverage support, the GHCi debugger, pointer tagging in the runtime (with up to 10-15% speedups), constructor specialisation, improved optimisations and much more! The full release notes are available.
Gtk2Hs 0.9.12.1. Duncan Coutts announced version 0.9.12.1 of gtk2hs is now available. gtk2hs is the standard graphics library for Haskell.
Lazy SmallCheck 0.1. Matthew Naylor announced Lazy SmallCheck 0.1, a library for exhaustive, demand-driven testing of Haskell programs.
HDBC 1.1.3. John Goerzen announced new releases of HDBC, the Haskell database connectivity kit, and its associated backends (for sqlite3, postgresql, odbc).
xmobar. Andrea Rossato announced the release of Xmobar-0.8, a minimalistic, text based, status bar. It was specifically designed to work with the XMonad Window Manager.
Flymake Haskell. Daisuke Ikegami announced flymake haskell, emacs bindings for interactive Haskell editing.
network bytestring. Johan Tibbel announced, strict ByteString versions of the recv/send family of functions for efficient network IO.
ByteString search. Bryan O'Sullivan announced a cabalised version of the fast Boyer-Moore and Knuth-Morris-Pratt string search code for ByteStrings
Generating free theorems. Janis Voigtlaender announced an improved version of the online and offline free theorems generator for Haskell
hslogger4j 0.1.1. Bjorn Buckwalter announced Hslogger4j, which provides handlers for hslogger (John Goerzen's Haskell logging framework) that are compatible with log4j's XMLLayout.
Infinity 0.3. Austin Seipp announced `infinity', an IRC bot in Haskell
hswm. Remi Turk announced the first and last release of hswm, a Haskell window manager.
xmobar-0.8. Uploaded by Andrea Rossato. xmobar, a minimalistic text based status bar
hsSqlite3-0.0.4. Uploaded by Evgeny Jukov. hsSqlite3, bindings for Sqlite3
cabal-rpm-0.3.2. Uploaded by Bryan OSullivan. cabal-rpm turns Haskell Cabal source packages into source and binary RPM packages.
selenium-0.2.2. Uploaded by Aaron Tomb. selenium, Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser.
HPDF-1.3. Uploaded by alpheccar. HPDF. A PDF library with support for several pages, page transitions, outlines, annotations, compression, colors, shapes, patterns, jpegs, fonts, typesetting ...
FileManip-0.3.1. Uploaded by Bryan OSullivan. FileManip, a Haskell library for working with files and directories. Includes code for pattern matching, finding files, modifying file contents, and more.
stringsearch-0.2. Uploaded by Bryan OSullivan. stringsearch, fast search of ByteStrings.
nano-md5-0.1. Uploaded by Don Stewart. nano-md5, ByteString bindings to OpenSSL.
denominate-0.4.1. Uploaded by Calvin Smith. denominate provides a main program for performing bulk file and directory renaming, using a built-in filename converter or user-defined converters.
ContArrow 0.0.2. Uploaded by Evgeny Jukov. ContArrow, Control.Arrow.Transformer.Cont
state 0.0.2. Uploaded by Evgeny Jukov. state. State.
infinity 0.3. Uploaded by Austin Seipp. infinity, a tiny, pluggable irc bot.
unix-compat 0.1.2.1. Uploaded by Duncan Coutts. unix-compat, portable implementations of parts of the unix package.
Ranged-sets 0.1.1. Uploaded by Paul Johnson. Ranged-sets. A ranged set is an ordered list of ranges.
IFS 0.1.1. Uploaded by alpheccar. IFS, a library to describe IFS and generate PPM pictures from the descriptions
bktrees 0.1.3. Uploaded by Josef Svenningsson. bktrees. Burhard-Keller trees provide an implementation of sets which apart from the ordinary operations also has an approximate member search, allowing you to search for elements that are of a certain distance from the element you are searching for.
pqc 0.2. Uploaded by Don Stewart. pqc, a parallel batch driver for QuickCheck
strict 0.2. Uploaded by Don Stewart. strict, strict data types.
HsSVN 0.2. Uploaded by PHO. HsSVN, (Part of) Subversion binding for Haskell
HsHyperEstraier 0.2. Uploaded by PHO. HsHyperEstraier, a HyperEstraier binding for Haskell. HyperEstraier is an embeddable full text search engine which is supposed to be independent to any particular natural languages.
HsOpenSSL 0.3.1. Uploaded by PHO. HsOpenSSL, a (part of) OpenSSL binding for Haskell. It can generate RSA and DSA keys, read and write PEM files, generate message digests, sign and verify messages, encrypt and decrypt messages.
Finance-Quote-Yahoo 0.4. Uploaded by Brad Clawsie. Finance-Quote-Yahoo, obtain quote data from finance.yahoo.com
LRU 0.1.1. Uploaded by Adam Langley. LRU, an LRU data structure
base 3.0. Uploaded by Ross Paterson. base, the Prelude and its support libraries, and a large collection of useful libraries ranging from data structures to parsing combinators and debugging utilities.
regex-posix 0.72.0.2. Uploaded by Duncan Coutts. regex-posix, posix regex support.
xhtml 3000.0.2.1. Uploaded by Bjorn Bringert. xhtml, combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants.
Win32 2.1.0.0. Uploaded by Esa Ilari Vuokko. Win32, a binding to part of the Win32 library
unix 2.2.0.0. Uploaded by Ross Paterson. unix, POSIX functionality
time 1.1.2.0. Uploaded by Ross Paterson. time, time handling.
template-haskell 2.2.0.0. Uploaded by Ross Paterson. template-haskell, support for manipulating Haskell syntax trees
stm 2.1.1.0. Uploaded by Ross Paterson. stm, software transational memory
regex-compat 0.71.0.1. Uploaded by Ross Paterson. regex-compat, backwards compatible regex support
regex-base 0.72.0.1. Uploaded by Ross Paterson. regex-base, regex support.
readline 1.0.1.0. Uploaded by Ross Paterson. readline, an interface to the GNU readline library
random 1.0.0.0. Uploaded by Ross Paterson. random, random number generation
QuickCheck 1.1.0.0. Uploaded by Ross Paterson. QuickCheck, automatic testing of Haskell programs
process 1.0.0.0. Uploaded by Ross Paterson. process, jobs and processes
pretty 1.0.0.0. Uploaded by Ross Paterson. pretty, pretty printing library.
parsec 2.1.0.0. Uploaded by Ross Paterson. parsec, monadic parser combinators.
parallel 1.0.0.0. Uploaded by Ross Paterson. parallel, support for parallel programming
packedstring 0.1.0.0. Uploaded by Ross Paterson. packedstring, packed strings
OpenGL 2.2.1.1. Uploaded by Ross Paterson. OpenGL, binding for the OpenGL graphics system
OpenAL 1.3.1.1. Uploaded by Ross Paterson. OpenAL, binding to the OpenAL cross-platform 3D audio API.
old-time 1.0.0.0. Uploaded by Ross Paterson. old-time, time library.
alex 2.2. Uploaded by Simon Marlow. alex is a tool for generating lexical analysers in Haskell
Cabal 1.2.2.0. Uploaded by Duncan Coutts. Cabal is the framework for packaging Haskell software
HaXml 1.19.1. Uploaded by Malcolm Wallace. HaXml, Utilities for manipulating XML documents
HDBC-odbc 1.1.3.0. Uploaded by John Goerzen. HDBC-odbc, ODBC driver for HDBC
HDBC-postgresql 1.1.3.0. Uploaded by John Goerzen. HDBC-postgresql is a PostgreSQL driver for HDBC
HDBC-sqlite3 1.1.3.0. Uploaded by John Goerzen. HDBC-sqlite3 is a Sqlite v3 driver for HDBC
HDBC 1.1.3. Uploaded by John Goerzen. HDBC is a Haskell Database library
X11 1.3.0. Uploaded by Don Stewart. X11 is a library of bindings to the X11 libraries and server
HsOpenSSL 0.3. Uploaded by Masatake Daimon. HsOpenSSL, (Part of) OpenSSL binding for Haskell
Imlib 0.1. Uploaded by Cale Gibbard. Imlib, Haskell binding for Imlib 2
Stream 0.2.2. Uploaded by Wouter Swierstra. Stream, a library for manipulating infinite lists.
sat 1.0. Uploaded by AndriiZvorygin. sat, CNF SATisfier
torrent 2007.10.27. Uploaded by David Himmelstrup. torrent, BitTorrent file parser
bencode 0.2. Uploaded by David Himmelstrup. bencode, Parser and printer for bencoded data.
SDL 0.5.1. Uploaded by David Himmelstrup. SDL, binding to libSDL
NGrams 1.0. Uploaded by Justin Bailey. ngrams, Simple application for calculating n-grams using Google
2007-10-25
2007-09-23
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, and 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.
2007-08-07
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.
2007-07-23
Learn Haskell in 10 minutes. Chris Smith prepared a new tutorial on the basics of Haskell
Haskell Program Coverage 0.4. Andy Gill announced release 0.4 of Hpc, a tool for Haskell developers. Hpc is a tool-kit to record and display Haskell Program Coverage. Hpc includes tools that instrument Haskell programs to record program coverage, run instrumented programs, and display the coverage information obtained.
Uniplate 1.0. Neil Mitchell announced Uniplate (formerly known as Play), a library for boilerplate removal requiring only Haskell 98 (for normal use) and optionally multi-parameter type classes (for more advanced features).
Atom: Hardware description in Haskell. Tom Hawkins announced Atom, a high-level hardware description language embedded in Haskell that compiles conditional term rewriting systems into conventional HDL.
Catch. Neil Mitchell announced a pattern-match checker for Haskell, named Catch. Do you sometimes encounter the dreaded 'pattern match failure: head' message? Do you have incomplete patterns which sometimes fail? Do you have incomplete patterns which you know don't fail, but still get compiler warnings about them? Would you like to statically ensure the absence of all calls to error? This is what Catch helps ... catch!
Haskell Communities and Activities Report. Andres Loeh announced that the Haskell Communities and Activities Report is now available, covering the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell.
The Reduceron. Matthew Naylor announced the Reduceron, a processor for executing Haskell programs on FPGA with the aim of exploring how custom architectural features can improve the speed in which Haskell functions are evaluated. Being described entirely in Haskell (using Lava), the Reduceron also serves as an interesting application of functional languages to the design of complex control circuits such as processors.
Data.Derive. Neil Mitchell announced Data.Derive, a library and a tool for deriving instances for Haskell programs. It is designed to work with custom derivations, SYB and Template Haskell mechanisms. The tool requires GHC, but the generated code is portable to all compilers. We see this tool as a competitor to DrIFT.
Piffle, a packet filter language. Jaap Weel announced Piffle, a compiler for a packet filter language in Haskell: a good example of how Haskell can be used in an application domain (low level computer networking) where people tend to use C for everything, including writing compilers.
Towards a Programming Language Nirvana. Simon Peyton-Jones appears on video, talking about the Haskell path to programming language Nirvana
Yi 0.2. Jean-Philippe Bernardy announced the 0.2.0 release of the Yi editor. Yi is a text editor written and extensible in Haskell. The goal of Yi is to provide a flexible, powerful and correct editor core dynamically scriptable in Haskell. Yi si also a Haskell interpreter, very much like emacs is a Lisp interpreter, this makes really easy to dynamically hack, experiment and modify Yi. All tools and goodies written in haskell are also readily available from the editor. This is implemented by binding to the GHC API.
Foreign.AppleScript. Wouter Swierstra announced a library for compiling and executing AppleScript from Haskell. AppleScript is a scripting language available on all modern Apple computers. It can be used to script most applications on running on MacOS X.
Asterisk Gateway Interface. Jeremy Shaw uploaded a simple AGI interface to hackage. For more about Asterix, see here.
Harpy. Dirk Kleeblatt announced Harpy, a library for run-time code generation of x86 machine code. It provides not only a low level interface to code generation operations, but also a convenient domain specific language for machine code fragments, a collection of code generation combinators and a disassembler. Lennart Augustsson has written a series of articles demonstrating its use for fast EDSLs.
Yaml Reference. Gaal Yahas announced a Haskell (Cabal) package containing the YAML spec productions wrapped in Haskell magic to convert them to an executable parser. The parser is streaming. It isn't intended to serve as a basis for a YAML tool chain; instead it is meant to serve as a reference implementation of the spec.
2007-05-07
Atom: Hardware Description in Haskell. Tom Hawkins announced the release of Atom, a high-level hardware description language embedded in Haskell, compiles conditional term rewriting systems into conventional HDL.
The Monad.Reader: Issue 7. Wouter Swierstra announced the latest issue of The Monad.Reader. The Monad.Reader is a quarterly magazine about functional programming. It is less-formal than journal, but somehow more enduring than a wiki page or blog post.
HDBC: Haskell Database Connectivity. John Goerzon announced that HDBC 1.1.2 is now released. HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases.
FileManip: Expressive Filesystem Manipulation. Bryan O'Sullivan announced the FileManip package provides expressive functions and combinators for searching, matching, and manipulating files.
photoname: manipulate photos using EXIF data. Dino Morelli announced the release of photoname, a command-line utility for renaming and moving photo image files. The new folder location and naming are determined by two things: the photo shoot date information contained within the file's EXIF tags and the usually-camera-assigned serial number, often appearing in the filename.
RSA-Haskell: Command-line Cryptography. David Sankel announced the release of RSA-Haskell, a collection of command-line cryptography tools and a cryptography library written in Haskell. It is intended to be useful to anyone who wants to secure files or communications or who wants to incorporate cryptography in their Haskell application.
Haskell modes for Vim. Claus Reinke summarised the various Haskell/Vim support currently available
French Translation of Gentle Introduction to H98. The haskell-fr team announced a completed a translation into French of the 'Gentle Introduction to Haskell'.
2007-04-27
GHC 6.6.1. Ian Lynagh announced a new patchlevel release of GHC. This release contains a significant number of bugfixes relative to 6.6, so we recommend upgrading. Release notes are here. 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.
Xmonad 0.1. Spencer Janssen announced the inaugural release of Xmonad. Xmonad is a minimalist tiling window manager for X, written in Haskell. Windows are managed using automatic layout algorithms, which can be dynamically reconfigured. At any time windows are arranged so as to maximise the use of screen real estate. All features of the window manager are accessible purely from the keyboard: a mouse is entirely optional. Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files.
DisTract: Distributed Bug Tracker implemented in Haskell. Matthew Sackman announced DisTract, a Distributed Bug Tracker. We're all now familiar with working with distributed software control systems, such as Monotone, Git, Darcs, Mercurial and others, but bug trackers still seem to be fully stuck in the centralised model: Bugzilla and Trac both have single centralised servers. This is clearly wrong, as if you're able to work on the Train, off the network and still perform local commits of code then surely you should also be able to locally close bugs too. DisTract allows you to manage bugs in a distributed manner through your web-browser. The distribution is achieved by making use of a distributed software control system, Monotone. Thus Monotone is used to move files across the network, perform merging operations and track the development of every bug. Finally, the glue in the middle that generates the HTML summaries and modifies the bugs is written in Haskell.
IOSpec 0.1. Wouter Swierstra announced the first release of the Test.IOSpec library, that provides a pure specification of some functions in the IO monad. This may be of interest to anyone who wants to debug, reason about, analyse, or test impure code. Essentially, by importing libraries from IOSpec you can the same code you would normally write in the IO monad. Once you're satisfied that your functions are reasonably well-behaved, you can remove the Test.IOSpec import and replace it with the 'real' functions instead.
wl-pprint-1.0: Wadler/Leijen pretty printer. Stefan O'Rear announced wl-pprint-1.0, the classic Wadler / Leijen pretty printing combinators, now in 100% easier to use Cabalised form! PPrint is an implementation of the pretty printing combinators described by Philip Wadler (1997). In their bare essence, the combinators of Wadler are not expressive enough to describe some commonly occurring layouts. The PPrint library adds new primitives to describe these layouts and works well in practice.
London Haskell User Group. Neil Bartlett announced the first meeting of the London Haskell User Group on Wednesday 23rd May from 6:30PM. The meeting will be held at City University's main campus in central London, and Simon Peyton Jones will be coming to give a talk.
New York Functional Programmers Network. Howard Mansell announced a New York area-based network for Haskell (and functional) programmers. The idea is to have a regular meeting through which functional programmers can meet to discuss experiences, get and give information, find jobs.
Data.Proposition 0.1. Neil Mitchell announced the release of Data.Proposition, a library that handles propositions, logical formulae consisting of literals without quantification. It automatically simplifies a proposition as it is constructed using simple rules provided by the programmer. Implementations of propositions in terms of an abstract syntax tree and as a Binary Decision Diagram (BDD) are provided. A standard interface is provided for all propositions.
Book reviews for the Journal of Functional Programming. Simon Thompson sought interested contributors for book reivews for the Journal of Functional Programming. There is a list of books currently available for review.
Reminder: HCAR May 2007. Andres Loeh reminded us that the deadline for the May 2007 edition of the Haskell Communities and Activities Report is only a few days away -- but this is still 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.
Template 0.1: Simple string substitution. Johan Tibell announced a simple string substitution library that supports substitution ala Perl or Python.
hpaste for emacs. David House announced hpaste.el, an Emacs Lisp library that integrates hpaste, the Haskell pastebin, into Emacs. It provides two functions, hpaste-paste-region and hpaste-paste-buffer, which send the region or buffer to the hpaste server as required.
2007-04-12
ndp-0.1: nested data parallelism in Haskell. Roman Leshchinskiy announced the first release of the NDP package, a library for writing nested data-parallel programs in Haskell, on shared-memory multiprocessors. The NDP library is part of the Data Parallel Haskell project. The paper Data Parallel Haskell: a status report describes the underlying design and go through an example program.
binary 0.3: bigger, better, faster. Lennart Kolmodin announced binary 0.3. The 'binary' package provides efficient serialization of Haskell values to and from lazy ByteStrings. ByteStrings constructed this way may then be written to disk, written to the network, or further processed (e.g. stored in memory directly, or compressed in memory with zlib or bzlib). It's available through Hackage, or via its homepage.
Text.HTML.Chunks. Matthew Sackman announced the Text.HTML.Chunks library, a clone with improvements of the Perl HTML::Chunks module. The main achievement is the use of template-haskell to combine the template into the code at compile time. This then allows for static checking that the variables/fields that the templates are expecting are indeed being provided and that the templates the code is trying to use do indeed exist. The template is then incorporated within the code, removing the dependency on the template.
Phooey 1.0 and GuiTV 0.3. Conal Elliott announced a new version of Phooey, a library for functional user interfaces. Highlights in this release: uses new TypeCompose package, which includes a simple implementation of data-driven computation; new Applicative functor interface; eliminated the catch-all Phooey.hs module. Now import any one of Graphics.UI.Phooey.{Monad ,Applicative,Arrow}; Phooey.Monad has two different styles of output widgets, made by owidget and owidget' and more. Phooey is also used in GuiTV, a library for composable interfaces and 'tangible values'.
The real Monad Transformer. Henning Thielemann announced the real monad transformer! It has been argued that people avoid Haskell because of terms from Category theory like 'Monad'. This problem can now be solved by a wrapper which presents all the internet entirely without monads! Start the parallel Haskell wiki. Of course the tool is written in Haskell, that is, Haskell helps solving problems which only exist because of Haskell. Bug reports and feature requests can be tracked at here.
GHC 6.6.1 Release Candidate. Ian Lynagh announced the Release Candidate phase for GHC 6.6.1. Snapshots beginning with 6.6.20070409 are release candidates for 6.6.1. You can download snapshots from here.
Haskell Cryptographic Library 4.0.3. Dominic Steinitz announced the release of a new version of the Haskell Cryptographic Library based on the crypto proposal. See the crypto home for more details. There is now no dependency on NewBinary. The downside is the library contains no support for ASN.1 which will be released in separate package.
TagSoup library 0.1. Neil Mitchell announced TagSoup, a library for extracting information out of unstructured HTML code, sometimes known as tag-soup. The HTML does not have to be well formed, or render properly within any particular framework. This library is for situations where the author of the HTML is not cooperating with the person trying to extract the information, but is also not trying to hide the information. The library provides a basic data type for a list of unstructured tags, a parser to convert HTML into this tag type, and useful functions and combinators for finding and extracting information.
ParseP library 0.1. Twan van Laarhoven announced a generalized/improved variant of the ReadP parser library. Unlike ReadP ParseP can handle any type of token, and actually generates error messages in case something goes wrong. It is also possible to use things other then a list as an input stream, for example ByteStrings.
Debian library for Haskell. Jeremy Shaw announced the availability of a library for interacting with the Debian system from Haskell. This library does not (currently) depend on dpkg or apt for any functionality. Contributions are welcome, and the library is available from Hackage. Well-Support Modules: parsing/Printing Debian control files, parsing/printing sources.list files, comparing Debian version numbers, a data type for encoding Debian relations and more.
Call for Contributions: HC and A Report. Andres Loeh mentioned that it is nearly time for the twelfth edition of the 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. Even if the project is very small or unfinished or you think it is not important enough -- please reconsider and submit an entry anyway!
System.FilePath 1.0. Neil Mitchell announced the System.FilePath 1.0 release! The FilePath library is a library for manipulating FilePaths in a cross platform way on both Windows and Unix. Documentation.
FGL - A Functional Graph Library. Martin Erwig announced a new release of the Functional Graph Library for Haskell. This release fixes some bugs in the implementation of several basic inspection functions.
TypeCompose 0.0. Conal Elliott announced TypeCompose, which provides some classes and instances for forms of type composition. It also includes a very simple implementation of data-driven computation.
Haskell SWF generation library. Jeremy Shaw announced the availability of an Adobe Shockwave Flash (SWF) library for Haskell. It is primarily useful for compiling ActionScript assembly into a .swf file.
New web-devel mailinglist for Haskell. Marc Weber announced a new web-devel mailinglist on haskell.org has been set up. You can subscribe here.
strict-0.1: strict versions of Haskell types. Roman Leshchinskiy announced the first release of package 'strict' which provides strict versions of standard Haskell types. At the moment, pairs, Maybe and Either are defined. The library is available from hackage.
Chess in Haskell. Steffen Mazanek announced a straightforward implementation of a chess engine in Haskell, available as a tutorial exercise.
storylen: story word count and categorization. Dino Morelli announced storylen, a command-line utility that counts the words in files and classifies them into story types (short story, novella, novel...). Its operation and output are very similar to the *nix program wc. This is useful for books in plain ascii text.
2007-03-12
Google Summer of Code and Haskell.org. Malcolm Wallace announced that Haskell.org has once again applied to be a mentoring organisation for the Google Summer of Code. If you are a student who would like to earn money hacking in Haskell, or you are a non-student who has a cool idea for a coding project but no time to do it yourself, then visit the SoC wiki to gather ideas, and add yourself to the list of interested people! Add new ideas for projects!
Haskell Workshop Call for Papers. Gabriele Keller announced the initial call for papers for the Haskell Workshop 2007, part of the 2007 International Conference on Functional Programming (ICFP). 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.
Data.CompactString 0.3: Unicode ByteString. Twan van Laarhoven announced version 0.3 of the Data.CompactString library. Data.CompactString is a wrapper around Data.ByteString supporting Unicode strings.
harchive-0.2: backup and restore software in Haskell. David Brown announced release 0.2 of harchive, a program for backing up and restoring data. The package is available from Hackage.
New release of regex packages. Chris Kuklewicz announced new versions of the regex-* packages (base,compat,dfa,parsec,pcre,posix,tdfa,tre). There is a new wiki page with documentation relating to these packages. All packages are available from Hackage, under the Text Category.
StaticDTD: type safe markup combinators from DTDs. Marcel Manthe announced a tool that transforms a Document Type Definition to a library. The resulting library contains combinators that assure proper nesting of elements. The plan is to add more constraints that will also take care of the order of occurrence of children. The parsing of the DTD is done with HaXml. The code is available via darcs.
IPv6 support for network package. Bryan O'Sullivan announced that he'd added IPv6 support to the network package.
Type-level binary arithmetic library. Oleg Kiselyov and Chung-chieh Shan announced a new library for arbitrary precision binary arithmetic over natural kinds. The library supports addition/subtraction, predecessor/successor, multiplication/division, exp2, full comparisons, GCD, and the maximum. At the core of the library are multi-mode ternary relations Add and Mul where any two arguments determine the third. Such relations are especially suitable for specifying static arithmetic constraints on computations. The type-level numerals have no run-time representation; correspondingly, all arithmetic operations are done at compile time and have no effect on run-time.
2007-03-05
New Book - Programming in Haskell. Graham Hutton announced a new Haskell textbook: Programming in Haskell. This introduction is ideal for beginner programmers: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The presentation is clear and simple, and benefits from having been refined and class-tested over several years.
Gtk2Hs version 0.9.11. Duncan Coutts announced Gtk2Hs - a GUI Library for Haskell based on Gtk+, version 0.9.11, is now available. Gtk2Hs features: automatic memory management; Unicode support; nearly full coverage of Gtk+ 2.8 API; support for several additional Gtk+/Gnome modules (Glade visual GUI builder, cairo vector graphics, SVG rendering, OpenGL extension and more).
cabal-make version 0.1. Conal Elliott announced Cabal-make, a GNU make include file to be used with Cabal in creating and sharing Haskell packages. A few highlights: web-based, cross-package links in Haddock docs; syntax coloring via hscolour, with per-project CSS; links from the Haddock docs to hscolour'd code and to wiki-based user comment pages. It is available here.
Vty 3.0.0. Stefan O'Rear announced a new major of vty, featuring improved performance. vty is notably used in yi to provide a terminal interface supporting syntax highlighting.
Haskell Xcode Plugin. Lyndon Tremblay announced the first release of a plugin for Xcode enabling Haskell syntax highlighting, Xcode projects compiling and linking, and a couple missing features, for Haskell (GHC).
urlcheck 0.1: parallel link checker. Don Stewart announced the first release of urlcheck, an parallel link checker, written in Haskell. Frustrated with the resources and time consumed by 'linkchecker', urlcheck is a lightweight, smp-capable replacement in Haskell. urlcheck pings urls found in the input file, checking they aren't 404s. It uses Haskell threads to run queries concurrently, and can transparently utilise multiple cores if you have them.
The Monad.Reader: call for copy. Wouter Swierstra welcomed articles for the next issue of The Monad.Reader. Submit articles for the next issue by e-mail before April 13th, 2007. Articles should be written according to the guidelines available from The Monad Reader home.
TV-0.2 and GuiTV-0.2. Conal Elliott announced TV, a library for composing tangible values ('TVs'), values that carry along external interfaces. In particular, TVs can be composed to create new TVs, and they can be directly executed with various kinds of interfaces. Values and interfaces are combined for direct use, and separable for composition. GuiTV adds graphical user interfaces to the TV (tangible value) framework, using Phooey. The functionality was part of TV up to version 0.1.1, and is now moved out to a new package to eliminate the dependency of core TV on Phooey and hence on wxHaskell, as the latter can be difficult to install.
Haskell-mode 2.2. Stefan Monnier released version 2.2 of the Haskell-mode package for Emacs. It has very few visible changes, mostly some commands to query an underlying interactive hugs/ghci in order to get type/info about specific identifiers.
Data.CompactString 0.1. Twan van Laarhoven announced a beta Unicode version of Data.ByteString. The library uses a variable length encoding (1 to 3 bytes) of Chars into Word8s, which are then stored in a ByteString.
HSXML version 1.13. Oleg Kiselyov announced version 1.13 of HSXML. HSXML is a library for writing and transforming typed semi-structured data in Haskell -- in S-expression syntax, with the extensible set of `tags', and statically enforced content model restrictions. A particular application is writing web pages in Haskell. We obtain HTML, XHTML or other output formats by running the Haskell web page in an appropriate rendering monad. The benefit of representing XML-like documents as a typed data structure/Haskell code is static rejection of bad documents -- not only those with undeclared tags but also those where elements appear in wrong contexts.
Haskell XML Toolbox 7.1. Uwe Schmidt announced a new version of the Haskell XML Toolbox. The main change is the step from cvs to darcs. The documentation has source links into the darcs repository. A tutorial is available in the Haskell wiki.
OmegaGB, Haskell Game Boy Emulator. Bit Connor announced OmegaGB, an emulator for the Nintendo Game Boy, written in pure Haskell. It uses gtk2hs for the user interface, but there is also a version that doesn't require gtk2hs and uses ascii art. You can find more information about the program at the website.
Takusen 0.6. Oleg and Alistair announced a new release of Takusen, the database library for Haskell. There are a large number of changes and bug-fixes in this release, including improved Oracle and PostgreSQL support.
hoogle.el. David House announced Hoogle.el, a simple Emacs Lisp library that nicely integrates Hoogle into Emacs.
Buggy nofib. Josep Silva Galiana announced a 'buggy' version of the nofib collection of Haskell programs. All programs contain one of these bugs: a bug that produces an incorrect result; a bug that produces non-termination; a bug that produces an exception (e.g., div by zero). The buggy nofib suite can be used to test debugging tools.
nobench: Haskell implementation shootout. Don Stewart announced nobench, a cross-implementation performance benchmark suite, based on nofib, comparing the performance of various Haskell compilers and bytecode interpreters on a range of programs.
Derangement version 0.1.0. Dennis Griffith announced the initial version of derangement, a library for finding a derangement of a set. A derangement of a set is a permutation with no fixed points, like many constrained matching problems it is susceptible to solution via a Max-flow algorithm.
HSH 1.0.0. John Goerzen announced the first release of HSH. HSH is designed to let you mix and match shell expressions with Haskell programs. With HSH, it is possible to easily run shell commands, capture their output or provide their input, and pipe them to/from other shell commands and arbitrary Haskell functions at will. HSH makes it easy to run shell commands. But its real power is in piping. You can pipe -- arbitrarily -- between external programs, pure Haskell functions, and Haskell IO functions
A new Haskell cookbook. Martin Bishop began a preliminary page, and fleshed out some of the headers/sub-headers on the wiki page for a good Haskell Cookbook (not a PLEAC clone). Please contribute.
2007-01-31
- 31 of january 2007: The first announced romanian book of Haskell, "Introducere in Haskell 98 prin exemple" (eng: An introduction in Haskell 98 by examples) by Dan Popa from the University of Bacau was published by EduSoft, Bacau, Romania, with a foreword by Simon Peyton-Jones. Details on the ro page. The book is dedicated to the Haskell community. Thank you !
- (somewhere in february 2007) . Lect.Dr. Mihai Gontineac from The Dept.of Math. of the Al.I.Cuza University has also published his book, "Programare Functionala - O introducere utilizand limbajul Haskell" (eng: Functional programming - An introduction using the Haskell language") published by "Editura Alexandru Myller". The book is dedicated to the memory of the father of the author. The Bibliography of the book is containing the title of the G.Hutton's book "Programming in Haskell" declared by Lect.Dr. M.G. as beeing studied on january 31,2007. There is an other article published on 25 of january 2007, too. Thank you !(The release date of 28 of december 2006 according to author's email is unreal.) This indicates the existence of a new community of Haskell users from Iasi, Romania, too.
lhs2tex 1.12. Andres Loeh announced lhs2TeX version 1.12, a preprocessor to generate LaTeX code from literate Haskell sources. lhs2TeX includes the following features: highly customized output; liberal parser; 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.
hscom. Krasimir Angelov announced the hscom library. This is a FFI library for Microsoft COM. It is far from complete and it doesn't have automatic IDL to Haskell translator but if you have ever thought to start writing you own COM library for Haskell then please take a look. It is designed to be as close as possible to the standard FFI library for C.
DeepArrow 0.0: Arrows for 'deep application'. Conal Elliott announced the birth of DeepArrow, a Haskell library for composable 'editors' of pure values. DeepArrow enables 'deep function application' in two senses: deep application of functions and application of deep functions. These tools generalize beyond values and functions, via the DeepArrow subclass of the Arrow type class.
Phooey 0.1: functional user interface library. Conal Elliott announced version 0.1 of Phooey, an arrow-based functional user interface library. New in version 0.1: documentation, text input, boolean input/output, mtl. Phooey is now used in TV.
TV 0.0: Tangible Values. Conal Elliott announced TV, a library for composing tangible values (TVs): values that carry along external interfaces. In particular, TVs can be composed to create new TVs, and they can be directly executed with a friendly GUI, a process that reads and writes character streams, or many other kinds interfaces. Values and interfaces are combined for direct use, and separable for composability. See the project page.
polyparse 1.00. Malcolm Wallace announced the release of PolyParse, a collection of parser combinator libraries in Haskell. They were all previously distributed as part of HaXml, but are now split out to make them more widely available.
Data.Binary: binary serialisation. The Binary Strike Force announced the release of Binary, a high performance, pure binary serialisation library for Haskell. It is available from Hackage and darcs. The 'binary' package provides efficient serialisation of Haskell values to and from lazy ByteStrings. ByteStrings constructed this way may then be written to disk, written to the network, or further processed (e.g. stored in memory directly, or compressed in memory with zlib or bzlib).
DrIFT 2.2.1: support for Data.Binary. John Meacham announced that DrIFT 2.2.1 is out and now has support for the Data.Binary module.
A History of Haskell. Simon Peyton-Jones mentioned that the paper 'A History of Haskell: being lazy with class', authored by Paul Hudak, John Hughes, Phil Wadler and Simon, is finally done. You can get a copy now!
piggybackGHC 0.1. Martin Grabmueller announced the release 0.1 of piggybackGHC, a small utility package for using GHC for lexing and parsing Haskell source code. The library uses the GHC library for all the hard stuff, so all supported GHC extensions are available.
regex-tdfa 0.20. Chris Kuklewicz announced regex-tdfa, a 'tagged' DFA regular expression backend in pure Haskell, along with a suite of updates to the existing regex packages.
hpaste.org. Eric Mertens announced 'hpaste', the Haskell Pastebin. Developed over a few days by many of the members of the Haskell irc channel, it provies a reliable paste bot with Haskell-specific capabilities.
2007-01-09
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.
Alex: lexical analyser generator. Simon Marlow announced version 2.1.0 of Alex. Changes in Alex 2.1.0 vs. 2.0.1 include switching to Cabal, and slight changes to the error semantics.
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.
IntelliJIDEA for Haskell. Tony Morris announced syntax highlighting support for Haskell in IntellijIDEA, released under a BSD licence.
Yampa + GADT for GHC 6.6. Joel Reymont announced a cabalized version of Yampa + GADT for GHC 6.6. Joel also sought comments on cabalisation, testing and example for this package.
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.
2007-01-02
hscolour-1.6. Malcolm Wallace announced HsColour, a popular syntax-highlighter for Haskell code. It can generate ANSI terminal colour codes, HTML, and CSS, and can insert hyperlink anchors for function definitions (useful in conjunction with Haddock). HsColour-1.6 is now available. The major addition is a new LaTeX output mode.
Dimensional: Statically checked physical dimensions. Björn Buckwalter announced version 0.1 of Dimensional, a module for statically checked physical dimensions. The module facilitates calculations with physical quantities while statically preventing e.g. addition of quantities with differing physical dimensions.
vty 2.0. Stefan O'Rear announced a new major version of vty. Differences from 1.0 include: vty now uses a record type for attributes, instead of bitfields in an Int; vty now supports setting background colors; you can now explicitly specify 'default' colors; vty now supports Unicode characters on output, automatically setting and resetting UTF-8 mode.
'Lambda Revolution' tshirts. Paul Johnson announced the creation of a new Haskell tshirt, on the theme of 'The Lambda Revolution'. Tshirts are available from CafePress, and the designs are freely available.