[Haskell] Haskell Weekly News: September 27, 2006

Donald Bruce Stewart dons at cse.unsw.edu.au
Wed Sep 27 02:51:31 EDT 2006


---------------------------------------------------------------------------
Haskell Weekly News
http://haskell.org/haskellwiki/HWN
Issue 42 - September 27, 2006
---------------------------------------------------------------------------

   Welcome to issue 42 of HWN, a weekly newsletter covering developments
   in the Haskell community. Each week, new editions are posted to [1]the
   Haskell mailing list as well as to [2]the Haskell Sequence and
   [3]Planet Haskell. [4]RSS is also available, and headlines appear on
   [5]haskell.org.

   This week we see a new Hugs release, and the results of the ICFP
   contest are out! We feature a special report on the Commercial Users
   of Functional Programming workshop, courtesy of John Hughes

   1. http://www.haskell.org/mailman/listinfo/haskell
   2. http://sequence.complete.org/
   3. http://planet.haskell.org/
   4. http://sequence.complete.org/node/feed
   5. http://haskell.org/

Announcements

     * ICFP Contest Results. CMU's Principles of Programming Group
       [6]announced the results of this year's [7]ICFP programming
       contest. Congratulations to the winning team from Google, 'Team
       Smartass', (Christopher Hendrie, Derek Kisman, Ambrose Feinstein
       and Daniel Wright), who used Haskell along with C++, Bash and
       Python. Haskell has now been used by the winning team three years
       running! An honourable mention to team Lazy Bottoms, another
       Haskell team, who managed to crack several of the puzzles first.
       Five teams from the [8]#haskell IRC channel were [9]placed in the
       top 50. A video stream of the results announcement is
       [10]available, shot and cut by Malcolm Wallace. Many thanks to the
       [11]CMU team for organising such a great contest!

   6. http://icfpcontest.org/
   7. http://icfp06.cs.uchicago.edu/
   8. http://haskell.org/haskellwiki/IRC_channel
   9. http://icfpcontest.org/scoreboard.shtml
  10. http://video.google.com/videoplay?docid=6419094369756184531
  11. http://www.cs.cmu.edu/afs/cs/Web/Groups/pop/pop.html

     * New release of Hugs. Ross Paterson [12]announced a new minor
       release of Hugs, fixing a few bugs with the May 2006 release, and
       with libraries roughly matching the forthcoming GHC 6.6 release.
       It is available from [13]the Hugs page.

  12. http://article.gmane.org/gmane.comp.lang.haskell.hugs.user/493/
  13. http://www.haskell.org/hugs/

     * HAppS version 0.8.2. Einar Karttunen [14]announced the release of
       the Haskell Application Server version 0.8.2. HAppS is a Haskell
       web application server for building industrial strength internet
       applications safely, quickly, and easily. With HAppS you focus
       entirely on application functionality implemented in your
       favourite language and you don't have to worry about making sure
       all sorts of server subsystems are functioning properly. [15]More
       info.

  14. http://article.gmane.org/gmane.comp.lang.haskell.general/14292/
  15. http://happs.org/

     * Codec.Compression.GZip and .BZip. Duncan Coutts [16]released two
       new packages: zlib and bzlib, which provide functions for
       compression and decompression in the gzip and bzip2 formats,
       directly on [17]ByteStrings. Both provide pure functions on
       streams of data represented by lazy ByteStrings. This makes it
       easy to use either in memory or with disk or network IO. There is
       API documentation is available [18]here and [19]here.

  16. http://article.gmane.org/gmane.comp.lang.haskell.general/14265/
  17. http://www.cse.unsw.edu.au/~dons/fps.html
  18. http://haskell.org/~duncan/zlib/docs
  19. http://haskell.org/~duncan/bzlib/docs

     * System Fc branch merged into GHC. Manuel Chakravarty [20]merged
       the [21]System Fc branch of GHC into GHC head. This is a
       significant development, adding extensions to GHC to support an
       [22]FC-based intermediate language, a new implementation of GADTs,
       along with indexed data types and indexed newtypes (generalised
       [23]associated data types). [24]More details about the
       implementation.

  20. http://article.gmane.org/gmane.comp.lang.haskell.cvs.all/28297/
  21. http://www.cse.unsw.edu.au/~chak/papers/SCP06.html
  22. http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes
  23. http://www.cse.unsw.edu.au/~chak/papers/CKPM05.html
  24. http://hackage.haskell.org/trac/ghc/wiki/TypeFunctions

     * Job writing security software in Haskell. Andrew Pimlott
       [25]announced that Planning Systems, Inc. has a job opportunity
       for Haskell programmers, writing a high-assurance authorization
       system. [26]Job description.

  25. http://article.gmane.org/gmane.comp.lang.haskell.cafe/15439/
  26. http://www.plansys.com/careers/job_details.cfm?JobID=28

     * Dr Haskell 0.1. Neil Mitchell [27]released Dr Haskell, a tool to
       help suggest improvements to your Haskell code. Dr Haskell will
       analyse your code, and suggest shorter alternatives for rewriting.
       [28]More details.

  27. http://article.gmane.org/gmane.comp.lang.haskell.general/14285/
  28. http://www-users.cs.york.ac.uk/~ndm/projects/drhaskell.php

     * BitSyntax for Haskell. Adam Langley [29]released a [30]bit syntax
       library for Haskell, based on Erlang's [31]bit syntax (great for
       building and breaking up binary structures). Nice!

  29. http://article.gmane.org/gmane.comp.lang.haskell.general/14287/
  30. http://www.imperialviolet.org/binary/bitsyntax/
  31. http://www.erlang.org/doc/doc-5.4.12/doc/programming_examples/bit_syntax.html

     * File fuzzing. Tim Newsham [32]made available FileH, a Haskell tool
       for generating test data via random file mutation. [33]More
       details.

  32. http://article.gmane.org/gmane.comp.lang.haskell.cafe/15386/
  33. http://www.isecpartners.com/file_fuzzers.html

     * A DSL for state machines. Stephane Bortzmeyer [34]announced a
       Haskell implementation of a proposal to the IETF to standardize
       [35]a language used for finite state machines (which are common in
       IETF standards). The reference implementation is [36]available.

  34. http://article.gmane.org/gmane.comp.lang.haskell.cafe/15116/
  35. http://www.cosmogol.fr/
  36. http://www.cosmogol.fr/shadok.html

     * A language tag parser. Stephane Bortzmeyer announced
       [37]GaBuZoMeu, a set of programs to parse and check [38]language
       tags (see RFC 4646 produced by the IETF Working Group LTRU -
       Language Tag Registry Update).

  37. http://www.bortzmeyer.org/gabuzomeu-parsing-language-tags.html
  38. http://www.iana.org/assignments/language-subtag-registry

Haskell'

   This section covers the [39]Haskell' standardisation process.

     * [40]'Here' documents

  39. http://hackage.haskell.org/trac/haskell-prime
  40. http://thread.gmane.org/gmane.comp.lang.haskell.prime/1658/focus=1658

Conference roundup

   The [41]Commercial Users of Functional Programming workshop (CUFP),
   held in association with [42]ICFP, attracted a record turn-out this
   year. 57 attendees came to listen to 9 speakers talk about commercial
   uses of Scheme, Erlang, Reflect, OCaml, and Haskell. Four of the
   speakers talked about applications of Haskell.

  41. http://www.galois.com/cufp/
  42. http://www.cs.luc.edu/icfp/

     * Linspire in Haskell. Clifford Beshers talked about the adoption of
       Haskell at [43]Linspire. Linspire switched recently from OCaml to
       Haskell, citing readability, classes, the IO monad, and more
       complete libraries as reasons. So far CGI scripts and a package
       autobuilder have been implemented in Haskell. Static typing, and
       the use of purely functional data structures on disk, have helped
       make for reliable code. Performance has been generally good,
       although Parsec parsers proved to be slow on larger files--a
       problem that was solved using Data.ByteString. Space leaks have
       not been a problem, perhaps because frequent IO keeps programs
       strict. Belying the myth that functional programmers are hard to
       recruit, Linspire's announcement that they were adopting Haskell
       generated several resumes, despite explicitly stating that they
       were not recruiting.

  43. http://www.linspire.com/

     * Haskell programming at Credit Suisse. Howard Mansell talked about
       Haskell programming at [44]Credit Suisse in New York. This group's
       business is derivative trading for clients. Valuing complex
       derivatives is computationally costly, requiring nightly runs on
       thousands of CPUs. There is a real competitive advantage in being
       able to build models quickly, since some exotic derivatives may
       only be traded 10-100 times in total. Previously models were built
       using Excel, with heavy computations delegated to C++ plugins.
       Most of the Excel code has now been replaced by Haskell, with
       Excel just providing the user interface (which in turn is
       generated by DSELs). The work has been done by [45]Lennart
       Augustsson and [46]Gabriele Keller, but Credit Suisse needs more
       Haskell programmers -- they're hiring.

  44. http://www.credit-suisse.com/
  45. http://www.cs.chalmers.se/~augustss/
  46. http://www.cse.unsw.edu.au/~keller

     * Hardware design at Bluespec Inc.. Rishiyur Nikhil talked about
       [47]Bluespec Inc, which offers System Verilog tools implemented in
       about 90K loc of Haskell. Bluespec's tools are based on MIT
       research in the 90s into generating hardware from term rewriting
       systems; using Bluespec's 'rules' complex hardware can be
       described at a high level, improving productivity and reducing
       errors. Selling the tools based on Haskell requires short, punchy
       examples to convince old hands that there is a better way than
       writing RTL by hand. Bluespec have started sales, and many more
       trials are under way.

  47. http://www.bluespec.com/

     * Aetion, AI and Haskell. Garret Morris talked about Haskell
       applications at [48]Aetion, which is a defence contractor offering
       AI applications based on Bayesian nets. Rapidly changing
       priorities make it important to minimize the code impact of
       changes, which suits Haskell well. Aetion have developed three
       main projects in Haskell, all successful. Haskell's concise code
       was perhaps most important for rewriting: it made it practicable
       to throw away old code occasionally. DSELs allowed the AI to be
       specified very declaratively. Less successful was the decision to
       link Haskell to a GUI in Java: the need to serialize data made it
       impossible to use functions as representations, which was
       unfortunate. Other issues included getting libraries to work
       together, patchy Windows support, and a need for more debugging
       tools.

  48. http://www.aetion.com/

Discussion

     * Curious Functor class. Ashley Yakeley [49]described the curious
       class of functors for which foralls can move across.

  49. http://article.gmane.org/gmane.comp.lang.haskell.cafe/15447/

     * Variadic functions and typeCast. Michael Shulman [50]submitted a
       general version of the trick to implement variadic functions in
       Haskell [51]outlined by Oleg

  50. http://article.gmane.org/gmane.comp.lang.haskell.cafe/15401/
  51. http://okmij.org/ftp/Haskell/vararg-fn.lhs

     * Serialising existential types. Misha Aizatulin [52]pondered the
       interesting problem of serialisation of datatypes with existential
       constructors. Several options were suggested.

  52. http://thread.gmane.org/gmane.comp.lang.haskell.general/14260/focus=14260

     * Replacing GMP. Peter Tanski [53]updated the [54]page relating to
       portably replacing GMP in GHC (and other Haskell systems)

  53. http://article.gmane.org/gmane.comp.lang.haskell.glasgow.user/10746
  54. http://hackage.haskell.org/trac/ghc/wiki/ReplacingGMPNotes

Blog noise

   Haskell news from the blogosphere.

     * [55]Lambda abstractions to be added to C++
     * [56]Haskell in Ruby: a Ruby Prelude
     * [57]Google Research announcement of their ICFP teams' results
     * [58]Some analysis of previous ICFP contest results
     * [59]Simple unix tools in Haskell
     * [60]Bazaar vs Darcs
     * [61]CVS vs Darcs
     * [62]Adventures in Open Source Erlang
     * [63]Is functional programming going mainstream?

  55. http://www.regdeveloper.co.uk/2006/09/22/cplusplus-lambda-future/
  56. http://cwilliams.textdriven.com/articles/2006/08/29/haskell-in-ruby
  57. http://googleresearch.blogspot.com/2006/09/and-awards-go-to.html
  58. http://blog.interlinked.org/programming/icfp.html
  59. http://haskell.org/haskellwiki/Simple_unix_tools
  60. http://www.kdedevelopers.org/node/2024
  61. http://mark.stosberg.com/Tech/darcs/cvs_switch/easier.html
  62. http://yarivsblog.com/articles/2006/09/01/oo-fp-erlang-and-me
  63. http://ifacethoughts.net/2006/09/25/is-functional-programming-going-mainstream/

Quotes of the Week

     * Clifford Beshers : "When we code in Haskell, we go home on time"

     * Bulat : "There is new Time library, which is supposed to replace
       old System.Time. We hope that it will happen before 2038"

     * edwardk : "I should probably just type up the problem
       specification in Haskell and click compile. Funny how that seems
       to yield the answer"

     * vincenz : "OCaml used to be pretty, Haskell made it ugly"

     * glguy : "I remember what class I was in when I was reading Hudak's
       book and discovered `fix'. Life altering..."

     * glguy :     "> take 10 $ map length $ fix (([()]:).scanl (++) [()])"
     * lambdabot : "[1,1,2,3,5,8,13,21,34,55]"

     * agentzh : "Haskell is really a powerful weapon"

     * gaal : "You know you've been reading lots of Haskell papers
       when... someone says '(bbiab, $job)' and you try mentally to run
       :t on that"

     * audreyt : "Pugs seems to be just my excuse to apply each and every
       technique from the GHC changelogs..."

     * Pseudonym : "[OlegFacts] Oleg solves N P-hard problems in N log N
       time... in the type system"

     * dons : "[On improving Cabal dependency handling] fps 0.8 is an
       exemplary instance of part number fps 0.8. Interestingly, this one
       is lavender. Also, it is broken: it is (a fps 0.8 missing a base 1.0)."

     * Mark Bessey : "When really massively-parallel systems start to
       become more common, the programming model will have to change.
       What languages you'll likely use to program these beasts is an
       interesting question - most likely, it'll be a functional
       language, something like Haskell, or Erlang."

     * Philippa : "[vincenz] Forget theory, it's about pragmatics
       [Philippa] we're talking FP, they tend to be the same thing"

Contributing to HWN

   To help create new editions of this newsletter, please see the
   [64]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

  64. http://haskell.org/haskellwiki/HWN


More information about the Haskell mailing list