- 05 Sep, 2007 3 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
simonpj@microsoft.com authored
This patch does a fairly major clean-up of the code that implements 'deriving. * The big changes are in TcDeriv, which is dramatically cleaned up. In particular, there is a clear split into a) inference of instance contexts for deriving clauses b) generation of the derived code, given a context Step (a) is skipped for standalone instance decls, which have an explicitly provided context. * The handling of "taggery", which is cooperative between TcDeriv and TcGenDeriv, is cleaned up a lot * I have added documentation for standalone deriving (which was previously wrong). * The Haskell report is vague on exactly when a deriving clause should succeed. Prodded by Conal I have loosened the rules slightly, thereyb making drv015 work again, and documented the rules in the user manual. I believe this patch validates ok (once I've update the test suite) and can go into the 6.8 branch.
-
- 29 Aug, 2007 1 commit
-
-
simonpj@microsoft.com authored
-
- 05 Sep, 2007 6 commits
-
-
Ben.Lippmeier@anu.edu.au authored
trivColorable was soaking up total 31% time, 41% alloc when compiling SHA1.lhs with -O2 -fregs-graph on x86. Refactoring to use unboxed accumulators and walk directly over the UniqFM holding the set of conflicts reduces this to 17% time, 6% alloc.
-
nr@eecs.harvard.edu authored
The type parameter to a C-- procedure now represents a control-flow graph, not a single instruction. The newtype ListGraph preserves the current representation while enabling other representations and a sensible way of prettyprinting. Except for a few changes in the prettyprinter the new compiler binary should be bit-for-bit identical to the old.
-
nr@eecs.harvard.edu authored
-
Simon Marlow authored
-
Simon Marlow authored
In fact hs-boot files had nothing to do with it: the problem was that GHCi would forget the breakpoint information for a module that had been reloaded but not recompiled. It's amazing that we never noticed this before. The ModBreaks were in the ModDetails, which was the wrong place. When we avoid recompiling a module, ModDetails is regenerated from ModIface by typecheckIface, and at that point it has no idea what the ModBreaks should be, so typecheckIface made it empty. The right place for the ModBreaks to go is with the Linkable, which is retained when compilation is avoided. So now I've placed the ModBreaks in with the CompiledByteCode, which also makes it clear that only byte-code modules have breakpoints. This fixes break022/break023
-
Simon Marlow authored
Two problems here: find needs to dereference symbolic links (-L option, I really hope that's portable), and we need to notice when aclocal.m4 is updated. Somehow I think this was easier when it just always ran autoreconf... what was wrong with that?
-
- 04 Sep, 2007 4 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 05 Sep, 2007 2 commits
-
-
Simon Marlow authored
-
Ben.Lippmeier@anu.edu.au authored
-
- 03 Sep, 2007 1 commit
-
-
Ben.Lippmeier@anu.edu.au authored
Avoid coalescing nodes in the register conflict graph if the new node will not be trivially colorable. Also remove the front end aggressive coalescing pass. For typical Haskell code the graph coloring allocator now does about as well as the linear allocator. For code with a large amount of register pressure it does much better, but takes longer. For SHA1.lhs from darcs on x86 spills reloads reg-reg-moves inserted inserted left in code compile-time linear 1068 1311 229 7.69(s) graph 387 902 340 16.12(s)
-
- 05 Sep, 2007 1 commit
-
-
rl@cse.unsw.edu.au authored
On OS X 10.4 and newer, we have to use dlsym because the old NS* interface has been deprecated. The patch checks for HAVE_DLFCN_H instead of switching on the OS version. There is one additional quirk: although OS X prefixes global symbols with an underscore, dlsym expects its argument NOT to have a leading underscore. As a hack, we simply strip it off in lookupSymbol. Something a bit more elaborate might be cleaner.
-
- 04 Sep, 2007 2 commits
-
-
TomSchrijvers authored
-
TomSchrijvers authored
Previously failed to account for equational class context for wanted dictionary contraints, e.g. wanted C a in class a ~ Int => C a instance C Int should give rise to wanted a ~ Int and consequently discharge a ~ Int by unifying a with Int and then discharge C Int with the instance. All ancestor equalities are taken into account.
-
- 05 Sep, 2007 2 commits
-
-
Ian Lynagh authored
We then set datarootdir to something else later on so that things still work when configure doesn't set it.
-
chak@cse.unsw.edu.au. authored
-
- 04 Sep, 2007 8 commits
-
-
sven.panne@aedion.de authored
Formerly, the ghc-pkg was called to get the HTML dirs for other packages, but of course doing this at *build* time is totally wrong. Now we use a relative path, just like before. This is probably not perfect, but much better than before. As a sidenote: Cabal calls the relevant flag "html-location", ghc-pkg calls the field "haddock-html", and Haddock itself uses it as part of "read-interface". Too much creativity is sometimes a bad thing...
-
Simon Marlow authored
This applies to EnterCriticalSection and LeaveCriticalSection in the RTS
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Simon Marlow authored
-
Simon Marlow authored
-
chak@cse.unsw.edu.au. authored
- This fixes the first part of #1651; ie, the panic in ghci.
-
- 03 Sep, 2007 9 commits
-
-
chak@cse.unsw.edu.au. authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
-
Ian Lynagh authored
Patch from Audrey Tang.
-
Simon Marlow authored
-
Simon Marlow authored
-
Ben.Lippmeier@anu.edu.au authored
-
Ben.Lippmeier@anu.edu.au authored
Conservative and iterative coalescing come next.
-
- 28 Aug, 2007 1 commit
-
-
Ben.Lippmeier@anu.edu.au authored
-