simonpj at microsoft.com
Fri Mar 5 09:26:37 EST 2004
To be honest I have totally paged that code out. I cvs log doesn't show
the "massive perf bug" entry for either of the modules we specify,
though I do vaguely remember something.
My memory is that it shouldn't matter which way round you associate <>
and <+>, but I could well be wrong about that.
If anyone wants to dive in, please go ahead! (I don't think I'm likely
I do have somewhere a half-written paper about the internals of the
HughesPJ library. Adding the 'empty' document and <+> were entirely
non-trivial, and made my head hurt badly. Alas, I never finished the
paper, but I'll hunt if someone wants it.
| -----Original Message-----
| From: libraries-bounces at haskell.org
[mailto:libraries-bounces at haskell.org] On Behalf Of Ian Lynagh
| Sent: 04 March 2004 00:46
| To: libraries at haskell.org
| Subject: Text.PrettyPrint.HughesPJ fixities
| Text.PrettyPrint.HughesPJ (the same applies to
| ghc/compiler/utils/Pretty.lhs) contains
| infixl 6 <>
| infixl 6 <+>
| infixl 5 $$, $+$
| whereas my intuition says that infixr will give more efficient
| implementation. Is my intuition wrong? It seems to be supported by the
| definitions of hcat, hsep, vcat being defined in terms of foldr.
| We on #haskell are also confused by the changelog entry starting
| "Cured massive performance bug." and ending
| "I'm not satisfied that I've done the best possible job. I'll send
| the code if you are interested.".
| It looks to me like the change was made and the original mail about
| problem appended without being reread?
| Libraries mailing list
| Libraries at haskell.org
More information about the Libraries