Features Download
From: Niklas Broberg <niklas.broberg <at> gmail.com>
Subject: ANN: haskell-src-exts 1.0.0 rc1 (aka 0.5.2)
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Tuesday 16th June 2009 22:43:47 UTC (over 8 years ago)
Fellow Haskelleers,

I'm pleased to report that I feel I have now completed the first
milestone in my GSoC project for haskell-src-exts: Full Code Support.

This means I feel ready to take that scary leap that means to drop the
safe 0.x version numbering (experimental) and finally make the first
stable release, version 1.0.0. But before I take that leap I want the
library to be thoroughly tested, so I can with confidence say that it
truly *is* stable. Therefore, I hereby announce the release on hackage
of haskell-src-exts-0.5.2, which I consider (almost) a release
candidate for 1.0.0.

* Via cabal: cabal install haskell-src-exts
* On Hackage: http://hackage.haskell.org/package/haskell-src-exts-0.5.2
* Via darcs: darcs get http://code.haskell.org/haskell-src-exts

I would be delighted if as many as possible would consider testing it
on their code, even those of you who feel that you may not have any
immediate use of the library, just to cover as much code base as
possible in the hunt for potential bugs and misfeatures. Testing it is
really easy, four simple steps:

> cabal install haskell-src-exts
> ghci
Prelude> :m Language.Haskell.Exts
Prelude Language.Haskell.Exts> parseFile "YourFileHere.(l)hs"

If you get a parse error on a file that you feel should have been
accepted, let me know! If the parser gives you an AST result for a
file that you feel it shouldn't have accepted, let me know! Here's the
bug tracker:


The reason I say it is "almost" a release candidate is that while I
consider the functionality to be in place, I will tidy up the exports,
add a few more convenient functions to export, and add a lot of
documentation, before I make the actual release. If you have a request
for a particularly conventient function to add to the list of exports
from the package, it's thus not too late to get it into 1.0.0. :-)

What's cool in haskell-src-exts-0.5.2:

* Support for all syntactic extensions supported by GHC, with two
exceptions: UnicodeSyntax and NewQualifiedOperators. These will likely
be added in the next feature release. Exclusive support for the newly
registered XmlSyntax and RegularPatterns extensions. No support (yet)
for Hugs-specific extensions (RestrictedTypeSynonyms,
ExtensibleRecords, HereDocuments). No support for CPP. Also does not
support the GHC-specific relaxation of layout in do-blocks, which is
an unregistered extension (that should be registered!).

* Support for parametrising the parsing on what extensions it should
recognise. With no extensions given, it assumes Haskell98. Note that
'parseFile' will look for language pragmas in your source file to
decide what extensions to use when parsing. If you want to be
explicit, you can use 'parseFileWithExts', or 'parseFileWithMode' that
lets you set a few other things as well. I intend to add some
convenient names of extension groups, such as 'ghcExtensions' and
'glasgowExts', this is one area where I would particularly welcome

* Support for correct fixities of infix operators. By default it uses
the fixities defined in the Prelude, as well as in the current
document (including local let-bound fixities). Use 'parseFileWithMode'
to set a different set of fixities. Language.Haskell.Exts.Fixity
defines preludeFixities and baseFixities (all fixities defined in the
base package), as well as combinators for defining your own sets. Much
thanks to Neil Mitchell for the meat of this code.

* No (known) bugs! :-)

Special note for users of HaRP/HSP: I've uploaded a new version of
hsx, hsx-0.5.0, that works with haskell-src-exts-0.5.2. There is one
known bug in this version though, it cannot handle 'proc' entities
from the Arrows extensions, I'm still considering how to fix that. In
the mean time you can use it just fine, as long as your files don't
contain any 'proc' blocks (which the old version couldn't handle

Cheers and happy Haskelling,

CD: 3ms