Haskell Weekly News

Haskell Weekly News: October 18, 2005

Submitted by jgoerzen on Tue, 10/18/2005 - 12:15pm.

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

  • Decimal arithmetic library. Jeremy Shaw announced the "premature release" of his new Decimal arithmetic library, which is designed for cases where binary floating point is not acceptable, such as money.
  • JRegex. John Meacham announced JRegex, a library that interfaces to both PCRE and Posix regular expressions.
  • Haskell XML Toolbox 5.3. Uwe Schmidt announced version 5.3 of the Haskell XML Toolbox. The main changes in this release are improvements to the arrow system.

Requests for Participation

Future Haskell Standard. Isaac Jones posted a request for participation in the formation of the next standardized version of Haskell.

HCAR Clarification. Last week's HWN story on the Haskell Communities & Activities Report (HCAR) had some misleading wording. Participation in this report is open to all, and submissions are encouraged from everyone.

Discussion

Haskell mentioned on Slashdot. Haskell was mention on Slashdot. The post was refering to an article about optimizing development for fun and had pugs as its example.

ZLib bindings. Joel Reymont asked about code for handling GZip files. Henning Thielemann suggested the code in Darcs. Malcom Wallace pointed out code in qforeign, and John Goerzen mentioned the pure-Haskell implementation in MissingH.

GADTs. Bulat Ziganshin began a discussion asking for resources on GADTs. Several people posted links to helpful resources.

Class aliases. John Meacham began a long discussion by proposing class aliases, a language extension to solve problems of multiple implementations of the same concept in different libraries.

About Haskell Weekly News

Thanks to Josef Svenningsson for contributing material towards this week's HWN.

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: October 11, 2005

Submitted by jgoerzen on Tue, 10/11/2005 - 5:42am.

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

  • PAM 1.0. Henning Guenther announced version 1.0 of his bindings to the PAM authentication libary.
  • cpphs 1.0. Malcolm Wallace announced the release of cpphs version 1.0.
  • MissingH 0.12.0. John Goerzen announced MissingH 0.12.0, which added various enhancements to its binary I/O utilities.

Calls for Participation

  • Haskell Communities & Activities Report. Andres Loeh posted a call for contributions to the periodic report. Anyone that's part of a Haskell team, has published Haskell code, written Haskell-related papers or books, etc. is encouraged to submit a short entry about their activities.

Discussion

Papers from the 2005 Haskell Workship. Dimitry Golubovsky noted that papers from the workshop on the ACM site required a login to read. Simon Marlow posted a free link to the papers he co-authored.

IRC for spreading information. John Goerzen wrote about some concerns regarding using IRC for spreading information to the Haskell community, such as happened recently. It received some discussion on #haskell.

Reducing memory usage. Young Hyun began an interesting thread about tracking down mysterious cases of high RAM usage. Several people made suggestions for things to try, including things that would be useful to others.

Memoization. Gerd M wondered why Data.Map was slower than he expected in his program.

Monad Syntax. Tom Hawkins asked about the syntax "| m -> s" in class declarations. Several people explained that this has to do with functional dependencies, an extension to Haskell 98.

Alternatives to hs-plugins. John Goerzen posted a scenario in which hs-plugins would be useful, but where concerns about its portability may render it inappropriate. Nils Anders Danielsson replied with a link to his code that can call Hugs to dynamically evaluate Haskell snippets.

Haskell Toolchain

Converting fptools to Darcs. Simon Marlow wrote about his ideas for converting fptools from CVS to Darcs. Several people made suggestions and asked questions.

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: October 4, 2005

Submitted by jgoerzen on Tue, 10/04/2005 - 8:27am.

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

  • The Monad.Reader, Issue 5. Shae Matijs Erisson announced the release of the fifth issue of The Monad.Reader, the online magazine devoted to Haskell. Subjects in this issue include a short introduction to Haskell, generating polyominoes, a ray tracer, number parameterized types, practical graph manipulation, and a short introduction to software testing in Haskell. TMR is available online.

Discussion

Quiet or Busy? It's been a quiet week on the Haskell lists, so this week's HWN is a bit sparse. But that's because many Haskellers were at the Haskell workshops at ICFP in Estonia. I expect we'll see some fallout from those workshops on the list in the coming week.

Haskell workshop items. Over on the IRC channel logs from September 30, there was a live conversation beginning at 15:36:33 of the "Future of Haskell discussion." Autrijus Tang's journal had several pages of entries, including one providing a nice summary.

Endian conversion. Joel Reymont asked about converting binary data in a network protocol, and several suggestions were posted in the resulting discussion.

Is putChar strict? John Meacham asked this question, and pointed out that different Haskell compilers/interpreters are behaving in different ways.

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: September 27, 2005

Submitted by jgoerzen on Wed, 09/28/2005 - 5:50am.

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

  • GHC 6.4.1 for MacOS X. Wolfgang Thaller announced the availability of a binary GHC 6.4.1 package for MacOS X.
  • ghc-api 0.1.0. Lemmih announced ghc-api, a cabalization of the GHC 6.5 API. It is currently used by hIDE.

Discussion

Haskell Team Winns ICFP! Congratulations to Wolfgang Thaller's team for winning the ICFP 2005 programming contest! According to the ICFP homepage, "First prize goes to KiebererAndXiaoTou. The judges are happy to proclaim that Haskell is the programming tool of choice for discriminating hackers." This is the second year in a row in which a team using Haskell has taken first place in this contest.

The Combat-Tanteidan team (Takayuki Muranushi and Hideyuki Tanaka), also using Haskell, took third place in this year's ICFP.

In addition, on page 68 of the presentation slides, you can see that Haskell was the top-performing language at the contest overall. The author wrote, "The clear fact that stands out here is that Haskell is the language of choice for the programming contest. Haskell stands out a little bit in the first round, but it clearly stands out in the twist. So, kudos to the Haskell community for both producing a language that lets people build re-usable code and instilling this as a value in their community!"

Unfortunately, the names of all team members were not documented, so I was not able to list the real names for this story. Thanks to Don Stewart for sending me information about this.

Haskell-style proof tools. Robin Green asked about proof tools, and the resulting thread contained several suggestions.

Trapped by Monads. In this thread, the infamous IO monad was discussed, along with a number of comparisons to Forth.

Quote of the Week

Haskell is the programming tool of choice for discriminating hackers. -- ICFP 2005 judges

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: September 20, 2005

Submitted by jgoerzen on Tue, 09/20/2005 - 5:23am.

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

  • GHC 6.4.1. According to Simon Marlow's announcement, GHC 6.4.1 is out and is mainly a bugfix release. No library APIs have changed, so code working with GHC 6.4 should continue to work.
  • Visual Haskell 0.0. Simon Marlow announced Visual Haskell 0.0, a Haskell development environment for the Microsoft Visual Studio platform.

Discussion

Autrijus Tang interviewed at perl.com. Autrijus Tang is a Perl hacker and developer of the first working Perl 6 interpreter, which is written in Haskell. On Page 2 of an interview on perl.com, he explained Haskell in glowing terms to the Perl audience. Favorite quote: "Haskell . . . is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP." Thanks to metaperl for mentioning this on the Haskell Sequence. There was als a small thread about this.

Overloading (==). In an interesting thread, Tom Hawkins asked if it was possible to overload (==) to return something other than a Bool. The answer was no, but the discussion led to comments about using typeclasses instead of a simple Bool type in certain situations.

Haskell vs. Lisp. This discussion began with a post from Mark Carter, who is considering Haskell and wondering what advantages it might have over Lisp. Many perspectives were discussed, especially relating to metaprogramming (Lisp macros and Template Haskell). David F. Place had an interesting post. As someone with experience with both Haskell and Lisp, he commented that Haskell's "lazy evaluation eliminates 99% of the need for macros in Lisp." There were also posts by Tomasz Zielonka, Cale Gibbard were also insightful.

Network Parsing and Parsec. John Goerzen posed a question about using Parsec to parse network streams such as IMAP, where the results of the parsing itself determine how much data should be read, and reading too much data results in deadlock. Some solutions offered included a separate tokenizer phase and the use of the Parsec state to help.

Haskell Toolchain

The Big News this week is, of course, the new release of GHC. A big thanks to everyone on the GHC team for this.

Cabal du jour. Cabal keeps coming up on the libraries list. This week's discussion revolves around whether or not a --package-db option is wise.

Quotes of the Week

"Learning Haskell requires some brain rewiring, so the best way to learn it is by coding something in it for real. Yuval, a fellow "lambdacamel," learned Haskell from scratch by coding up a Forth parser, interpreter, and runtime all within a few days." -- Autrijus Tang

Corrections

Two typos in last week's HWN. In the web applications story, "S. Alexander Jacobsen" should have been "S. Alexander Jacobson". In the binary pasrser combinators story, "Malcolm Wallac" should have been "Malcolm Wallace". Sorry about that.

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: September 13, 2005

Submitted by jgoerzen on Wed, 09/14/2005 - 6:29am.

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

  • CabalFind 0.1. Dimitry Golubovsky announced CabalFind 0.1, an interface to search engines such as Google and Yahoo designed to help find Cabalized packages out on the Internet.
  • gtk2hs with Cairo. Duncan Coutts announced a special release of gtk2hs as a "tech preview" of the included Cairo bindings. Some impressive screenshots are in there as well.
  • OOHaskell. Ralf Laemmel and Olaf Kiselyov announced a new version of their paper, "Haskell's overlooked object system" and its accompanying library.
  • StringMap. Adrian Hey announced his new module, Data.StringMap, which provides mapes from String keys to arbitrary values.
  • AVL 2.3. Adrian Hey announced version 2.3 of his Data.Tree.AVL library, adding a few new features and a bit of renaming.

Discussion

Why is HWN a day late this week? Your HWN editor was stuck in some large airports that had a surprising lack of Wifi. Sigh.

Binary parser combinators. Einar Karttunen asked about a binary parser combinator interface for network protocol parsing. Malcolm Wallac pointed out that nhc98 has a Binary library with a "<<" operator that could be useful.

Windows programming in Haskell. Brian McQueen asked about Windows programming in Haskell, including access to the Windows registry, APIs, and communicating with other Windows apps. Several suggestions relating to Hugs were offered, including .NET support and some libraries.

Functional vs. Imperative. Dhaemon began an interesting discussion by asking for some help understanding functional vs. imperative approaches. Several people commented on the IO monad, and how it is still a functional interface even though it may appear imperative at first glance.

Mixing monadic and non-monadic functions. A long thread on this subject appeared in the Haskell list this week. Rather too long to summarize here -- take a look at the link.

Language workbenches. Yoel Jacobsen wrote about an article on language workbenches, in which configuration files are actually valid code in a general-purpose language. Yoel went on to ask about doing this in Haskell. Some suggestions, such as hs-plugins, were offered.

Types in Template Haskell. Gracjan Polak posted about some trouble with typing in Template Haskell. Several responses regarding quoting types were posted, including a reference to Simon Marlow's "update" paper.

Web applications. Gary began a large discussion by asking about writing Web applications. Several options were mentioned, including Wash and HAppS. S. Alexander Jacobsen mentioned that he will be launching a commercial chat service using Haskell and AJAX with HAppS as the underlying core.

Calling Haskell from C++. Felix Breuer wrote about some trouble calling into Haskell from C++ programs. Several suggestions were provided, mostly relating to C++ name mangling.

What gets profiled? Niels began a discussion on the use of profiling features by commenting that profiling didn't seem to show the problem in his own code. Several suggestions regarding memory use and possible reasons that profilers might miss things were provided.

Haskell Toolchain

GHC 6.4.1. Simon Marlow posted an update on GHC 6.4.1. Though more bug reports have been rolling in while he was away, only a few are blockers for 6.4.1. The tentative release date is September 19.

Data.Monoid. Ross Paterson proposed replacing an instance of Data.Monoid. There was some discussion about whether the old or new instance was better.

Quotes of the Week

<poetix> "Oh, a monad...that's just a funny name for a particular sort of arrow" <mcnster> Chocolate Frosted Monads, new from Cadbury <mcnster> ... "All the sugar, twice the arrows" <mcnster> Mr. Tweedsmuir, we're going to have to bypass your left ventrical monad. You'll probably never play Chopin again <poetix> Readers of the ABC Warriors strip in 2000AD may remember The Monad as the concentrated essence of human evil <mcnster> Monadocet. Because category theory should be understood by everyone.

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: September 6, 2005

Submitted by jgoerzen on Tue, 09/06/2005 - 6:02am.

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

  • h4sh 0.2. Donald Bruce Stewart announced version 0.2 of h4sh, a tool to expose Haskell functions to shell scripters. This release adds more functions, removed argument flags, cabalized the package, added regex operators, and had some other changes as well.
  • cabal-get/put beta. Isaac Jones announced the beta of cabal-get, which will download and install Haskell packages and their dependencies. It is designed to work for any cabal-compatible package. The cabal-get team is looking for beta testers to try out both cabal-get and cabal-put.

Discussion

Emacs haskell-mode. Frederik Eaton began a thread on the Emacs haskell-mode, asking where the latest version is available from.

Time limits on computations. Dmitry Vyal asked how to set a time limit on computations. Several different suggestions were presented over the course of the discussion.

Haskell Toolchain

The Haskell CVS server, previously hosted at OGI, is now being hosted by Galois. There is a new machine and updated software, but it should be a drop-in replacement overall.

Darcs Corner

Darcs 1.0.4pre3 and pre4. Two new Darcs prerelease versions happened this week. First, 1.0.4pre3 was announced this week. 1.0.4pre4 quickly followed, correcting an error in a Makefile. This is expected to be the last prerelease prior to 1.0.4 itself.

Quote of the Week

"When I read through a Haskell program, it's more like reading a novel than solving a calculus problem." -- post on the Haskell Sequence

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: August 30, 2005

Submitted by jgoerzen on Wed, 08/31/2005 - 6:43am.

Greetings, and thanks for reading the fifth 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.

HWN is 1 day late this week. Pesky Real Life (TM) interfered. Sorry about that. Hopefully this won't happen again. Also, anyone that wants to help edit HWN is welcome to do so. See the contributing section at the end.

New Releases

  • FUSE bindings. David Roundy announced bindings for FUSE, the Linux library that lets people develop a filesystem using userspace code. Isaac Jones also mentioned Jeremy Bobbio's FUSE bindings.
  • FastPackedString (FPS) packaging. Donald Bruce Stewart has extraced the FastPackedString module from darcs and produced a standalone package. It is useful for working with binary data and blocks of string data.
  • Haskell Server Pages (HASP). Lemmih announced Haskell Server Pages 0.3, an infrastructure for developing dynamic web sites. It's based around XML and the earlier work on HSP.
  • Cairo bindings for gtk2hs completed. Paolo Martini announced that the Cairo bindings have been checked into the gtk2hs CVS repo on SourceForge.

Discussion

Parsing Binary Files. Joel Reymont began an interesting discussion by asking about using Haskell to implement a parser for a binary poker protocol. Erlang has some binary pattern matching features, and there was some discussion about achieving similar results in Haskell.

Using STArray. Alistair Bayley asked how to use STArray to improve the performance of a program. Numerous suggestions were offered in the ensuing discusion, including a link to some examples on the Haskell wiki.

Compiling Windows GUI Executables. Juan Carlos Arevalo Baeza asked about compiling Windows GUI executables with ghc. Duncan Coutts posted a link to the Gtk2Hs FAQ explaining the procedure.

Quotes of the Week

<xerox> <bitwize> Then Edsger Dijkstra came down from Mt. Sinai with a tablet proclaiming "Thou shalt not use GOTO; it is considered harmful"...

From Chad Scherror on the haskell-cafe list: "I've been amazed at the level of effort put forth by the Haskell community as a whole to help out newcomers."

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: August 23, 2005

Submitted by jgoerzen on Tue, 08/23/2005 - 5:32am.

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

  • ghc-src 0.2.0. Lemmih announced ghc-src. ghc-src is a Haskell parser with full support for every GHC extension. It is based on the GHC source and is meant as a replacement for haskell-src-exts, though it could of course have other ueses. ghc-src is available via a Darcs repository.
  • Cairo binding. Not a formal release, but great progress is being made on the binding to the Cairo vector graphics toolkit, including some working code.

Discussion

Category theory monads. Cale Gibbard began a discussion comparing the monads from category theory with the implementation of monads in Haskell. Michael Vanier suggested some of Phil Wadler's papers on monads. Michael went on to say that Haskell monads are very similar to those from category theory.

More on FFI and callbacks. The thread on FFI and callbacks was revived this week. Among other things, Duncan Coutts noted that there is no easy way to do a really correct binding to wxWidgets from Haskell when Haskell programs are multithreaded, due to limitations in Haskell's threading model.

Oracle on Haskell. Brian Strand asked about using Oracle on Haskell, and more generally, about the suitability of Haskell for database programming. Alistair Bayley mentioned that takusen has Oracle support. John Goerzen suggested using HSQL's ODBC support, with unixODBC on *nix platforms. He went on to say that HSQL has been used in production environments. Krasimir Angelov, author of HSQL, added that he's been wanting to add Oracle support to HSQL for awhile. Finally, Brian Strand later followed up and said that takusen has been working well for him so far.

Pros and cons of static typing. Keean Schupke revived an earlier discussion about the pros and cons of static typing and side effects.

Static typing and interactivity. On a similar note, Ketil Malde wrote about not being able to load modules with type errors into ghci. Bernard Pope suggested the type debugger in Chameleon.

Argument ordering. A thread about the order of arguments to functions entertained many different viewpoints this week. Too many to really summarize here.

Decoupling and encapsulation. Terrence Brannon wrote about decoupling program elements from presentation, as in HTML generators. He included a link to his document describing architectural flaws in Perl's HTML::Mason.

Future of The Monad.Reader. Shae Erisson wrote on #haskell today that he is looking for someone to either take over, or help with, editing The Monad.Reader, Haskell's monthly online magazine. Anyone that would like to help should contact him.

How is HWN material found? I've received some questions this week about how I find material for HWN. The most obvious way is if someone sends it to me; see the link at the bottom of each HWN for contribution information. Other than that, I read the main Haskell mailing lists, the Haskell Sequence, and IRC looking for things to write about. I prefer to have stories linked in at least one of these places before covering them in HWN, since it gives readers a convenient place to follow discussion.

Haskell Toolchain

Cabal design. Frederik Eaton started another discussion about Cabal, this time focusing on run time vs. configure time issues, the usage of custom package.conf files, and multiple cabal files in one package. Isaac Jones commented on most of those items. Duncan Coutts suggested the ability to register a package "in place".

Darcs Corner

Colordiff. Dmitriy Morozov asked about using colordiff with darcs. Timo Savola suggested a shell function to accomplish this.

Linus and git. Juliusz Chroboczek posted a link to a discussion about Git, and mentioned that it looks like they're re-inventing some Darcs features.

Success with trac. Pedro Melo posted about his success using trac (a SourceForge-like system) with Darcs.

Quotes of the Week

Seen on #haskell today...

<tuomov> define drug <Itkovian> anything that gets you addicted to <Itkovian> potentially <Itkovian> and that messes with yr senses <Lemmih> Haskell?

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: August 16, 2005

Submitted by jgoerzen on Tue, 08/16/2005 - 5:43am.

Haskell Weekly News: August 16, 2005

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

  • gtk2hs 0.9.9. Axel Simon announced the latest version of this binding to GTK, primarily containing bugfixes.
  • h4sh. Donald Bruce Stewart announced the new Haskell for shell scripts package. It exposes the Haskell Data.List library for use in shell scripting.
  • c2hs 0.14.3. Manuel M. T. Chakravarty released version 0.14.3 of c2hs. Improvements over 0.14.1 include support for cross-compilation, gcc's asm construct, better support for hierarchical module syntax, and new name translation functions.
  • magic-haskell. John Goerzen announced the availability of magic-haskell, a binding to C's libmagic. With it, you can determine the type of a file by looking at its contents rather than its name.
  • AVL 2.2. Adrian Hey released AVL 2.2. It introduces new set manipulation functions, a new type of zipper, and optimizations for functions that don't modify a tree.

Discussion

HWN format changes this week. Based on reader feedback, the New Releases section has been moved to the top of HWN. Please let me know what you think. Before you ask, the Darcs and Quotes of the Week sections are missing because there was no news for them this week.

Static typing. Minh Thu started a discussion about the pros and cons of static typing and side effects.

Language version pragmas. Bulat Ziganshin proposed a way to specify what language version and options are used in Haskell sources.

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.