Haskell Weekly News: April 03, 2006

Submitted by dons on Sun, 04/02/2006 - 8:34pm.

Haskell Weekly News: April 03, 2006

Greetings, and thanks for reading issue 31 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 haskell.org.

Haskell'

This section covers activity on Haskell' standardisation process.

Discussion

  • Mobile Haskell. Dmitri O.Kondratiev asked about running Haskell on a PowerPC Windows Mobile device. John Meacham responded with some interesting notes regarding Haskell on the Nokia 770.

  • GHCi as a debugger. Lemmih wrote on "whether it would be possible to call GHCi from interpreted byte-code. It turned out that it was, and it was even fairly easy". Great stuff!

  • Clearer reflection. Krasimir Angelov proposed some ideas for a better Reflection API for Haskell. Currently we have Typeable and Data classes which provide some pieces of information about the data types at runtime. typeOf provides runtime information about the type of a given variable. dataTypeOf provides almost the same information but with some extras. There is some overlap between the TypeRep and DataType types. Some pieces of information you can get from the TypeRep, other from the DataType and some other from both of them. There is also an information which is inaccessible from either TypeRep and DataType.

Quotes of the Week

Seen on #haskell:

Lemmih:: calling an out-of-scope function isn't as easy as I had hoped

TuringTest:: They got it work in Haskell without understanding Haskell.
It is quite an achievement, of some description.

tennin:: [very #haskell] anyone know of any good books/papers on the
application of category theory to databases?

Smokey`:: I can't believe it, Haskell is starting to draw me away from
C++... I swore i'd never turn from C++

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: March 27, 2006

Submitted by dons on Tue, 03/28/2006 - 9:53pm.

Haskell Weekly News: March 27, 2006

Greetings, and thanks for reading issue 30 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.

A busy, exciting week!

Announcements

  • 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.

  • 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!

  • 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 irc channel on freenode.

  • Concurrent Yhc. The Yhc dev team reports that Yhc now includes support for concurrency! The interface is the same as Concurrent GHC. Currently only

    • Control.Concurrent
    • Control.Concurrent.MVar
    • Control.Concurrent.QSem

    are implemented, however many other abstractions can be written in Haskell in terms of MVars.

  • 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'

This section covers activity on Haskell' standardisation process.

Discussion

  • Disruptive Haskell. Paul Johnson forked a long discussion on how Haskell can be seen as a disruptive technology, and what Haskell's "brand" might be. Many interesting contributions were made.

  • Bit streaming Haskell. Per Gustafsson, having made a proposal to extend the Erlang `binary' data type from being a sequence of bytes (a byte stream) to being a sequence of bits (a bitstream), with the ability to do pattern matching at the bit level, asked for help writing efficient (and beautiful) Haskell versions of his bitstream benchmarks. Several improved programs were submitted, bringing the Haskell code into line with the OCaml and Erlang entries.

Quotes of the Week

Pseudonym's condensed LtU guide to the static types vs dynamic types debate:

  • Haskell-vs-Scheme is an issue on which reasonable people differ.
  • Ruby-vs-Java is an issue on which unreasonable people differ.
Everything else is details. :-)

Seen on #haskell:

shapr :: Science News had an article about a tribe of isolated villagers
in Brazil that don't have recursion or indirection in their language.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: March 20, 2006

Submitted by dons on Sun, 03/19/2006 - 8:55pm.

Haskell Weekly News: March 20, 2006

Greetings, and thanks for reading issue 29 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.

Announcements

  • 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.

Haskell'

This section covers activity on Haskell'.

Discussion

  • Deep Functors. Oleg Kiselyov described an fmap over arbitrarily deep `collections': lists of maybes of maps of IOs, etc. -- arbitrarily nested fmappable things.

  • GHC 6.4.2. Simon Marlow put out a heads up for the forthcoming 6.4.2 release of GHC. The rough timescale is to go into release candidate testing in about a week, and have two weeks of release candidates before the final release.

  • Hexdump. Dominic Steinitz mentioned a "hexdump" function he'd written, posing a question about where it would live in the module hierarchy..

Quote of the Week

ihope :: My factorial function uses GADTs.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: March 13, 2006

Submitted by dons on Sun, 03/12/2006 - 9:34pm.

Haskell Weekly News: March 13, 2006

Greetings, and thanks for reading issue 28 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.

Announcements

  • 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'

This section covers activity on Haskell'.

Discussion

  • Non-trivial markup transformations. Further on last week's article on encoding markup in Haskell, Oleg Kiselyov demonstrates non-trivial transformations of marked-up data, markup transformations by successive rewriting (aka, `higher-order tags') and the easy definition of new tags.

  • Popular libraries and tools. John Hughes posted (and here) some interesting figures on the most important libraries and tools, based on the results of his survey of users earlier this year.

  • haskell-prime fun. Just for fun, Ross Paterson posted, some thought-provoking statistics on haskell-prime traffic.

  • New collections package. Jean-Philippe Bernardy hinted that his new collections package is almost done.

  • Is notMember not member? John Meacham sparked a bit of a discussion on whether negated boolean functions are useful with a patch adding Data.Set and Data.Map.notMember.

  • Namespace games. In a similar vein, Don Stewart triggered discussion on how to sort the hierarchical namespace, when proposing alternatives to the longish Text.ParserCombinators module name.

Darcs Corner

  • Darcs-server. Unsatisified with the current techniques for centralised development with darcs, Daan Leijen went ahead and wrote darcs-server. With darcs-server you can:

    • push changes remotely via a CGI script
    • or push changes via a single SSH account that serves many users
    • use cryptographic verification and authorization of users for reading and writing
    • use gpg encryption (for CGI)
    • use non-public repositories that can only be accessed by authorized users.

  • darcsweb 0.15, by Alberto Bertogli, has been released.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: March 06, 2006

Submitted by dons on Mon, 03/06/2006 - 8:37pm.

Haskell Weekly News: March 06, 2006

Greetings, and thanks for reading issue 27 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.

Announcements

  • 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.

Haskell'

This section covers activity on Haskell'.

Discussion

  • Library Reorganisation. Simon Marlow opened up a discussion on library reorganisation, in the light of the oncoming Haskell'.

  • Deprecating FunctorM. Ross Paterson proposes to replace FunctorM with Data.Traversable.

  • cabal-setup. Simon Marlow posted a patch to wrap the Setup.hs Cabal script with a generic cabal-setup interface.

Code Watch

  • Make -split-objs work with --make.

    Thu Mar  2 09:05:05 PST 2006  Simon Marlow
      * Make -split-objs work with --make
    
      This turned out to be a lot easier than I thought.  Just moving a few
      bits of -split-objs support from the build system into the compiler
      was enough.  The only thing that Cabal needs to do in order to support
      -split-objs now is to pass the names of the split objects rather than
      the monolithic ones to 'ar'.
    

Quotes of the Week

[OConnor's Law]
roconnor :: As an online discussion of static types vs dynamic types grows longer, the 
            probability of mentioning heterogenous lists approaches 1.
[Lemmih's Law]
Lemmih :: Every 18 months, compilers will make their warnings and error messages twice as cryptic
Claus Reinke :: The point about overlapping instances is that they shouldn't.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: February 27, 2006

Submitted by dons on Sun, 02/26/2006 - 8:35pm.

Haskell Weekly News: February 27, 2006

Greetings, and thanks for reading issue 26 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.

A fairly quiet week this week.

Announcements

  • 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.

Haskell'

This section covers activity on Haskell' this week.

Darcs Corner

  • darcsweb 0.15-rc1. Alberto Bertogli announced that a new version of darcsweb is available.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: February 20, 2006

Submitted by dons on Sun, 02/19/2006 - 10:04pm.

Haskell Weekly News: February 20, 2006

Greetings, and thanks for reading issue 25 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.

Announcements

  • 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.

Haskell'

This section covers activity on Haskell' this week.

Discussion

  • Commerical Use of Haskell. Seth Kurtzberg mentioned on the #haskell irc channel that he was in the process of deploying a commercial application written in Haskell onto a production line in Taiwan. The particular application stress tests hardware performance and stability.

    Seth writes:

    Once the compiler finally does what I think I'm telling it, the programs almost always work the first time, which is really amazing. With any substantial effort in C or C++, you are going to have hidden problems traceable to type errors.

    Recently, the thing that I was most pleased with was how quickly I was able to refactor the hardware stress testing code into network performance testing code.

  • RFC: Class-based collections. Jean-Philippe Bernardy released an rfc for his initial work on a class-based collections framework. The main goal is to have something usable right now, making use of generally available haskell extensions for maximum usability/portability ratio (or rather product).

Darcs Corner

  • darcs 1.0.6. Tommy Pettersson announced that the initial release candidate for Darcs 1.0.6 is available. It contains important bug fixes, some noticeable changes, and, of course, new features.

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 http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: February 13, 2006

Submitted by dons on Mon, 02/13/2006 - 9:27pm.

Haskell Weekly News: February 13, 2006

Greetings, and thanks for reading issue 24 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.

Announcements

  • FFI Imports Packaging Utility. Dimitry Golubovsky announced 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.

Haskell'

This section covers activity on Haskell' this week.

Discussion

  • Generic catch in a MonadIO. Oleg Kiselyov forked an interesting discussion, with code, on formulating a generic catch function.
  • RFC: Streams. Bulat Ziganshin posted a request for feedback on the interface of a new Streams library CharEncoding transformers.
  • RFC: Time Library 0.3. Ashley Yakely announced the third draft of a replacement for the standard time library.

  • Eliminating Multiple-Array Bound Checking through Non-dependent Types . Oleg also writes on writing code with non-trivial static guarantees in the present-day Haskell (i.e., Haskell98 + rank-2 types). He describes how to eliminate array bounds checking when processing several arrays at a time. The number of arrays to process is not statically known. Furthermore, the arrays may have different sizes and bounds -- potentially, empty and non-overlapping too. Excellent stuff.

  • Haskell #1 in Great Language Shootout. As of Friday Haskell is ranked overall 1st on the Great Language Shootout, and 2nd fastest. Thanks to the following people (in alphabetical order) who've contributed code and ideas (and apologies if I've missed any one!): Aaron, Alson, Bertram, Bjorn, Branimir, Brian, Bryn, Cale, Chris, David, Don, Einar, Greg, Iavor, Jan-Willem, Jean-Philippe, Jeff, Joel, Johannes, Josh, Ketil, Kimberly, Lemmih, Matthias, Mirko, Sebastian, Simon and Udo.

Code Watch

  • Command line completion.

    Mon Feb  6 04:26:54 PST 2006  Simon Marlow
    
        * Basic completion in GHCi
    
        This patch adds completion support to GHCi when readline is being
        used.  Completion of identifiers (in scope only, but including
        qualified identifiers) in expressions is provided.  Also, completion
        of commands (:cmd), and special completion for certain commands
        (eg. module names for the :module command) are also provided.
  • 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 http://www.cse.unsw.edu.au/~dons/code/hwn

    Haskell Weekly News: February 06, 2006

    Submitted by dons on Mon, 02/06/2006 - 11:35pm.

    Haskell Weekly News: February 06, 2006

    Greetings, and thanks for reading issue 23 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.

    Announcements and New Code

    • 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.

    • Bang patterns. Strictify yourself up! As seen here, GHC now implements bang patterns:

          Fri Feb  3 09:51:08 PST 2006  simonpj
            * Add bang patterns
             
            This commit adds bang-patterns,
                  enabled by -fglasgow-exts or -fbang-patterns
                  disabled by -fno-bang-patterns
      

    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 http://www.cse.unsw.edu.au/~dons/code/hwn

    Haskell Weekly News: January 30, 2006

    Submitted by dons on Mon, 01/30/2006 - 9:55pm.

    Haskell Weekly News: January 30, 2006

    Greetings, and thanks for reading the 22nd issue of HWN, a weekly newsletter for the Haskell community. Each Monday, new editions are posted to the Haskell mailing list and to The Haskell Sequence. RSS is also available.

    New Releases

    • 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.

    Haskell'

    This section covers activity on Haskell' this week. The topics this week have been diverse. Next week we'll try to cover activity on the wiki as well. From the mailing list:

    Discussion

    Darcs Corner

      Darcs is popular. Isaac Jones brought to our attention the results of the Debian package popularity contest. For the first time a program written in Haskell is more popular than the Haskell toolchain itself. Congratulations to the darcs developers!

    Quote of the Week

    <araujo> Haskell is bad, it makes you hate other programming languages.

    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 http://www.cse.unsw.edu.au/~dons/code/hwn