[Haskell-cafe] Re: GHC predictability

Achim Schneider barsoap at web.de
Tue May 13 12:13:29 EDT 2008


"Darrin Thompson" <darrinth at gmail.com> wrote:

> On Tue, May 13, 2008 at 2:20 AM, Don Stewart <dons at galois.com> wrote:
> >  Note the use of strict pairs. Key to ensuring  the accumulators
> > end up in registers.    The performance difference here is due to
> > fold (and all left folds) not fusing in normal build/foldr fusion.
> >
> >  The vector version runs about the same speed as unoptimsed C.
> >
> 
> These "tricks" going into Real World Haskell? When you say someone
> needs to get familiar with the "STG paper" it scares me (a beginner)
> off a little, an I've been making an effort to approach the papers. I
> could barely understand the Fusion one and getting familiar with
> compiler internals sounds like something I'd not be ready for.
> Probably if I really looked at ghc-core I'd be pleasantly surprised
> but I'm totally biased against even looking. Gcc is hard to read, thus
> ghc is also. So while you are right about all this when you say it, I
> think your goal is to persuade. RWH has some of the best practical
> prose I've read yet. Well done there. Hopefully chapter 26 will be
> crammed full of this stuff?
> 
You know, sometimes I wish this would be the Eve forums, so that I
could just answer "FAIL".

Anyway, the goal of the Haskell community is to prevent success at any
cost, so anything that is done to ease things for noobs that is not
purely meant to prevent anyone from asking questions will be warded off
by automatic defence systems of the big ivory tower, which are
reinforced faster than you can ever hope to understand any topic.


To get a bit more on-topic: I currently completely fail to implement a
layout rule in Parsec because I don't understand its inner workings,
and thus constantly mess up my state. Parsec's ease of usage is
deceiving as soon as you use more than combinators: Suddenly the
plumbing becomes important, and hackage is full of such things. Haskell
has potentially infinite learning curves, and each one of them
usually represents a wall. To make them crumble, you have to get used to
not understand anything until you understand everything.

-- 
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
signature prohibited. 



More information about the Haskell-Cafe mailing list