[Haskell-cafe] Climbing up the shootout...

Don Stewart dons at galois.com
Mon Sep 22 19:12:37 EDT 2008


bulat.ziganshin:
> Hello Donnie,
> 
> Tuesday, September 23, 2008, 2:53:17 AM, you wrote:
> 
> > i mean that naive haskell code is very slow and 3 or 5 or twelve libs
> >  can't solve the problem of ghc generating slow code
> 
> > I'm fairly new to Haskell and the Haskell community, but I can say
> > from my experience of hacking on GHC, the GHC team of developers are
> > very interested in performance improvements, e.g. this thread is
> > about performance!  So Bulat, why don't you hack on GHC yourself and
> > help improve the compiler?  Or suggest detailed improvements since
> > you seem capable of citing specific examples?
> 
> for the same reason i don't feed 5000 men with 7 breads - it's not my
> business ;)

Ok. So I'll just say: high level, efficient code is an overriding theme
of many individuals working on Haskell. Things are better and better
each year. We do not stand still.

For example, Bulat cites a paper talking about naive list code from
2002, however, by 2008 we know how to do fusion on lists, so it runs in
the same time as low level loops, the technique is implemented and you
can download it from hackage,

    http://hackage.haskell.org/cgi-bin/hackage-scripts/package/stream-fusion

Simon Marlow is busy adding more efficient GC and parallelism to GHC,
and there's a summer project to rewrite the native code generator. 
GHC gained pointer tagging in the last release cycle, dramatically
reducing the cost of algebraic data types.

At the same time, we're writing books about how to program "naively" in
Haskell, such that your code doesn't suck. That is: training. Teaching
people how to write Haskell.

We can see it paying off, where naive code performs very very well,

    http://shootout.alioth.debian.org/gp4/benchmark.php?test=sumcol&lang=all

And lots and lots more people able to write good code for Hackage.

I find Bulat's outlook rather bleak, and I think it is time to update
expectations.

Progress is beautiful.

-- Don


More information about the Haskell-Cafe mailing list