
New patches:

[Fix freeHaskellFunctionPtr for Darwin/i386
Aaron Tomb <atomb@galois.com>**20071029202636] {
hunk ./rts/Adjustor.c 1032
-#elif defined(x86_HOST_ARCH) && defined(darwin_HOST_OS)
+#elif defined(i386_HOST_ARCH) && defined(darwin_HOST_OS)
}

Context:

[Fix build with GHC < 6.4
Ian Lynagh <igloo@earth.li>**20071029183155] 
[Set interfacedir (using $topdir, not $httptopdir)
Ian Lynagh <igloo@earth.li>**20071029174825] 
[Teach ghc-pkg about $httptopdir
Ian Lynagh <igloo@earth.li>**20071029161130] 
[Fill in holes in the release notes
Ian Lynagh <igloo@earth.li>**20071028225253] 
[installPackage needs to treat $httptopdir the same as $topdir
Ian Lynagh <igloo@earth.li>**20071028134534] 
[Define and use $httptopdir for the haddock docs locations
Ian Lynagh <igloo@earth.li>**20071028123552] 
[We need to copy .buildinfo files into the bindists
Ian Lynagh <igloo@earth.li>**20071028131752] 
[Fix imports
Ian Lynagh <igloo@earth.li>**20071027231844] 
[Fix the build with GHC < 6.4 (foldl1' didn't exist)
Ian Lynagh <igloo@earth.li>**20071027210526] 
[MERGED: Comments only
Ian Lynagh <igloo@earth.li>**20071027170004
 Sat Oct 27 08:46:42 PDT 2007  simonpj@microsoft.com
] 
[Make 'improvement' work properly in TcSimplify
simonpj@microsoft.com**20071027155459
 
 	(Please merge this, and the preceding 
 	handful from me to the 6.8 branch.)
 
 This patch fixes a serious problem in the type checker, whereby
 TcSimplify was going into a loop because it thought improvement
 had taken place, but actually the unificataion was actually deferred.
 
 We thereby fix Trac #1781, #1783, #1795, and #1797!
 
 In fixing this I found what a mess TcSimplify.reduceContext is! 
 We need to fix this.
 
 The main idea is to replace the "improvement flag" in Avails with
 a simpler and more direct test: have any of the mutable type variables
 in the (zonked) 'given' or 'irred' constraints been filled in?
 This test uses the new function TcMType.isFilledMetaTyVar; the test
 itself is towards the end of reduceContext.
 
 I fixed a variety of other infelicities too, and left some ToDos.
 
 
] 
[An implication constraint can abstract over EqInsts
simonpj@microsoft.com**20071027155433] 
[In an AbsBinds, the 'dicts' can include EqInsts
simonpj@microsoft.com**20071027154903
 
 An AbsBinds abstrats over evidence, and the evidence can be both
 Dicts (class constraints, implicit parameters) and EqInsts (equality
 constraints).  So we need to
   - use varType rather than idType
   - use instToVar rather than instToId
   - use zonkDictBndr rather than zonkIdBndr in zonking
 
 It actually all worked before, but gave warnings.
 
 
] 
[More notes
simonpj@microsoft.com**20071027154702] 
[Add anyM to IOEnv
simonpj@microsoft.com**20071027154551] 
[Add a note to NOTES
simonpj@microsoft.com**20071027100220] 
[Adding hpc documentation about sum and map, push to STABLE.
andy@unsafeperformio.com**20071025050341] 
[Fixing typo in runtime documentation for hpc, push to stable
andy@unsafeperformio.com**20071025045456] 
[default to installing runhaskell and hsc2hs again, but provide knobs to turn them off
Simon Marlow <simonmar@microsoft.com>**20071025084222] 
[Fix a whole heap of speling errrs in the docs
Josef Svenningsson <josef.svenningsson@gmail.com>**20071007213858] 
[We need to install-docs when making the Windows bindist
Ian Lynagh <igloo@earth.li>**20071027144333] 
[We need to set _way=* in rts/ both when making and installing bindists
Ian Lynagh <igloo@earth.li>**20071027142914
 This is a hack, but it means we get libHSrts*.a etc rather than just
 libHSrts.a.
] 
[arrows is no longer an extralib
Ian Lynagh <igloo@earth.li>**20071027123656] 
[Only build/install the man page if XSLTPROC is defined
Ian Lynagh <igloo@earth.li>**20071027122155] 
[install the Cabal docs, and make them show up in a binary distribution
Simon Marlow <simonmar@microsoft.com>**20071026122456] 
[cp => $(CP)
Simon Marlow <simonmar@microsoft.com>**20071026111054] 
[get rid of the html subdirectory under share/doc/ghc/users_guide
Simon Marlow <simonmar@microsoft.com>**20071026110919] 
[fix the links in the library documentation index
Simon Marlow <simonmar@microsoft.com>**20071025152245] 
[binary-dist: Makefile-vars needs HADDOCK_DOCS=YES
Simon Marlow <simonmar@microsoft.com>**20071025135816] 
[FIX #1791: fail with out-of-heap when allocating more than the max heap size in one go
Simon Marlow <simonmar@microsoft.com>**20071024095420
 Normally the out-of-heap check is performed post-GC, but there are
 cases where we can detect earlier that we definitely have exhausted
 the heap size limit.
] 
[patch from #1782; fixes check-packages target on Solaris
Simon Marlow <simonmar@microsoft.com>**20071022133337] 
[Refer to "boot" libs, not "core" libs
Ian Lynagh <igloo@earth.li>**20070914132658] 
[Fix more warnings
Simon Marlow <simonmar@microsoft.com>**20071023131351] 
[FIX BUILD (on 32-bit platforms): hs_hpc_module() type mismatch
Simon Marlow <simonmar@microsoft.com>**20071023082233] 
[second attempt to fix C compiler warnings with -fhpc
Simon Marlow <simonmar@microsoft.com>**20071019133243
 The hs_hpc_module() prototype in RtsExternal.h didn't match its usage:
 we were passing StgWord-sized parameters but the prototype used C
 ints.  I think it accidentally worked because we only ever passed
 constants that got promoted.  The constants unfortunately were
 sometimes negative, which caused the C compiler to emit warnings.
 
 I suspect PprC.pprHexVal may be wrong to emit negative constants in
 the generated C, but I'm not completely sure.  Anyway, it's easy to
 fix this in CgHpc, which is what I've done.
 
] 
[Change some ints to unsigned ints
Simon Marlow <simonmar@microsoft.com>**20071018095503
 Fixes some gratuitous warnings when compiling via C with -fhpc
] 
[Fix typo that prevented zonking of rhs of EqInsts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018131040
 
 MERGE TO STABLE
] 
[Fix ghc package in bindists; it wasn't adding the depenedency on readline
Ian Lynagh <igloo@earth.li>**20071024120633] 
[Correct a comment
Ian Lynagh <igloo@earth.li>**20071024114549] 
[Fix installing the ghc package .hi files in a bindist
Ian Lynagh <igloo@earth.li>**20071024114219] 
[Build the manpage when building, not when installing
Ian Lynagh <igloo@earth.li>**20071024112914] 
[Hack to make sure we get all the RTS ways in bindists
Ian Lynagh <igloo@earth.li>**20071024004155] 
[Fix installing the documentation in the bindists
Ian Lynagh <igloo@earth.li>**20071023234624] 
[FIX #1784: EM_AMD64 and EM_X86_64 might both be defined to the same value
Simon Marlow <simonmar@microsoft.com>**20071019110223] 
[fix -fbreak-on-exception for unregsterised
Simon Marlow <simonmar@microsoft.com>**20071018110621] 
[fix :print when !tablesNextToCode
Simon Marlow <simonmar@microsoft.com>**20071018105340] 
[fix breakpoints in unregisterised mode
Simon Marlow <simonmar@microsoft.com>**20071018101929] 
[implement #1468, :browse on its own uses the currently-loaded module
Simon Marlow <simonmar@microsoft.com>**20071019115751] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003172715] 
[FIX #1450: asynchronous exceptions are now printed by +RTS -xc
Simon Marlow <simonmar@microsoft.com>**20071018134951] 
[recordMutable: test for gen>0 before calling recordMutableCap
Simon Marlow <simonmar@microsoft.com>**20071017125657
 For some reason the C-- version of recordMutable wasn't verifying that
 the object was in an old generation before attempting to add it to the
 mutable list, and this broke maessen_hashtab.  This version of
 recordMutable is only used in unsafeThaw#.
] 
[fix warning on Windows
Simon Marlow <simonmar@microsoft.com>**20071017121645] 
[Improving the combine mode for hpc
andy@galois.com**20071014171009
 
 we now have
 Processing Coverage files:
   sum         Sum multiple .tix files in a single .tix file
   combine     Combine two .tix files in a single .tix file
   map         Map a function over a single .tix file
 
 Where sum joins many .tix files, combine joins two files (with
 extra functionality possible), and map just applied a function
 to single .tix file.
 
 These changes were improvements driven by hpc use cases.
 
 END OF DESCRIPTION***
 
 Place the long patch description above the ***END OF DESCRIPTION*** marker.
 The first line of this file will be the patch name.
 
 
 This patch contains the following changes:
 
 M ./utils/hpc/Hpc.hs -1 +3
 M ./utils/hpc/HpcCombine.hs -33 +84
 M ./utils/hpc/HpcFlags.hs -11 +59
] 
[FIX #1759 while respecting the ticks
andy@galois.com**20071015033319] 
[Don't barf on error message with non-tc tyvars
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018060336
 
 MERGE TO STABLE
] 
[Fix #1662: do not simplify constraints for vanilla pattern matches
simonpj@microsoft.com**20071016124710
 
 See Note [Arrows and patterns] in TcPat.  
 
 This fixes Trac 1662.   Test is arrows/should_compile/arrowpat.hs
 
 Please merge
 
] 
[Some more traceTcs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929121941] 
[Tell Cabal it's version number when we build it.
Duncan Coutts <duncan@haskell.org>**20071018094742] 
[First draft of 6.8.1 release notes
Ian Lynagh <igloo@earth.li>**20071016150731] 
[-ftype-families -> -XTypeFamilies
Ian Lynagh <igloo@earth.li>**20071016123010] 
[Fix #1709: do not expose the worker for a loop-breaker
simonpj@microsoft.com**20071016131840
 
 The massive 'Uni' program produced a situation in which a function that
 had a worker/wrapper split was chosen as a loop breaker.  If the worker
 is exposed in the interface file, then an importing module may go into
 an inlining loop: see comments on TidyPgm.tidyWorker.
 
 This patch fixes the inlining bug.  The code that gives rise to this
 bizarre case is still not good (it's a bunch of implication constraints
 and we are choosing a bad loop breaker) but the first thing is to fix the
 bug.
 
 It's rather hard to produce a test case!
 
 Please merge to the 6.8 branch.
 
 
 
] 
[Fix DoCon: Another try at getting extractResults right
simonpj@microsoft.com**20071012162325
 
 For some reason TcSimplify.extractResults is quite difficult to get right.
 This is another attempt; finally I think I have it.
 
 Strangely enough, it's only Sergey's DoCon program that shows up the
 bug, which manifested as a failure in the Simplifier
 
         lookupRecBndr $dGCDRing{v a1Lz} [lid]
 
 But it was due to extractResults producing multiple bindings for
 the same dictionary.
 
 Please merge this to the stable branch (after previous patches to
 TcSimplify though).
 
 
] 
[Fix Trac #1759: do not let ticks get in the way of spotting trivially-true guards
simonpj@microsoft.com**20071010164731
 
 GHC spots that an 'otherwise' guard is true, and uses that knowledge to 
 avoid reporting spurious missing-pattern or overlaps with -Wall.
 
 The HPC ticks were disguising the 'otherwise', which led to this failure.
 Now we check.  The key change is defining DsGRHSs.isTrueLHsExpr.
 
 Test is ds062
 
 
] 
[comment-out "use vars" in 3 places (see #1739)
Simon Marlow <simonmar@microsoft.com>**20071008115740] 
[Improve pretty-printing of splices in HsSyn
simonpj@microsoft.com**20071010123726] 
[we need to #include "Stg.h" first, we can't rely on GHC to inject it
Simon Marlow <simonmar@microsoft.com>**20071010153244
 This fixes the unreg build, and in general building the RTS code
 via-C. I'm not sure at what stage this was broken, but I think it
 was working accidentally before.
] 
[Fix Trac #1680; check for unboxed tuples in TcType.marshalableTyCon
simonpj@microsoft.com**20071011123426] 
[FIX BUILD (when compiling base via C): declare n_capabilities
Simon Marlow <simonmar@microsoft.com>**20071010103704] 
[MERGED: FIX #1681: withBreakAction had too large a scope in runStmt
Ian Lynagh <igloo@earth.li>**20071012151253
 Simon Marlow <simonmar@microsoft.com>**20071010085820
] 
[Update documentation for win32 DLL linking
Clemens Fruhwirth <clemens@endorphin.org>**20071010074415] 
[Fix Trac #1746: make rule-matching work properly with Cast expressions
simonpj@microsoft.com**20070929104406
 
 The Cast case of the rule-matcher was simply wrong.
 
 This patch fixes it; see Trac #1746.
 
 I also fixed the rule generation in SpecConstr to generate a wild-card
 for the cast expression, which we don't want to match on.  This makes
 the rule more widely applicable; it wasn't the cause of the bug.
 
] 
[export n_capabilities, see #1733
Simon Marlow <simonmar@microsoft.com>**20071009142701] 
[export stopTimer(), we need this in the unix package
Simon Marlow <simonmar@microsoft.com>**20070912200057] 
[FIX #1743, create a fresh unique for each Id we bind at a breakpoint
Simon Marlow <simonmar@microsoft.com>**20071009142554] 
[also acquire/release task->lock across fork()
Simon Marlow <simonmar@microsoft.com>**20070927091331
 further attempt to fix #1391 on MacOS
] 
[attempt to fix #1391, hold locks across fork() and initialize them in the child
Simon Marlow <simonmar@microsoft.com>**20070914145519] 
[also call initMutex on every task->lock, see #1391
Simon Marlow <simonmar@microsoft.com>**20071009122409] 
[error message fix (#1758)
Simon Marlow <simonmar@microsoft.com>**20071008134958] 
[FIX validate for PPC Mac OS X - RegAllocStats.hs
Thorkil Naur <naur@post11.tele.dk>**20071005144105] 
[FIX validate for PPC Mac OS X - RegAllocLinear.hs
Thorkil Naur <naur@post11.tele.dk>**20071005143607] 
[FIX validate for PPC Mac OS X - Linker.c
Thorkil Naur <naur@post11.tele.dk>**20071005144908] 
[FIX validate for PPC Mac OS X - Evac.h
Thorkil Naur <naur@post11.tele.dk>**20071005144454] 
[MERGED: FIX #1748: -main-is wasn't handling the case of a single hierarchical module
Ian Lynagh <igloo@earth.li>**20071012143757
 Simon Marlow <simonmar@microsoft.com>**20071008131305
  test case is driver062.5
] 
[FIX: add missing case to OccName.isSymOcc
David Waern <davve@dtek.chalmers.se>**20071002143459] 
[mention what SCC stands for
Simon Marlow <simonmar@microsoft.com>**20071011135736] 
[Fix Trac #1755; check for stage errors in TH quoted Names
simonpj@microsoft.com**20071010150250
 
 There are a number of situations in which you aren't allowed to use
 a quoted Name in a TH program, such as
 	\x -> 'x
 But we weren't checking for that!  Now we are.
 
 Merge to stable branch.
 
 Test is TH_qname.
 
 
] 
[Fix Trac #1678; be more careful about catching and reporting exceptions in spliced TH monadic computations
simonpj@microsoft.com**20071010145705
 
 Many of the new lines are comments to explain the slightly-convoluted
 in which exceptions get propagated out of the Q monad.
 
 This fixes Trac 1679; test is TH_runIO (as well as the exising TH_fail).
 
 Please merge
 
 
] 
[FIX: tidy up TcSimplify following equality constraints additions
simonpj@microsoft.com**20071010093334
 
 The combination of "type refinement" for GADTs and the new equality
 constraints has made TcSimplify rather complicated.  And wrong:
 it generated bogus code for cholewo-eval.
 
 This patch is still far from entirely satisfactory.  There are
 too many places where invariants are unclear, and the code is 
 still a bit of a mess.  But I believe it's better, and it passes
 the regression tests!  So I think it's good enough for the 6.8 release.
 
 Please merge.
 
 The main changes are:
 
 - get rid of extractLocalResults (which was always suspicious)
 
 - instead, treat the 'refinement' along with 'givens', by 
   adding a field to RedEnv, red_reft which travels with red_givens
 
 - I also reworked extractResults a bit, which looked wrong to me
   This entailed changing the Given constructor in Avail to take
   an Inst rather than a TcId
 
 
] 
[Comments and debug output only
simonpj@microsoft.com**20070927110842] 
[mkIfaceExports: sort the children of AvailTC
Simon Marlow <simonmar@microsoft.com>**20071002114917
 This fixes a problem with spurious recompilations: each time a module
 was recompiled, the order of the children would change, causing extra
 recompilation.
 
 MERGE TO STABLE
] 
[FIX BUILD FD_SETSIZE signed
jochemberndsen@dse.nl**20070927132649
 On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int
 for portability.
] 
[FIX BUILD addDLL returns const char*
jochemberndsen@dse.nl**20070927132619
 addDLL returns const char*, not just a char*.
 Fix compiler warning
] 
[FIX BUILD `set -o igncr'-issue on FreeBSD
jochemberndsen@dse.nl**20070926203750
 `set -o igncr' does not work on non-cygwin-systems.
 Fail silently if this command does not work, instead
 of aborting the build.
 
] 
[Change DOCOPTIONS pragma to DOC_OPTIONS
David Waern <davve@dtek.chalmers.se>**20071002143849
 
 MERGE TO STABLE
] 
[FIX: parsing of doc options
David Waern <davve@dtek.chalmers.se>**20071002143713
 
 Lexing of the doc options pragma was changed, but but no change was 
 made to the parser to reflect that. This patch fixes this problem.
 
 MERGE TO STABLE
] 
[FIX: mkWWcpr takes open alg types into account
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071002130407
 - This fixed the failures of GMapAssoc and GMapTop for optmising ways
 
 MERGE TO STABLE
] 
[FIX #1738: KPush rule of FC must take dataConEqTheta into account
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071001154343
 
 MERGE TO STABLE
] 
[FIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929122624
 
 MERGE TO STABLE
] 
[FIX: Make boxy splitters aware of type families
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070928225541
 
 MERGE TO STABLE
] 
[Finally, I managed to squash an infamous bug in :print
Pepe Iborra <mnislaih@gmail.com>**20070927151300
   
   It turns out the newtype handling code in :print
   was slipping non mutable Tyvars in the types reconstructed.
   The error message eventually produced was rather obscure:
   
   [src/Tp.hs:75:28-64] *MainTp> :p x
   *** Exception: No match in record selector Var.tcTyVarDetails
   [src/Tp.hs:75:28-64] *MainTp>
   
   Due to non mutable tyvars, unifyType was failing.
   A well placed assertion in the unifyType code would have made
    my life much easier.
   Which reminds me I should install a -ddump-* system in the 
   RTTI subsystem, or future hackers will run away in swearing.
 
 
 MERGE TO STABLE
 
] 
[Be a bit more flexible in terminal identification for do_bold
Pepe Iborra <mnislaih@gmail.com>**20070927141549
   
   In Os X for instance, by default we have TERM=xterm-color 
 
 MERGE TO STABLE
 
] 
[further stub filename fix: I managed to break non-stubdir -fvia-C compilation
Simon Marlow <simonmar@microsoft.com>**20070927102539] 
[MERGED: html_installed_root shouldn't contain $$pkgid
Ian Lynagh <igloo@earth.li>**20070927131012
 This actually didn't break anything, as the shell expanded $pkgid to the
 empty string, but it was still wrong.
] 
[esacpe backslashes in the filename in the .rc file
Simon Marlow <simonmar@microsoft.com>**20070912111658] 
[FIX -stubdir bug: the .hc file was #including the wrong _stub.h filename
Simon Marlow <simonmar@microsoft.com>**20070926134539
 Using -stubdir together with hierarchical modules, -fvia-C, and --make
 is essentially broken in 6.6.x.  Recently discovered by Cabal's use of
 -stubdir.
 
 Test cases: driver027/driver028 (I've updated them to use -fvia-C, in
 order to test for this bug).
] 
[fix #1734, panic in :show modules after load failure
Simon Marlow <simonmar@microsoft.com>**20070926100732] 
[Fixing #1340, adding HPC Documentation
andy@galois.com**20070926055331] 
[Be more specific about file-header pragmas
simonpj@microsoft.com**20070924162847
 
 Document the rules for pragmas that must occur at the top of a file.
 
 Please merge this patch
 
] 
[When haddocking, other packages are in ../$$pkgid not ../$$pkg
Ian Lynagh <igloo@earth.li>**20070923193344] 
[Unbreak "dist" target for fresh trees
sven.panne@aedion.de**20070923094358
 The previous hack to include Parser.hs in source distros broke the possibility
 of doing a "make dist" in a fresh tree, i.e. one which has just been checked
 out and configured, but *not* built. Of course you will need Happy for such a
 source distro later, but at least the freedom to do this is important.
 
 The ultimate goal should be that something like "make dist" will work in a
 freshly checked out tree, with no prerequisite steps (this is very common in
 most projects). We should move towards that goal, not away from it...
 
 
 MERGE TO STABLE
] 
[Notice when C modules have changed when deciding whether or not to link
Ian Lynagh <igloo@earth.li>**20070923181620
 Based on a patch from Lemmih
] 
[Whitespace changes only
Ian Lynagh <igloo@earth.li>**20070923174242] 
[Remove remaining bits of bindist "make in-place"
Ian Lynagh <igloo@earth.li>**20070923163640] 
[Add an entry for strings treated as ISO-8859-1 to the users guide bug list
Ian Lynagh <igloo@earth.li>**20070923131845] 
[Define and use PprTyThing.pprTypeForUser
simonpj@microsoft.com**20070911085123
 
 When printing types for the user, the interactive UI often wants to
 leave foralls implicit.  But then (as Claus points out) we need to be
 careful about name capture. For example with this source program
 
 	class C a b where
 	  op :: forall a. a -> b
 
 we were erroneously displaying the class in GHCi (with suppressed
 foralls) thus:
 
 	class C a b where
 	  op :: a -> b
 
 which is utterly wrong. 
 
 This patch fixes the problem, removes GHC.dropForAlls (which is dangerous),
 and instead supplies PprTyThing.pprTypeForUser, which does the right thing.
 
 
] 
[MERGED: Move OPTIONS pragmas above comments
Ian Lynagh <igloo@earth.li>**20070921205741] 
[Fix building with compilers which don't have an integer for a patch level
Ian Lynagh <igloo@earth.li>**20070921165316] 
[Removed duplicate entry for derbugging flag -ddump-tc from the user guide
v.dijk.bas@gmail.com**20070920121306] 
[make stamp.inplace-gcc-lib copy $(LD) instead of $(GccDir)ld.exe to avoid building problem
shelarcy <shelarcy@gmail.com>**20070920130159] 
[Overhaul of the rewrite rules
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070915074119
 - Cleaned up and simplified rules
 - Added many missing cases
 - The rules OccursCheck and swap have been eliminated and integrate with
   the other rules; ie, Subst and Unify perform the occurs check themselves
   and they can deal with left-to-right and right-to-left oriented rewrites.
   This makes the code simpler and more efficient.
 - Also added comments.
] 
[MERGED: GHCi debugger: Added a -fprint-evld-with-show flag
Ian Lynagh <igloo@earth.li>**20070920200212
 Pepe Iborra <mnislaih@gmail.com>**20070912153505
      
      The flag enables the use of Show instances in :print.
      By default they are not used anymore
] 
[Remove a redundant part of distrib/Makefile's "make install"
Ian Lynagh <igloo@earth.li>**20070920183903] 
[FIX #1677; poor error message for misspelled module declaration
Simon Marlow <simonmar@microsoft.com>**20070911085452] 
[Fix Trac #1718: interaction of error, unlifted tuples, and casts
simonpj@microsoft.com**20070920120049
 
 See Note [Float coercions (unlifted)] in Simplify
 
 Test is simpl018
 
] 
[Fix --print-docdir for relocatable builds; fixes #1226
Ian Lynagh <igloo@earth.li>**20070919140100] 
[Use $(RelocatableBuild) rather than $(Windows)
Ian Lynagh <igloo@earth.li>**20070919140037] 
[Fix exponential-time behaviour with type synonyms; rename -XPartiallyAppliedTypeSynonyms to -XLiberalTypeSynonyms
simonpj@microsoft.com**20070919171207
 
 Fixes exponential behaviour present in GHC 6.6!
 
 I renamed the flag because the old (not very old) name wasn't
 describing what it does.
 
] 
[FIX #1688: Givens in checkLoop are not that rigid after all
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070919150738
 - This patch re-instates the policy of 6.6.1 to zonk the given constraints
   in the simplifier loop.
 
 MERGE TO STABLE
] 
[FIX #1713: watch out for type families in splitAppTy functions
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070919122011
 
   MERGE TO STABLE
] 
[Make the error message mentioning -XPatternSignatures spell the flag correctly
simonpj@microsoft.com**20070919142821] 
[Hack to get haskell-src's Parser.hs into source distributions
Ian Lynagh <igloo@earth.li>**20070919194222] 
[Catch any exceptions thrown by getEnv; fixes #1704
Ian Lynagh <igloo@earth.li>**20070918215752] 
[Give Windows its own definitions of docdir (and htmldir etc)
Ian Lynagh <igloo@earth.li>**20070918201249] 
[Include build.mk or validate{,-settings}.mk through custom-settings.mk
Ian Lynagh <igloo@earth.li>**20070918200637] 
[Install extra-gcc-opts in bindists
Ian Lynagh <igloo@earth.li>**20070918194839] 
[Writing out .tix file only if you are the original process, not a child.
andy@galois.com**20070917230641
 This lets us gain coverage on programs that use fork, like xmonad.
 
 * To be merged to STABLE *
 
] 
[removing the functions hs_hpc_read and hs_hpc_write inside Hpc.c, they are dead code.
andy@galois.com**20070917230201
 
 * To be merged to STABLE. *
 
] 
[Add validate.mk to .darcs-boring
Ian Lynagh <igloo@earth.li>**20070918184509] 
[avoid platform dependencies: my_uintptr_t ==> StgWord
Simon Marlow <simonmar@microsoft.com>**20070917120156] 
[add support for EM_AMD64 elf machine type, openbsd/amd64 ghci works
Don Stewart <dons@galois.com>**20070916034845] 
[patch Linker.c for amd64/openbsd
Don Stewart <dons@galois.com>**20070916012728] 
[Merge of register allocator patches.
Ben.Lippmeier@anu.edu.au**20070918102256
 
 This is a conflict avoiding merge of several patches which finish off
 the new register allocator. After this patch all tests should go through
 with both -fregs-graph and -fregs-iterative.
 
 
 Mon Sep 17 14:26:14 BST 2007  Ben.Lippmeier@anu.edu.au
   * Tune coalescing in non-iterative register allocator
   
   If iterative coalescing isn't turned on, then do a single aggressive
   coalescing pass for the first build/color cycle and then back off to 
   conservative coalescing for subseqent passes.
   
   Aggressive coalescing is a cheap way to eliminate lots of the reg-reg
   moves, but it can make the graph less colorable - if we turn it on 
   for every pass then allocation for code with a large amount of register
   pressure (ie SHA1) doesn't converge in a sensible number of cycles.
 
 
 Mon Sep 17 13:42:41 BST 2007  Ben.Lippmeier@anu.edu.au
   * Bugfix to iterative coalescer
   
   Coalescences must be applied to the unsimplified graph in the same order 
   they were found by the iterative coalescing algorithm - otherwise
   the vreg rewrite mapping will be wrong and badness will ensue.
 
 
 Mon Sep 17 12:30:24 BST 2007  Ben.Lippmeier@anu.edu.au
   * Add -dasm-lint
   
   When -dasm-lint is turned on the register conflict graph is checked for 
   internal consistency after each build/color pass. Make sure that all 
   edges point to valid nodes, that nodes are colored differently to their
   neighbours, and if the graph is supposed to be colored, that all nodes
   actually have a color.
 
 
 Fri Sep 14 17:42:34 BST 2007  Ben.Lippmeier@anu.edu.au
   * Count CmmTops processed so far in the native code generator
   To help with debugging / nicer -ddump-asm-regalloc-stages
 
 
 Fri Sep 14 17:14:08 BST 2007  Ben.Lippmeier@anu.edu.au
   * Change spill cost function back to inverse length of live range.
   
   On further testing it turns out that using Chaitin's spill cost formula
   of counting the number of uses of a var and then dividing by the degree
   of the node isn't actually a win. Perhaps because this isn't counting 
   the number of actual spills inserted in the output code.
   
   This would be worth revisiting if other work manages to increase the 
   register pressure in the native code.
 
 
 Fri Sep 14 10:39:07 BST 2007  Ben.Lippmeier@anu.edu.au
   * Better cleaning of spills in spill cleaner
   
   Track what slots each basic block reloads from. When cleaning spill 
   instructions we can use this information to decide whether the slot 
   spilled to will ever be read from on this path.
 
 
 Thu Sep 13 16:54:07 BST 2007  Ben.Lippmeier@anu.edu.au
   * Better calculation of spill costs / selection of spill candidates.
   
   Use Chaitin's formula for calculation of spill costs.
     Cost to spill some vreg = (num writes + num reads) / degree of node
   
   With 2 extra provisos:
     1) Don't spill vregs that live for only 1 instruction.
     2) Always prefer to spill vregs that live for a number of instructions
          more than 10 times the number of vregs in that class.
   
   Proviso 2 is there to help deal with basic blocks containing very long
   live ranges - SHA1 has live ranges > 1700 instructions. We don't ever
   try to keep these long lived ranges in regs at the expense of others.
   
   Because stack slots are allocated from a global pool, and there is no
   slot coalescing yet, without this condition the allocation of SHA1 dosn't
   converge fast enough and eventually runs out of stack slots.
   
   Prior to this patch we were just choosing to spill the range with the
   longest lifetime, so we didn't bump into this particular problem.
   
] 
[Keep valgrind happy when calling timer_create
sven.panne@aedion.de**20070916111927
 Fill all of the sigevent structure with zeroes before individual fields are
 set. Although not strictly necessary, this keeps tools like valgrind from
 complaining about passing uninitialized data, which is a good thing.
 
 MERGE TO STABLE
] 
[Make DESTDIR work again
sven.panne@aedion.de**20070916084339
 installPackage is a horror, using --force is probably not the perfect way
 to make DESTDIR functionality work again, but given the current state of
 affairs, I can't find a quick and clean solution.
 
 MERGE TO STABLE
] 
[Clean stage<n>/ghc-inplace.c
Ian Lynagh <igloo@earth.li>**20070917094300] 
[MERGED: Resurrect the "lib" subdirectory in the installation tree, it was somehow lost
Ian Lynagh <igloo@earth.li>**20070917094212
 Sun Sep 16 09:41:22 BST 2007  sven.panne@aedion.de
   * Resurrect the "lib" subdirectory in the installation tree, it was somehow lost
   Having all package directory directly in the toplevel installation directory
   would be a bad thing because of potential name clashes, and it wasn't done this
   way earlier, so reinstantiate the old layout.
   
   MERGE TO STABLE
] 
[Unbreak "clean" and "distclean" targets when there is no testsuite
sven.panne@aedion.de**20070915085845] 
[distclean: extra-gcc-opts, testsuite
Simon Marlow <simonmar@microsoft.com>**20070914125444] 
[Another attempt at getting bindists working everywhere
Ian Lynagh <igloo@earth.li>**20070916005328] 
[MERGED: Better modelling of newtypes in the Term datatype
Ian Lynagh <igloo@earth.li>**20070914203411
 Pepe Iborra <mnislaih@gmail.com>**20070912165855
 
  This helps to get pretty printing right,
  nested newtypes were not being shown correctly by :print
] 
[Use sed to make stage-specific ghc-inplace.c's
Ian Lynagh <igloo@earth.li>**20070914164821
 When trying to do it with -D we were having trouble getting the double
 quotes through in all Windows configurations.
] 
[Remove --export-all-symbols for DLL linking, it is default and prevents us from using .def files
Clemens Fruhwirth <clemens@endorphin.org>**20070831104624] 
[Fix copy+paste-o, spotted by Simon Marlow
Ian Lynagh <igloo@earth.li>**20070914142650] 
[Add a --names-only flag for list --simple-output
Ian Lynagh <igloo@earth.li>**20070907181944
 We use this in the testsuite to find out which libraries we should run
 the tests from.
] 
[fix install-docs for non-html docs
Simon Marlow <simonmar@microsoft.com>**20070914093738] 
[Remove call to validateGraph that snuck in in last patch
Ben.Lippmeier@anu.edu.au**20070914092504
 Also some comment / var name wibbles
] 
[Correct the branch versino number (6.8.0 rather than 6.8)
Ian Lynagh <igloo@earth.li>**20070913181649] 
[More library installation path fiddling
Ian Lynagh <igloo@earth.li>**20070913174242] 
[libsubdir for libraries is now always $$pkgid
Ian Lynagh <igloo@earth.li>**20070913173926] 
[Define RelocatableBuild variable
Ian Lynagh <igloo@earth.li>**20070913155331
 default YES on Windows, NO otherwise.
] 
[We need to thread lots more paths through installPackage to make bindists work
Ian Lynagh <igloo@earth.li>**20070913154830] 
[Update .darcs-boring
Ian Lynagh <igloo@earth.li>**20070913015704] 
[Add some more bits to the boring file
Ian Lynagh <igloo@earth.li>**20070907212208] 
[STABLE ONLY: Fix build
Ian Lynagh <igloo@earth.li>**20070913004230] 
[MERGED: GHCi debugger: new flag -fbreak-on-error
Ian Lynagh <igloo@earth.li>**20070912141427
 Pepe Iborra <mnislaih@gmail.com>**20070911101443
 
      This flag works like -fbreak-on-exception, but only stops
      on uncaught exceptions.
] 
[STABLE only: Use -fno-warn-orphans in compiler/ if the compiler supports it
Ian Lynagh <igloo@earth.li>**20070912140917
 This was done as part of a larger patch in the HEAD.
] 
[Give push-all the ability to pull with a --pull flag
Ian Lynagh <igloo@earth.li>**20070912140743
 OK, so the name is a bit wrong now...
] 
[Handle doc-index*.html, not just doc-index.html
Ian Lynagh <igloo@earth.li>**20070912135407
 haddock sometimes makes doc-index-A.html etc files. Not sure why it
 doesn't for me.
 Patch from Judah Jacobson.
] 
[Fix repeated section name in documentation.
judah.jacobson@gmail.com**20070907211616] 
[Fix installation code
Ian Lynagh <igloo@earth.li>**20070912113954] 
[updating hpc toolkit
andy@galois.com**20070908051600
 
 The hpc overlay has been ported from hpc-0.4
 The new API for readMix is now used.
 
] 
[Fixing hpc to allow use of hash function to seperate source files on source path
andy@galois.com**20070907223357] 
[Fixing Hpc's Finite Map compat lib for ghc 6.2.1
andy@galois.com**20070908055320] 
[Further tweaking of haddock doc installation
Ian Lynagh <igloo@earth.li>**20070911224734
 On Windows we now always use a path beginning $topdir/ so bindists are
 relocatable.
 
 We also now tell "Setup configure" where we are putting the
 documentation, and tell installPackage to override as little as
 possible.
] 
[make in-place has bitrotted, so don't advertise or support it
Ian Lynagh <igloo@earth.li>**20070911202202] 
[Synched documentation links with current directory layout
sven.panne@aedion.de**20070911071801
 Somehow the "html" subdirs are gone, this change was not completely
 intentional, but it is nice, anyway. Those subdirs never served any
 real purpose...
 
 MERGE TO STABLE
] 
[Refactoring & documenting the Term pprinter used by :print
Pepe Iborra <mnislaih@gmail.com>**20070911180411] 
[Custom printer for the Term datatype that won't output TypeRep values
Pepe Iborra <mnislaih@gmail.com>*-20070911151454
 
 The term pretty printer used by :print shouldn't output 
 the contents of TypeRep values, e.g. inside Dynamic values
] 
[Try and rewrite reloads to reg-reg moves in the spill cleaner
Ben.Lippmeier@anu.edu.au**20070911173833] 
[Don't try and coalesce nodes with themselves
Ben.Lippmeier@anu.edu.au**20070911151211] 
[Try and allocate vregs spilled/reloaded from some slot to the same hreg
Ben.Lippmeier@anu.edu.au**20070911145054] 
[Better handling of live range joins via spill slots in spill cleaner
Ben.Lippmeier@anu.edu.au**20070911130247] 
[Make sure to coalesce all the nodes found during iterative scanning
Ben.Lippmeier@anu.edu.au**20070910162909] 
[Add iterative coalescing to graph coloring allocator
Ben.Lippmeier@anu.edu.au**20070907172315
 
 Iterative coalescing interleaves conservative coalesing with the regular
 simplify/scan passes. This increases the chance that nodes will be coalesced
 as they will have a lower degree than at the beginning of simplify. The end
 result is that more register to register moves will be eliminated in the
 output code, though the iterative nature of the algorithm makes it slower
 compared to non-iterative coloring.
 
 Use -fregs-iterative  for graph coloring allocation with iterative coalescing
     -fregs-graph      for non-iterative coalescing.
 
 The plan is for iterative coalescing to be enabled with -O2 and have a 
 quicker, non-iterative algorithm otherwise. The time/benefit tradeoff
 between iterative and not is still being tuned - optimal graph coloring
 is NP-hard, afterall..
] 
[Cure space leak in coloring register allocator
Ben.Lippmeier@anu.edu.au**20070906131522
 
 We now do a deep seq on the graph after it is 'built', but before coloring.
 Without this, the colorer will just force bits of it and the heap will
 fill up with half evaluated pieces of graph from previous build/spill
 stages and zillions of apply thunks.
 
] 
[Small improvement to GraphColor.selectColor
Ben.Lippmeier@anu.edu.au**20070906103347
 
 When selecting a color for a node, try and avoid using colors that
 conflicting nodes prefer. Not sure if this'll make much difference,
 but it was easy enough to add..
 
] 
[Custom printer for the Term datatype that won't output TypeRep values
Pepe Iborra <mnislaih@gmail.com>**20070911151454
 
 The term pretty printer used by :print shouldn't output 
 the contents of TypeRep values, e.g. inside Dynamic values
] 
[Documentation for -fbreak-on-error
Pepe Iborra <mnislaih@gmail.com>**20070911101944] 
[Remove obsolete -fdebugging flag
Pepe Iborra <mnislaih@gmail.com>**20070907135857
 
 A left over from the 1st GHCi debugger prototype
] 
[Tiny optimisation/simplification to FunDeps.grow
simonpj@microsoft.com**20070907101133] 
[Warning police
simonpj@microsoft.com**20070907101103] 
[Add clarifying comments
simonpj@microsoft.com**20070907101046] 
[Fix zonking in mkExports
simonpj@microsoft.com**20070906090346
 
 I'd missed zonk, so that an error message for missing type signature
 read (unhelpfully)
 
   main/GHC.hs:1070:0:
      Warning: Definition but no type signature for `upsweep''
               Inferred type: upsweep' :: forall t1. t
 
 The trouble was that 't' hadn't been zonked.
 
 Push to the stable branch
 
] 
[Cleaned up version of Tom's unflattened skolemOccurs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070910083457] 
[Made TcTyFuns warning clean
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907121113] 
[fix for Simple9
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070906171703
 
 No longer include non-indexed arguments
 in lookup of matching type function clause.
 By including non-indexed (additional) arguments,
 the lookup always fails.
] 
[Improved error messages for higher-rank equality contexts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907101901] 
[FIX: Type families test Simple14
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907092217] 
[FIX #903: mkWWcpr: not a product
Simon Marlow <simonmar@microsoft.com>**20070910103830
 This fixes the long-standing bug that prevents some code with
 mutally-recursive modules from being compiled with --make and -O,
 including GHC itself.  See the comments for details.
 
 There are some additional cleanups that were forced/enabled by this
 patch: I removed importedSrcLoc/importedSrcSpan: it wasn't adding any
 useful information, since a Name already contains its defining Module.
 In fact when re-typechecking an interface file we were wrongly
 replacing the interesting SrcSpans in the Names with boring
 importedSrcSpans, which meant that location information could degrade
 after reloading modules.  Also, recreating all these Names was a waste
 of space/time.
] 
[The RTS is Haddock-less, tell make about it
sven.panne@aedion.de**20070910065759
 MERGE TO STABLE
] 
[Include package documentation, n-th attempt...
sven.panne@aedion.de**20070909154053
 MERGE TO STABLE
] 
[Yet another attempt to get the paths for the installed documentation correct
sven.panne@aedion.de**20070909124922
 MERGE TO STABLE
] 
[Add a "show" target here, too, quite useful for debugging the build process
sven.panne@aedion.de**20070909123813
 MERGE TO STABLE
] 
[Never try to build Haddock docs in ghc/compiler, even with HADDOCK_DOCS=YES
sven.panne@aedion.de**20070909123401
 MERGE TO STABLE
] 
[Removed install-dirs target, it is unnecessary and leads to stray empty directories
sven.panne@aedion.de**20070909121157
 MERGE TO STABLE
] 
[Removed install-dirs from phony targets, it is unused
sven.panne@aedion.de**20070909102815
 MERGE TO STABLE
] 
[Nicer GHCi debugger underlining
Pepe Iborra <mnislaih@gmail.com>**20070910145319
 
 Improved the underlining of blocks.
 With this patch it does:
 
 Stopped at break020.hs:(6,20)-(7,29)
 _result :: t1 () = _
 5  
                      vv
 6  in_another_decl _ = do line1 0
 7                         line2 0
                                  ^^
 8  
 
 Instead of
 
 Stopped at break020.hs:(6,20)-(7,29)
 _result :: t1 () = _
 5  
 6  in_another_decl _ = do line1 0
                        ^^
 7                         line2 0
                                  ^^
 8  
 
 
] 
[FIX #1669 (GHCi debugger underlining is in the wrong place)
Pepe Iborra <mnislaih@gmail.com>**20070910142129
 
 We weren't taking into account the offset added by the line numbers:
 
 Stopped at break020.hs:10:2-8
 _result :: IO () = _
 9  main = do
 10    line1 0
      ^^^^^^^
 11    line2 0
 
 
 This patch adjusts that 
 
] 
[Add a BeConservative setting to the make system
Ian Lynagh <igloo@earth.li>**20070910133528
 If it is set, we don't try to use clock_gettime
] 
[Add a crucial missing ;
Ian Lynagh <igloo@earth.li>**20070908231024] 
[Use := for PACKAGE_TARNAME, no reason for not doing so
sven.panne@aedion.de**20070908124645
 MERGE TO STABLE
] 
[Removed unused oldincludedir, things are already complicated enough
sven.panne@aedion.de**20070908124448
 MERGE TO STABLE
] 
[Added comment about GNU coding standards/autoconf history
sven.panne@aedion.de**20070908123317
 MERGE TO STABLE
] 
[We seem to use Outputable unconditionally these days
sven.panne@aedion.de**20070908142712
 MERGE TO STABLE
] 
[Make various assertions work when !DEBUG
Ian Lynagh <igloo@earth.li>**20070908003112] 
[Fix assertions in RtClosureInspect
Ian Lynagh <igloo@earth.li>**20070907233330] 
[In ASSERT and friends, use all the expressions we are passed even if !DEBUG
Ian Lynagh <igloo@earth.li>**20070907233324
 Otherwise we may get unused variable warnings. GHC should optimise them
 all out for us.
] 
[Don't put directories for unbuildable libraries in bindists
Ian Lynagh <igloo@earth.li>**20070907210037
 We think there is a library there, and then installPackage fails to
 install it.
] 
[Rejig boot
Ian Lynagh <igloo@earth.li>**20070907122847
 find on Windows doesn't understand -L, so stop trying to be clever and
 just autoreconf everything.
 
 Also, print out the names of directories as we autoreconf them, so that
 if autoreconfing one breaks then we know which one it was.
] 
[Fix publishing
Ian Lynagh <igloo@earth.li>**20070907121414
 Paths like c:/foo/bar get misinterpreted by rsync (really SSH?), as it
 thinks we want /foo/bar on the machine c.
] 
[Set do_bold based on $TERM, not platform
Ian Lynagh <igloo@earth.li>**20070906175535] 
[Make installPackage install settings from the [package].buildinfo file.
judah.jacobson@gmail.com**20070906010044
 
 M ./libraries/installPackage.hs -1 +14
] 
[Wibble some variable definitions to fix installation of bindists
Ian Lynagh <igloo@earth.li>**20070906140430] 
[Remove hardtop_plat/FPTOOLS_TOP_ABS_PLATFORM
Ian Lynagh <igloo@earth.li>**20070906122036
 They are now the same as hardtop/FPTOOLS_TOP_ABS, so use those instead.
 
 Also removed some substitutions of / for \, as we now use a Haskell
 program to find the top path, and it only makes paths with /s in.
] 
[warning police
Pepe Iborra <mnislaih@gmail.com>**20070906102417] 
[Cleanup of equality rewriting and no swapInsts for wanteds
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906115818
 - Removed code duplication
 - Added comments
 - Took out swapInsts for wanteds.  With the recent extension to swapInsts
   it does mess up error messages if applied to wanteds and i should not be
   necessary.
 NB: The code actually shrunk.  Line increase is due to comments.
] 
[Remove EqInsts from addSCs to avoid -DDEBUG warnings
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906095102] 
[EqInst related clean up
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906095018
 - Remove some unused and some superflous functions
 - Add comments regarding ancestor equalities
 - Tidied ancestor equality computation
 - Replace some incorrect instToId by instToVar (but there are still some
   bad ones around as we still get warnings with -DDEBUG)
 - Some cleaned up layout
 NB: Code growth is just due to more comments.
] 
[Remove dead code in TcSimplify
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906031719] 
[Fix -DDEBUG warning
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906023914] 
[also swap for variables in completion algorithm
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070905134426] 
[Set GhcBootLibs=YES in mk/validate-settings.mk
Ian Lynagh <igloo@earth.li>**20070906113629] 
[Quote all the arguments to installPackage
Ian Lynagh <igloo@earth.li>**20070905232959
 Makes it obvious what's going on if any are empty.
] 
[FIX #1465, error messages could sometimes say things like "A.T doesn't match A.T"
Simon Marlow <simonmar@microsoft.com>**20070906093744
 This turned out to be a black hole, however we believe we now have a
 plan that does the right thing and shouldn't need to change again.
 Error messages will only ever refer to a name in an unambiguous way,
 falling back to <package>:<module>.<name> if no unambiguous shorter
 variant can be found.  See HscTypes.mkPrintUnqualified for the
 details.
 
 Earlier hacks to work around this problem have been removed (TcSimplify).
] 
[fix error in .hi-boot-6
Simon Marlow <simonmar@microsoft.com>**20070905112503] 
[Improve GraphColor.colorScan
Ben.Lippmeier@anu.edu.au**20070905164401
 
 Testing whether a node in the conflict graph is trivially 
 colorable (triv) is still a somewhat expensive operation.
 
 When we find a triv node during scanning, even though we remove
 it and its edges from the graph, this is unlikely to to make the
 nodes we've just scanned become triv - so there's not much point
 re-scanning them right away.
 
 Scanning now takes place in passes. We scan the whole graph for
 triv nodes and remove all the ones found in a batch before rescanning
 old nodes.
 
 Register allocation for SHA1.lhs now takes (just) 40% of total
 compile time with -O2 -fregs-graph on x86
 
] 
[Fix OS X warnings
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070906004831] 
[Declare ctime_r on Mac OS
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070906001613
 
 On Mac OS, ctime_r is not declared in time.h if _POSIX_C_SOURCE is defined. We
 work around this by providing a declaration ourselves.
 
] 
[FIX #1651: use family instances during interactive typechecking
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070905130244] 
[Updates to work with latest cabal.
Duncan Coutts <duncan@haskell.org>**20070906131726] 
[Add an OPTIONS -w pragma to utils/genprimopcode/Lexer.xx
Ian Lynagh <igloo@earth.li>**20070905184808
 SPJ reports that it has warnings (=> errors with -Werror) on Windows.
] 
[Build settings for validation are now in mk/validate-settings.mk
Ian Lynagh <igloo@earth.li>**20070905184614] 
[Don't give warnings in compat
Ian Lynagh <igloo@earth.li>**20070905182923
 There are lots of warnings in here due to things like modules being
 imported that, in some versions of GHC, aren't used. Thus we don't
 give any warnings in here, and therefore validating with -Werror won't
 make the build fail.
 
 An alternative would be to do
 SRC_HC_OPTS := $(filter-out -Werror,$(SRC_HC_OPTS))
 but if warnings are expected then there is little point in spewing them
 out anyway.
 
 On the other hand, there aren't any warnings for me (GHC 6.6 on Linux/amd64),
 so perhaps it would be worth fixing them instead.
] 
[Refactor, improve, and document the deriving mechanism
simonpj@microsoft.com**20070905170730
 
 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.
 
] 
[Further documentation about mdo, suggested by Benjamin Franksen
simonpj@microsoft.com**20070829083349] 
[Refactor MachRegs.trivColorable to do unboxed accumulation
Ben.Lippmeier@anu.edu.au**20070905125219
 
 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.
] 
[change of representation for GenCmm, GenCmmTop, CmmProc
Norman Ramsey <nr@eecs.harvard.edu>**20070905164802
 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.
] 
[enable and slay warnings in cmm/Cmm.hs
Norman Ramsey <nr@eecs.harvard.edu>**20070905164646] 
[fix warnings
Simon Marlow <simonmar@microsoft.com>**20070905114205] 
[FIX #1650: ".boot modules interact badly with the ghci debugger"
Simon Marlow <simonmar@microsoft.com>**20070905104716
 
 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
 
] 
[Fix boot: it was avoiding autoreconfing
Simon Marlow <simonmar@microsoft.com>**20070905101419
 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?
] 
[don't generate .hi-boot/.o-boot files in GHCi
Simon Marlow <simonmar@microsoft.com>**20070904141231] 
[refactoring only
Simon Marlow <simonmar@microsoft.com>**20070904141209] 
[completion for modules in 'import M'
Simon Marlow <simonmar@microsoft.com>**20070904104458] 
[make the GhcThreaded setting lazy, because GhcUnregisterised might not be set yet
Simon Marlow <simonmar@microsoft.com>**20070904101729] 
[Typo
Ian Lynagh <igloo@earth.li>**20070905161402] 
[Fix bindist creation on Windows
Ian Lynagh <igloo@earth.li>**20070905161354] 
[Fix up bindist creation and publishing
Ian Lynagh <igloo@earth.li>**20070905160641] 
[{Enter,Leave}CriticalSection imports should be outside #ifdef __PIC__
Simon Marlow <simonmar@microsoft.com>**20070905084941] 
[warning police
Ben.Lippmeier@anu.edu.au**20070905094509] 
[Do conservative coalescing in register allocator
Ben.Lippmeier@anu.edu.au**20070903163404
 
 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)
 
] 
[Use dlsym on OS X if available
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070905052213
 
 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.
] 
[bug fix in Decomp step of completion algorithm for given equations
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070904123945] 
[fix of wanted equational class context
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070904080014
 
 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.
 
 
] 
[FIX: Correct Leave/EnterCriticalSection imports
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070905010217] 
[Don't hardwire the build path into the Haddock docs
sven.panne@aedion.de**20070904172855
 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...
] 
[put the @N suffix on stdcall foreign calls in .cmm code
Simon Marlow <simonmar@microsoft.com>**20070904142853
 This applies to EnterCriticalSection and LeaveCriticalSection in the RTS
] 
[Set datarootdir to the value configure gives us (if any) so datadir works
Ian Lynagh <igloo@earth.li>**20070905013239
 We then set datarootdir to something else later on so that things still
 work when configure doesn't set it.
] 
[Add a -Warn flag
Ian Lynagh <igloo@earth.li>**20070904141028] 
[Always turn on -Wall -Werror when compiling the compiler, even for stage 1
Ian Lynagh <igloo@earth.li>**20070904140324] 
[Fix CodingStyle#Warnings URLs
Ian Lynagh <igloo@earth.li>**20070904140115] 
[OPTIONS_GHC overrides the command-line, not the other way around
Simon Marlow <simonmar@microsoft.com>**20070904100623] 
[fix cut-and-pasto
Simon Marlow <simonmar@microsoft.com>**20070904100526] 
[FIX #1651: unBox types when deferring unification
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070904072542
 - This fixes the first part of #1651; ie, the panic in ghci.
] 
[Better error message for unsolvable equalities
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070903074528] 
[Use := rather than = when assigning make variables to avoid cycles
Ian Lynagh <igloo@earth.li>**20070903235117] 
[Don't use autoconf's datarootdir as <2.60 doesn't have it
Ian Lynagh <igloo@earth.li>**20070903234504] 
[Use OPTIONS rather than OPTIONS_GHC for pragmas
Ian Lynagh <igloo@earth.li>**20070903233903
 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.
] 
[fix build (sorry, forgot to push with previous patch)
Simon Marlow <simonmar@microsoft.com>**20070903200615] 
[remove debugging code
Simon Marlow <simonmar@microsoft.com>**20070903200003] 
[Fix building RTS with gcc 2.*; declare all variables at the top of a block
Ian Lynagh <igloo@earth.li>**20070903165847
 Patch from Audrey Tang.
] 
[Change the version number to 6.8 on the branch
Ian Lynagh <igloo@earth.li>**20070903172054] 
[TAG ghc-6.8 branched 2007-09-03
Ian Lynagh <igloo@earth.li>**20070903155416] 
Patch bundle hash:
5772327383521db295c5ebfd76e21714dfc9d670
