[Haskell] Haskell Weekly News: April 17, 2006
Donald Bruce Stewart
dons at cse.unsw.edu.au
Mon Apr 17 01:29:52 EDT 2006
Haskell Weekly News: April 17, 2006
Greetings, and thanks for reading issue 33 of HWN, a weekly newsletter
covering developments in the Haskell community. Each Monday, new
editions are posted to the Haskell mailing list and to The
Haskell Sequence. RSS is also available. Headlines also go to
* 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
* 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.
This section covers activity on Haskell' standardisation process.
* Concurrency and FFI status
* On Unicode
* The goals of the concurrency standard
* Preemptive versus cooperative scheduling
* Postponing deepSeq and exceptions discussion
* Defaults for superclass methods
* Collecting requirements for FDs
* FDs and confluence
* Network IO
* QuickCheck. Koen Claessen hinted that a "brand new" version of
QuickCheck with lots of cool features is soon to be released.
* Accurate event scheduling. Henning Thielemann asked about how
to improve the accuracy of event scheduling, while working on
Haskore, the Haskell music system. John Meacham suggested a
binding to the Linux real time clock interface, while Tomasz
Zielonka pointed to a library he has been developing using
software transactional memory actions for accurate timeouts. He
also mentioned the new registerDelay function in the GHC head.
Measurements indicated that the average error from the expected
waiting time dropped from 0.010140108245s to 0.00080999391s. Quite
* Good fusion. A casual remark about an alternative version of
the inits function lead to a huge discussion about using fusion to
improve code quality.
* Sun Apr 2 14:59:11 PDT 2006 simonpj
Improve newtype deriving
Ross Paterson pointed out a useful generalisation of GHC's
newtype-deriving mechanism. This implements it. The idea is to
allow newtype Wrap m a = Wrap (m a) deriving (Monad, Eq) where the
representation type doesn't start with a type constructor.
* Tue Apr 11 05:04:41 PDT 2006 simonpj
Allow IO to be wrapped in a newtype in foreign import/export
Up to now, the silent unwrapping of newtypes in foreign
import/export has been limited to data values. But it's useful for
the IO monad itself:
newtype MyIO a = MIO (IO a)
foreign import foo :: Int -> MyIO Int
This patch allows the IO monad to be wrapped too.
Contributing to HWN
You can help us create new editions of this newsletter. Please see the
contributing information, send stories to dons -at-
cse.unsw.edu.au. The darcs repository is available at darcs get
More information about the Haskell