
On Tue, 2005-07-05 at 17:08 +0100, Simon Marlow wrote:
Thanks, downloading it now.. will try. What exactly is a 'registered' build?
An "unregisterised" build generates plain C which is compiled with a C compiler. The term "registerised" refers to a set of optimisations which require post-processing the assembly generated by the C compiler using a Perl script (affectionately known as the Evil Mangler). In particular, registerised code does real tail-calls and uses real machine registers to store the Hsakell stack and heap pointers.
Ah! So 'register' refers to machine registers .. not some certification by some kind of authority, which is what I guessed .. ?
Sure, it's good to look at these small benchmarks to improve aspects of our compilers, but we should never claim that results on microbenchmarks are in any way an indicator of performance on programs that people actually write.
One can also argue that 'programmer performance' is important, not just machine performance.
The shootout has lots of good benchmarks, for sure.
I'm not so sure ;(
Don't restrict yourself to the small programs, though.
Of course, larger more complex programs may give interesting performance results, but have one significant drawback: a lot more work is required to write them.
It's still hard to get a big picture from the results - there are too many variables. I believe many of the Haskell programs in the suite can go several times faster with the right tweaks, and using the right libraries (such as a decent PackedString library).
Maybe I'm asking the wrong question. Can you think of a computation which you believe Haskell would be the best at? .. and while you're at it: a computation GHC does NOT handle well -- IMHO these are actually most useful to compiler writers. -- John Skaller <skaller at users dot sourceforge dot net> Download Felix: http://felix.sf.net