General News

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

    Haskell Weekly News: January 23, 2006

    Submitted by dons on Sun, 01/22/2006 - 10:19pm.

    Haskell Weekly News: January 23, 2006

    Greetings, and thanks for reading the 21th 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

    • Haskell'

      This week Isaac Jones announced that the Haskell' standardisation process is underway. Haskell' will be a conservative refinement of Haskell 98:

      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:

      Please join us in making Haskell' a success.

    Resources and Tools

    • Cabal. Isaac Jones announced some changes to Cabal, including new changes to the `hooks' interface. Feedback is encouraged. Secondly, a move is underway to build an exhaustive list of all Cabalised packages. Add a link if you have something! Isaac is asking people to re-send any Cabal bug reports or feature requests yet to be addressed. Report them on the Cabal Wiki & Bug Tracker
    • Darcs switchover GHC has switched to darcs. The era of CVS is at an end:
      From: Simon Marlow
      Subject: TAG final switch to darcs, this repo is now live
      
      Fri Jan 20 05:46:30 PST 2006  Simon Marlow  microsoft.com>
        tagged final switch to darcs, this repo is now live

    Discussion

    • IO Regions. Oleg Kiselyov describes a simple implementation of monadic regions. The technique provides static guarantees that neither a file handle nor any computation involving the handle can leak outside of the region that created it. The technique has no runtime overhead and induces no runtime errors. For some background, John Launchbury and Simon Peyton Jones's 94 paper Lazy Functional State Threads is useful.
    • Lexically scoped type variables. Simon Peyton-Jones released a proposal to change the way in which lexically-scoped typed variables work in GHC, as part of a revision to make type inference for GADTs simpler and more uniform.
    • Providing an alternative to GMP. Esa Ilari Vuokko began a discussion on modifying the GHC runtime and build system to support alternative arbtirary precision arithmetic libraries, other than the GPL'd GMP.
    • Arrays interfaces. (clarification) The Haskell'98 library report contains only basic Array implementation. The Hierarchical Libraries, shipped with modern versions of GHC, Hugs and NHC, includes much richer arrays library. Bulat Ziganshin started a wiki page describing how to use these new array interfaces.

    Papers

    This is a new HWN section collecting paper or article abstracts on Haskell-related topics. If you have submitted a new Haskell paper, send your abstract to HWN, and the abstract will appear in the next issue.

    • Ralf Lämmel. Book review, "The Haskell Road to Logic, Maths and Programming" by Kees Doets and Jan van Eijck. To appear in JoLLI journal; 13 pages. http://www.cs.vu.nl/~ralf/JoLLI06.
      The "Haskell road" is an excellent book worth considering as course material and reading anyhow. A non-Haskell road is also discussed in the review.

    • Ralf Lämmel. "Google's MapReduce Programming Model -- Revisited" Draft; To be submitted; feedback appreciated; 27 pages. http://www.cs.vu.nl/~ralf/MapReduce.
      The seminal MapReduce paper had been briefly discussed at LTU without really going into technical details. The present paper discovers the concepts from a functional programming perspective. Did you ever wonder why MapReduce is called MapReduce?

    Darcs Corner

    • Darcs Blogging. Zooko wrote an interesting blog entry on the PR issues darcs has, and on the various activities undertaken by the darcs developers.

    Quote of the Week

        <monochrom> monadic regions? sounds neat.
        <monochrom> "monadic ___" sounds neat :)
        <dons> forall a. Monad a => Neat a

    Contributing to HWN

    Thanks to Bulat Ziganshin and Isaac Jones for contributing material to this edition of 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 16, 2006

    Submitted by dons on Sun, 01/15/2006 - 6:30pm.

    Haskell Weekly News: January 16, 2006

    Greetings, and thanks for reading the 20th 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

    • 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

    Resources and Tools

    • Haskell Performance Resources. Simon Marlow opened up a wiki page to collect the community wisdom on writing high performance Haskell code. This is particularly relevant given the discussions regarding the language shootout recently, with many interesting techniques proposed.

    Discussion

    • Arrays. Bulat Ziganshin wrote an interesting RFC on the various Haskell array interfaces.
    • Functional Java. Graham Klyne alerted us to FunctionalJ, an open source library for functional programming in Java. This might be useful to those unfortunates trapped on the JVM. Additionally, Bjorn Bringert mentioned a similar library, Higher-Order Java (HOJ), he wrote a few years ago.
    • Data structures. Duncan Coutts was looking for an efficient data structure to implement a sequence data type with indexed insert/delete/lookup.
    • Language Shootout, continued. Many entries have been improved on the Computer Language Shootout, and after several years of complaints that micro-benchmarks are meaningless, and that the tests are biased against purely functional languages, it's great to see that Haskell is now ranked 2nd overall.

    Darcs Corner

    • darcsweb 0.14. Alberto Bertogli released darcsweb 0.14.

    Quotes of the Week

         <palomer> grr, sml can't derive Ord
         <palomer> sml is a pain to use sometimes
         <palomer> but sometimes it's a joy!
         <palomer> ugh, I take it back, it's a pain
    

    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 9, 2006

    Submitted by dons on Sun, 01/08/2006 - 9:18pm.

    Haskell Weekly News: January 9, 2006

    Greetings, and thanks for reading the 19th 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

    • A Faster Binary. Bulat Ziganshin posted a preliminary optimised Binary library, achieving excellent (de)serialization speeds of around 50 Mb/s in testing.

    Resources and Tools

    • Haskell mail. Simon Peyton-Jones has put together a complete archive of the Haskell mailing list since its birth in Sept 1990 until Oct 2000 -- the date where the current mailman archive takes over. This is a valuable resource for the community.
    • haskell.org. John Peterson is seeking comments on the haskell.org move to MediaWiki. Currently only the front page is finished, and its time for comments. In the end this will allow anyone to come in and fix up the main haskell.org pages - the people, the projects, the help for beginners, all of it. One job that will be needed is to move the current hawiki contents onto MediaWiki. Feel free to start adding stuff to the new haskellwiki.

    Discussion

    • Language Shootout. Discussion took place on on haskell-cafe to improve the performance of the Haskell entries. This process has greatly improved some entries. Haskell is now the fastest entry for the concurrency benchmark, Chameneos. More can still be done. Some entries are being worked on here. The problems are quite short, and fairly easy to solve, so fire up the profiler and hack!
    • MonadZero. Cale Gibbard opened a discussion about reinclusion of MonadZero, and removal of `fail' from the Monad class, citing the overuse of monadic typing to indicate the possibility of failure as one of the problems. Instead, MonadZero should be used for failure. References were made to the discussions that took place on this issue during the Haskell 98 process.
    • History channel. On a similar theme, an expedition took place on #haskell into functions and classes from earlier implementations of Haskell that had disappeared by Haskell 98. Of particular interest was the Eval class, and various things in the constructor class prelude from Gofer, such as:
      class (Functor f, Functor g) => NatTransf f g where
          eta :: f a -> g a
      and fun definitions like:
      undefined :: a
      undefined | False = undefined
      

    Darcs Corner

    A darcs gui. Eric Kow proposed resurrecting the darcs wxhaskell gui for a new darcs gui.

    Quote of the Week

    * autrijus stares at 
      type Eval x = forall r. ContT r (ReaderT x IO) (ReaderT x IO x) 
      and feels very lost
    <shapr> Didn't you write that code?
    <autrijus> yeah. and it works
    <autrijus> I just don't know what it means.
    

    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 3, 2006

    Submitted by dons on Mon, 01/02/2006 - 9:43pm.

    Haskell Weekly News: January 3, 2005

    Greetings, and thanks for reading the 18th issue of HWN, a weekly newsletter for the Haskell community. Each Monday, new editions will be posted (as text) to the Haskell mailing list and (as HTML) to The Haskell Sequence.

    This issue brings a change to the Haskell Weekly News as Don Stewart takes over from John Goerzen as editor. Thanks goes to John for his excellent work on the first 17 editions!

    New Releases

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

    Discussion

    • Making Haskell More Open. Simon Peyton-Jones reinitiated a discussion on how to make Haskell more open, and in particular how to make it easier for Haskell users to contribute.
    • The Unboxed Kind. Ashley Yakeley asked about creating type variables with unboxed kind. This lead to an interesting discussion about the difficulties that result, including the problems of polymorphic functions over unboxed values.

    Haskell Toolchain

    Fptools in Darcs. John Goerzen has set up live darcs mirrors of fptools, ready for testing. With over 13,000 patches in fptools, you'll want to use --partial.

    Darcs Corner

    • Darcs 1.0.5. A stable release of Darcs 1.0.5 was made. This release includes fixes for Windows, as well as some new features.
    • darcsweb. Alberto Bertogli announced darcsweb 0.13, a rather lovely web interface to darcs repositories.

    Quotes of the Week

        <sieni> State?
        <sieni> There is no state :-)
        <shapr> Haskell separates Church and state.
        

    About Haskell Weekly News

    Want to continue reading 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: November 29, 2005

    Submitted by jgoerzen on Tue, 11/29/2005 - 6:13am.

    Greetings, and thanks for reading the 17th issue of HWN, a weekly newsletter for the Haskell community. Each Tuesday, new editions will be posted (as text) to the Haskell mailing list and (as HTML) to The Haskell Sequence.

    Discussion

    Monads in other languages. A very interesting thread covering availability of monads for other programming languages.

    Haskell in higher education. John Hughes posted a survey aimed at those teaching Haskell in higher education.

    GHC 6.6 progress. Jim Apple mentioned the wiki page on GHC 6.6.

    GHC targetting Java. John Goerzen asked about the apparent support for a Java target in the GHC source tree. Simon Peyton-Jones noted that it is no longer supported.

    Darcs Corner

    P2P repositories. There was a lot of discussion on the Darcs lists about using a P2P network for storing Darcs information.

    About Haskell Weekly News

    Want to continue reading HWN? Please help us create new editions of this newsletter. Please see the contributing information, or send stories to hwn -at- complete -dot- org. There is also a Darcs repository available.

    Haskell Weekly News: November 22, 2005

    Submitted by jgoerzen on Tue, 11/22/2005 - 6:26am.

    Greetings, and thanks for reading the 16th issue of HWN, a weekly newsletter for the Haskell community. Each Tuesday, new editions will be posted (as text) to the Haskell mailing list and (as HTML) to The Haskell Sequence.

    New Releases

    There are several exciting releases to report this week.

    • hmp3. Donald Bruce Stewart announced hmp3, an ncurses-based music player written in Haskell.
    • Frag. Mon Hon Cheong announced Frag, a first-person shooter written in Haskell using HOpenGL. Several comments were posted offering thanks and seeking more information. Screenshots are also available.
    • Haskell Communities & Activities Report. The November 2005 editition of this report is now available.
    • Haskell Server Pages 0.4.0. The latest release of HASP is now available, featuring a new bytecode generator and less of a need for many other add-on packages.
    • Blobs diagram editor. The first release of Blobs was announced this week. It is based on earlier work that has been shown at some Haskell conferences.

    Requests for Participation

    Take 10 list. Kenneth Hoste posted a request for user contributions regarding a top 10 list of Haskell libraries.

    Discussion

    Updating Haskell. It's been a busy week for these discussions. There have been threads on records (~ 200 messages) and GHC. Unfortunately your HWN editor hasn't had time to read these monster threads, so have at it!

    About Haskell Weekly News

    Want to continue reading HWN? Please help us create new editions of this newsletter. Please see the contributing information, or send stories to hwn -at- complete -dot- org. There is also a Darcs repository available.

    Haskell Weekly News: November 15, 2005

    Submitted by jgoerzen on Fri, 11/18/2005 - 6:28am.

    Greetings, and thanks for reading the 15th issue of HWN, a weekly newsletter for the Haskell community. Each Tuesday, new editions will be posted (as text) to the Haskell mailing list and (as HTML) to The Haskell Sequence.

    New Releases

    • York Haskell Compiler. Thomas Davie announced the York Haskell Compiler project, which already has working code. Quite a few people chimed in with questions.

    Discussion

    Making Haskell more open. Simon Peyton-Jones began a long thread with some ideas about making Haskell more open to the wider community. The thread is too long to completely summarize here, and branched out in several directions, including a discussion of the haskell.org homepage.

    Haskell users survey. John Hughes wrote about a web-based survey about Haskell. He is encouraging everyone with an interest in Haskell to participate.

    Darcs Corner

    Darcs 1.0.4 was released this week. There are quite a few performance improvements, a new posthook option, manifest feature, new "darcs put" command, more git support, and various bugfixes.

    Quote of the Week

    "Impossible things are delayed immediately. Miracles may take a little longer." -- Claus Reinke on haskell-cafe.

    About Haskell Weekly News

    Yes, it's late again. But, while I am no Zaphod Beeblebrox, carry no towel, have no Improbability Drive, and certainly couldn't have come up with 42 on my own, if Douglas Adams' "Hitchhiker's Guide to the Universe" series can still be called a trilogy, then HWN can still be called weekly :-)

    Want to continue reading HWN? Please help us create new editions of this newsletter. Please see the contributing information, or send stories to hwn -at- complete -dot- org. There is also a Darcs repository available.