
New patches:

[Perform case-insensitive matching of path components in getBaseDir on Windows (Fixes bug 2743)
Neil Mitchell <ndmitchell@gmail.com>**20081105134315] {
hunk ./compiler/main/SysTools.lhs 847
-                (d, ghc_exe) | map toLower ghc_exe == "ghc.exe" ->
+                (d, ghc_exe) | lower ghc_exe == "ghc.exe" ->
hunk ./compiler/main/SysTools.lhs 850
-                    (d', "bin") -> takeDirectory d'
+                    (d', bin) | lower bin == "bin" -> takeDirectory d'
hunk ./compiler/main/SysTools.lhs 852
-                    (d', x) | "-inplace" `isSuffixOf` x -> 
+                    (d', x) | "-inplace" `isSuffixOf` lower x -> 
hunk ./compiler/main/SysTools.lhs 857
+              lower = map toLower
}

Context:

[bugfix: don't ingore the return value from rts_evalIO()
Simon Marlow <marlowsd@gmail.com>**20081104142147] 
[Document the new SPARKS statistic, and xref from the parallelism section
Simon Marlow <marlowsd@gmail.com>**20081024120236] 
[Move the freeing of Capabilities later in the shutdown sequence
Simon Marlow <marlowsd@gmail.com>**20081024104301
 Fixes a bug whereby the Capability has been freed but other
 Capabilities are still trying to steal sparks from its pool.
] 
[Pad Capabilities and Tasks to 64 bytes
Simon Marlow <marlowsd@gmail.com>**20081023080749
 This is just good practice to avoid placing two structures heavily
 accessed by different CPUs on the same cache line
] 
[Fix desugaring of record update (fixes Trac #2735)
simonpj@microsoft.com**20081103110819] 
[Refuse to register packages with unversioned dependencies; trac #1837
Ian Lynagh <igloo@earth.li>**20081031181746] 
[We now require GHC 6.6 to build the HEAD (and thus 6.12)
Ian Lynagh <igloo@earth.li>**20081031171506] 
[:set prompt now understand Haskell String syntax; trace #2652
Ian Lynagh <igloo@earth.li>**20081031145227] 
[Comments only
simonpj@microsoft.com**20081031140236] 
[Quickfix for warning.
Thomas Schilling <nominolo@googlemail.com>**20081031113125] 
[Export typeclasses for accessing compiler results.
Thomas Schilling <nominolo@googlemail.com>**20081028182310
 
 MERGE TO 6.10.
] 
[Minor refactoring.
Thomas Schilling <nominolo@googlemail.com>**20081028182202] 
[Include record fields in tags.
Thomas Schilling <nominolo@googlemail.com>**20081028180538] 
[Fix imports
simonpj@microsoft.com**20081031092306] 
[Improve error reporting for non-rigid GADT matches
simonpj@microsoft.com**20081030143947
 
 Following suggestions from users, this patch improves the error message
 when a GADT match needs a rigid type:
 
  tcfail172.hs:19:10:
      GADT pattern match in non-rigid context for `Nil'
 -      Solution: add a type signature
 +      Probable solution: add a type signature for `is_normal'
      In the pattern: Nil
      In the definition of `is_normal': is_normal Nil = True
 
 Now GHC tries to tell you what to give a type signature *for*.
 Thanks to Daniel Gorin and others for the suggestions.
 
] 
[Add (a) CoreM monad, (b) new Annotations feature
simonpj@microsoft.com**20081030125108
 
 This patch, written by Max Bolingbroke,  does two things
 
 1.  It adds a new CoreM monad (defined in simplCore/CoreMonad),
     which is used as the top-level monad for all the Core-to-Core
     transformations (starting at SimplCore).  It supports
        * I/O (for debug printing)
        * Unique supply
        * Statistics gathering
        * Access to the HscEnv, RuleBase, Annotations, Module
     The patch therefore refactors the top "skin" of every Core-to-Core
     pass, but does not change their functionality.
 
 2.  It adds a completely new facility to GHC: Core "annotations".
     The idea is that you can say
        {#- ANN foo (Just "Hello") #-}
     which adds the annotation (Just "Hello") to the top level function
     foo.  These annotations can be looked up in any Core-to-Core pass,
     and are persisted into interface files.  (Hence a Core-to-Core pass
     can also query the annotations of imported things.)  Furthermore,
     a Core-to-Core pass can add new annotations (eg strictness info)
     of its own, which can be queried by importing modules.
 
 The design of the annotation system is somewhat in flux.  It's
 designed to work with the (upcoming) dynamic plug-ins mechanism,
 but is meanwhile independently useful.
 
 Do not merge to 6.10!  
 
] 
[Fix Trac #2674: in TH reject empty case expressions and function definitions
simonpj@microsoft.com**20081030094528] 
[Change naming conventions for compiler-generated dictionaries and type functions
simonpj@microsoft.com**20081029140858
 
 Up to now, the data constructor dictionary for class C as been called
 ":DC". But there is no reason for the colon to be at the front; indeed
 it confuses the (simple-minded) pretty-printer for types.  So this
 patch changes it to be "D:C".  This makes Core a lot easier to read.
 Having a colon in the middle ensures that it can't clash with a user-written
 data type.
 
 Similarly I changed
 
   T:C 	   Data type corresponding a class dictionary (was :TC)
   D:C	   Data constructor for class dictionary (was :DC)
 
   NTCo:T   Coercion mapping from a newtype T to its representation type
 		(was :CoT)
 
   TFCo:R   Coercion mapping from a data family to its respresentation type R
 		(was :CoFR)
 
   Rn:T     The n'th respresentation data type for a data type T
 		(was :RnT)
 
 
 Do not merge to 6.10.
 
 HEADS-UP: you'll need to recompile libraries from scratch.  
 
 ROMAN: you could do the same for OccName.mkVectTyConOcc etc, if you wanted.
 
 
] 
[Fix tcrun031: yet more tidying up in TcDeriv
simonpj@microsoft.com**20081029130155] 
[Add Outputable instance for CoercionI
simonpj@microsoft.com**20081029130114] 
[Fix Trac #2720: inlining and casts
simonpj@microsoft.com**20081028140828
 
 The issue here is what happens when we have
 
 	(f |> co) x
 
 where f is itself marked INLINE.  We want callSiteInline to "see" 
 the fact that the function is applied, and hence have some incentive
 to inline.  I've done this by extending CoreUnfold.CallCtxt with 
 ValAppCtxt.  I think that should catch this case without messing up
 any of the others.
 
] 
[Clarify documentatoin
simonpj@microsoft.com**20081028133009] 
[Update library version numbers in the release notes
Ian Lynagh <igloo@earth.li>**20081023144018] 
[various updates to the release notes
Simon Marlow <marlowsd@gmail.com>**20081007151647] 
[Add library release notes
Ian Lynagh <igloo@earth.li>**20080920155722] 
[Add release notes for the compiler
Ian Lynagh <igloo@earth.li>**20080920114857] 
[Doc fix
Ian Lynagh <igloo@earth.li>**20081028150534] 
[Rename some variables in docs
Ian Lynagh <igloo@earth.li>**20081028150447] 
[Fix typos
Ian Lynagh <igloo@earth.li>**20081028144655] 
[Mostly-fix Trac #2595: updates for existentials
simonpj@microsoft.com**20081028115427
 
 Ganesh wanted to update records that involve existentials.  That 
 seems reasonable to me, and this patch covers existentials, GADTs,
 and data type families.
 
 The restriction is that 
   The types of the updated fields may mention only the
   universally-quantified type variables of the data constructor
 
 This doesn't allow everything in #2595 (it allows 'g' but not 'f' in
 the ticket), but it gets a lot closer.
 
 Lots of the new lines are comments!
 
] 
[Fix Trac #2723: keep track of record field names in the renamer
simonpj@microsoft.com**20081028110445
 
 The idea here is that with -XNamedFieldPuns and -XRecordWildCards we don't
 want to report shadowing errors for
 	let fld = <blah> in C { .. }
 But to suppress such shadowing errors, the renamer needs to know that
 'fld' *is* a record selector.  Hence the new NameSet in 
 TcRnFypes.RecFieldEnv
 
] 
[Remove dead code
simonpj@microsoft.com**20081028074639] 
[Fix Trac #2713: refactor and tidy up renaming of fixity decls
simonpj@microsoft.com**20081027222738
 
 In fixing #2713, this patch also eliminates two almost-unused
 functions from RnEnv (lookupBndr and lookupBndr_maybe).  The
 net lines of code is prety much unchanged, but more of them
 are comments!
 
] 
[Fix Trac #2701: make deriving check better for unlifted args
simonpj@microsoft.com**20081025171211
 
 Getting the automatic deriving mechanism to work really smoothly
 is surprisingly hard.  I keep finding myself in TcDeriv!
 
 Anyway, this is a nice clean fix to Trac #2701.
 
] 
[Use pdflatex rather than latex for building
Ian Lynagh <igloo@earth.li>**20081024112400
 The Windows builder is having problems running ps2pdf, so this works
 aroudn the problem.
] 
[Remove an unmatched } in core.tex
Ian Lynagh <igloo@earth.li>**20081024111750] 
[Add a usepackage{url}
Ian Lynagh <igloo@earth.li>**20081024111458] 
[Update ANNOUNCE
Ian Lynagh <igloo@earth.li>**20081022164423] 
[Fix a bug in the new scheduler
Simon Marlow <marlowsd@gmail.com>**20081023155017
 If the current thread blocks, we should yield the Capability
 immediately, because the thread and hence possibly the current Task
 are now owned by someone else.  This worked in the old scheduler, but
 we moved where the yield happens in the new scheduler which broke it.
] 
[add an assertion
Simon Marlow <marlowsd@gmail.com>**20081023154551] 
[fix a warning
Simon Marlow <marlowsd@gmail.com>**20081023082213] 
[traverse the spark pools only once during GC rather than twice
Simon Marlow <marlowsd@gmail.com>**20081022115233] 
[Refactoring and reorganisation of the scheduler
Simon Marlow <marlowsd@gmail.com>**20081022092744
 
 Change the way we look for work in the scheduler.  Previously,
 checking to see whether there was anything to do was a
 non-side-effecting operation, but this has changed now that we do
 work-stealing.  This lead to a refactoring of the inner loop of the
 scheduler.
 
 Also, lots of cleanup in the new work-stealing code, but no functional
 changes.
 
 One new statistic is added to the +RTS -s output:
 
   SPARKS: 1430 (2 converted, 1427 pruned)
 
 lets you know something about the use of `par` in the program.
] 
[Work stealing for sparks
berthold@mathematik.uni-marburg.de**20080915132846
 
    Spark stealing support for PARALLEL_HASKELL and THREADED_RTS versions of the RTS.
   
   Spark pools are per capability, separately allocated and held in the Capability 
   structure. The implementation uses Double-Ended Queues (deque) and cas-protected 
   access.
   
   The write end of the queue (position bottom) can only be used with
   mutual exclusion, i.e. by exactly one caller at a time.
   Multiple readers can steal()/findSpark() from the read end
   (position top), and are synchronised without a lock, based on a cas
   of the top position. One reader wins, the others return NULL for a
   failure.
   
   Work stealing is called when Capabilities find no other work (inside yieldCapability),
   and tries all capabilities 0..n-1 twice, unless a theft succeeds.
   
   Inside schedulePushWork, all considered cap.s (those which were idle and could 
   be grabbed) are woken up. Future versions should wake up capabilities immediately when 
   putting a new spark in the local pool, from newSpark().
 
 Patch has been re-recorded due to conflicting bugfixes in the sparks.c, also fixing a 
 (strange) conflict in the scheduler.
 
] 
[include an elapsed time table
Simon Marlow <marlowsd@gmail.com>**20081023080648] 
[generate a valid summary for older GHC versions too
Simon Marlow <marlowsd@gmail.com>**20081023080629] 
[Fix Trac #2714 (a minor wibble)
simonpj@microsoft.com**20081022145138
 
 In boxy_match (which is a pure function used by preSubType) we can
 encounter TyVars not just TcTyVars; this patch takes account of that.
 
] 
[Reject programs with superclass equalities for now
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021131721
 - The current implementation of type families cannot properly deal
   with superclass equalities.  Instead of making a half-hearted attempt at
   supporting them, which mostly ends in cryptic error message, rejecting
   right away with an appropriate message.
 
   MERGE TO 6.10
] 
[Fix doc syntax
Ian Lynagh <igloo@earth.li>**20081021183317] 
[Don't put the README file in the Windows installer; fixes trac #2698
Ian Lynagh <igloo@earth.li>**20081021162543
 The README file talks about getting and building the sources, which
 doesn't make sense for the installer.
] 
[Comments and parens only
simonpj@microsoft.com**20081021151401] 
[Do proper cloning in worker/wrapper splitting
simonpj@microsoft.com**20081021143156
 
 See Note [Freshen type variables] in WwLib.  We need to clone type
 variables when building a worker/wrapper split, else we simply get
 bogus code, admittedly in rather obscure situations.  I can't quite
 remember what program showed this up, unfortunately, but there 
 definitely *was* one!  (You get a Lint error.)
 
] 
[Don't float an expression wrapped in a cast
simonpj@microsoft.com**20081021143019
 
 There is no point in floating out an expression wrapped in a coercion;
 If we do we'll transform  
 	lvl = e |> co [_$_]
 to  	
 	lvl' = e; lvl = lvl' |> co
 and then inline lvl.  Better just to float out the payload (e).
 
] 
[Fix Trac #2668, and refactor TcDeriv
simonpj@microsoft.com**20081021142922
 
 TcDeriv deals with both standalone and ordinary 'deriving';
 and with both data types and 'newtype deriving'.  The result
 is really rather compilcated and ad hoc.  Ryan discovered
 #2668; this patch fixes that bug, and makes the internal interfces
 #more uniform.  Specifically, the business of knocking off 
 type arguments from the instance type until it matches the kind of the
 class, is now done by derivTyData, not mkNewTypeEqn, because the
 latter is shared with standalone derriving, whree the trimmed
 type application is what the user wrote.
 
] 
[Spelling error in comment
simonpj@microsoft.com**20081019233511] 
[White space only
simonpj@microsoft.com**20081019233352] 
[Comments to explain strict overlap checking for type family instances
simonpj@microsoft.com**20081019184208] 
[Allow type families to use GADT syntax (and be GADTs)
simonpj@microsoft.com**20080923140535
 
 We've always intended to allow you to use GADT syntax for
 data families:
 	data instance T [a] where
 	  T1 :: a -> T [a]
 and indeed to allow data instances to *be* GADTs
 	data intsance T [a] where
 	  T1 :: Int -> T [Int]
 	  T2 :: a -> b -> T [(a,b)]
 
 This patch fixes the renamer and type checker to allow this.
 	
] 
[Improve crash message from applyTys and applyTypeToArgs
simonpj@microsoft.com**20080923135419] 
[Wibble to ungrammatical error message
simonpj@microsoft.com**20080920232256] 
[Comments only: replace ":=:" by "~" (notation for equality predicates)
simonpj@microsoft.com**20080920232024] 
[FIX #2693
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021120107
 - As long as the first reduceContext in tcSimplifyRestricted potentially
   performs improvement, we need to zonk again before the second reduceContext.
   It would be better to prevent the improvement in the first place, but given
   the current situation zonking is definitely the right thing to do.
 
   MERGE TO 6.10
] 
[Restore the terminal attributes even if ghci does not exit normally.
Judah Jacobson <judah.jacobson@gmail.com>**20081020164109] 
[FIX #2688
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021044213
 - Change in TcSimplify.reduceContext:
 
      We do *not* go around for new extra_eqs.  Morally, we should,
      but we can't without risking non-termination (see #2688).  By
      not going around, we miss some legal programs mixing FDs and
      TFs, but we never claimed to support such programs in the
      current implementation anyway.
 
   MERGE TO 6.10
] 
[Move documentation within 80 column boundary.
Thomas Schilling <nominolo@googlemail.com>**20081014134016] 
[Improve haddock documentation for 'GHC.topSortModuleGraph'.
Thomas Schilling <nominolo@googlemail.com>**20081014133833] 
[Improve haddock documentation for HsExpr module.
Thomas Schilling <nominolo@googlemail.com>**20081014133740] 
[Improve Haddock-markup for HsDecls module.
Thomas Schilling <nominolo@googlemail.com>**20081014133556] 
[Run Haddock with compacting GC and show RTS statistics.
Thomas Schilling <nominolo@googlemail.com>**20081020111410] 
[FIX (partially) #2703: bug in stack overflow handling when inside block
Simon Marlow <marlowsd@gmail.com>**20081020121103
 As a result of a previous ticket (#767) we disabled the generation of
 StackOverflow exceptions when inside a Control.Exception.block, on the
 grounds that StackOverflow is like an asynchronous exception.  Instead
 we just increase the stack size.  However, the stack size calculation
 was wrong, and ended up not increasing the size of the stack, with the
 result that the runtime just kept re-allocating the stack and filling
 up memory.
] 
[Re-export Located(..) and related functions
Simon Marlow <marlowsd@gmail.com>**20081020102422
 So that clients don't need to import SrcLoc
] 
[whitespace fix
Simon Marlow <marlowsd@gmail.com>**20081020101241] 
[FIX #2691: Manually reset the terminal to its initial settings; works around a bug in libedit.
Judah Jacobson <judah.jacobson@gmail.com>**20081016024838] 
[Eliminate duplicate flags in the tab completion of ghci's :set command.
Judah Jacobson <judah.jacobson@gmail.com>**20081016015721] 
[Add dph haddock docs to the doc index
Ian Lynagh <igloo@earth.li>**20081019133208] 
[Clean the bootstrapping extensible-exceptions package
Ian Lynagh <igloo@earth.li>**20081017195942] 
[Fix trac #2687
Ian Lynagh <igloo@earth.li>**20081015163412
 OtherPunctuation, ConnectorPunctuation and DashPunctuation are now
 treated as symbols, rather than merely graphic characters.
] 
[Fix trac #2680; avoid quadratic behaviour from (++)
Ian Lynagh <igloo@earth.li>**20081015163235] 
[Fix the build when the bootstrapping compiler has a newer Cabal than us
Ian Lynagh <igloo@earth.li>**20081015144023
 We need to forcibly use the in-tree Cabal, or we get version mismatch errors
] 
[Fix the name of prologue.txt when making bindists
Ian Lynagh <igloo@earth.li>**20081014114714] 
[Comments only
simonpj@microsoft.com**20081015084501] 
[Fix Trac #2497; two separate typos in Lexer.x
simonpj@microsoft.com**20081015084344
 
 The patch to switch on lexing of 'forall' inside a RULES pragma
 wasn't working.  This fixes it so that it does.
 
] 
[Update manual: tidy up instances, say more about type families in instance decls
simonpj@microsoft.com**20081015080509] 
[Make tags work on Unices, too.
Thomas Schilling <nominolo@googlemail.com>**20081014211236] 
[Undefine __PIC__ before defining it to work around "multiple definitions of __PIC__" warnings
Clemens Fruhwirth <clemens@endorphin.org>**20081014143206] 
[Add "dyn" to GhcRTSWays when compiling --enable-shared
Clemens Fruhwirth <clemens@endorphin.org>**20081014125123] 
[Fill out the ghc package's cabal file
Ian Lynagh <igloo@earth.li>**20081013235817] 
[Patching libffi so it can be built as DLL
Clemens Fruhwirth <clemens@endorphin.org>**20081014103459
 
 libffi-dllize-3.0.6.patch should be pushed upstream
] 
[Add 'etags' makefile target.
Thomas Schilling <nominolo@googlemail.com>**20081013170927
 
 This only works with stage2 since `ghctags' is built against stage1
 but not against the bootstrapping compiler.  Also note that all of GHC
 must typecheck for this target to succeed.  Perhaps we should not
 overwrite the old TAGS file by default then.
] 
[Use cabal information to get GHC's flags to `ghctags'.
Thomas Schilling <nominolo@googlemail.com>**20081013170658
 
 By giving the dist-directory to ghctags we can get all the GHC API
 flags we need in order to load the required modules.  The flag name
 could perhaps be improved, but apart from that it seems to work well.
] 
[Version bump for libffi to 3.0.6
Clemens Fruhwirth <clemens@endorphin.org>**20081014081300] 
[Encode shared/static configuration into stamps to do the right thing when rebuilding
Clemens Fruhwirth <clemens@endorphin.org>**20081013221530] 
[Add a link to the GHC API docs from the library haddock index
Ian Lynagh <igloo@earth.li>**20081013195943] 
[Link to the GHC API documentation from the main doc page
Ian Lynagh <igloo@earth.li>**20081013200927] 
[Whitespace only in docs/index.html
Ian Lynagh <igloo@earth.li>**20081013200625] 
[Tweak gen_contents_index
Ian Lynagh <igloo@earth.li>**20081013192548
 It now works again after it has been installed, as well as while it is
 in a source tree.
 After it's been installed it filters out the ghc package, as that
 currently swamps everything else in the index.
] 
[Build fixes for DLLized rts
Clemens Fruhwirth <clemens@endorphin.org>**20081013201608] 
[Do not filter the rts from linked libraries in linkDynLib as Windows does not allow unresolved symbols
Clemens Fruhwirth <clemens@endorphin.org>**20081013201426] 
[Add HsFFI.o to INSTALL_LIBS
Clemens Fruhwirth <clemens@endorphin.org>**20081013200945] 
[Rename symbol macros to a consistant naming scheme
Clemens Fruhwirth <clemens@endorphin.org>**20081013162433] 
[Fix #2685: two Bool arguments to tidyTypeEnv were the wrong way around
Simon Marlow <marlowsd@gmail.com>**20081013121339
 So -XTemplateHaskell was behaving like -fomit-interface-file-pragmas,
 and vice versa.
] 
[Simplify the "is $bindir in $PATH" test
Ian Lynagh <igloo@earth.li>**20081011191008] 
[Correct the "is $bindir in $PATH" test
Ian Lynagh <igloo@earth.li>**20081011191030
 We were testing neq instead of eq
] 
[Fix a typo which was causing ghci to quit on commands errors
pepe <mnislaih@gmail.com>**20081011114720] 
[Drop libm from the linker dependencies for libffi
Clemens Fruhwirth <clemens@endorphin.org>**20081011074524] 
[Do not generate haddock documentation when running install-docs in libffi
Clemens Fruhwirth <clemens@endorphin.org>**20081010192318] 
[When waking up thread blocked on TVars, wake oldest first (#2319)
Josef Svenningsson <josef.svenningsson@gmail.com>**20081010150322
 StgTVarWatchQueue contains the threads blocked on a TVar in order 
 youngest first. The list has to be traversed backwards to unpark the threads 
 oldest first.
 
 This improves the fairness when using STM in some situations.
] 
[add readTVarIO :: TVar a -> IO a
Simon Marlow <marlowsd@gmail.com>**20081010131545] 
[fix #2636: throw missing module errors as SourceErrors, not ErrMsg
Simon Marlow <marlowsd@gmail.com>**20081010131535] 
[atomicModifyIORef: use a local cas() instead of the global lock
Simon Marlow <simonmar@microsoft.com>**20081008154702
 This should improve scaling when using atomicModifyIORef
] 
[Delay building libffi until package.conf is created and fix bindist
Clemens Fruhwirth <clemens@endorphin.org>**20081010073106] 
[Install a versioned ghc-pkg script; fixes trac #2662
Ian Lynagh <igloo@earth.li>**20081009164946] 
[Fix bindist creation: Only the main RTS was being put in the bindists
Ian Lynagh <igloo@earth.li>**20081009163451] 
[pushAtom: add missing case for MachNullAddr (#2589)
Simon Marlow <marlowsd@gmail.com>**20081009091118] 
[undo incorrect assertion, and fix comments
Simon Marlow <marlowsd@gmail.com>**20081009085118] 
[remove old GRAN/PARALLEL_HASKELL code
Simon Marlow <marlowsd@gmail.com>**20081009085051] 
[FIX #2639
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081009132328
 
   MERGE TO 6.10
] 
[Cover PredTy case in Type.tyFamInsts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081009061435
 
   MERGE TO 6.10
] 
[Drop ghcconfig.h/RtsConfig.h from libffi's package.conf.in
Clemens Fruhwirth <clemens@endorphin.org>**20081009071342] 
[Don't use sed's -i flag as Solaris doesn't know it in libffi/Makefile
Clemens Fruhwirth <clemens@endorphin.org>**20081008234455] 
[Don't use /dev/null trick to create empty object files in libffi/Makefile
Clemens Fruhwirth <clemens@endorphin.org>**20081008232902] 
[Turn libffi into a Haskell package
Clemens Fruhwirth <clemens@endorphin.org>**20081008170443] 
[Make 'getModSummary' deterministic.
Thomas Schilling <nominolo@googlemail.com>**20081008144032] 
[Add accessors to 'HsModule' and haddockify it.
Thomas Schilling <nominolo@googlemail.com>**20081007235656] 
[fix syntax errors in src-dist publish rules
Simon Marlow <marlowsd@gmail.com>**20081008103432] 
[add comments and an ASSERT_LOCK_HELD()
Simon Marlow <marlowsd@gmail.com>**20081008112627] 
[Fix #2663: we had a hard-wired capabilities[0]
Simon Marlow <marlowsd@gmail.com>**20081008112609
 For some unknown reason in schedulePostRunThread() we were always
 passing capabilities[0] rather than the current Capability to
 throwToSingleThreaded().  This caused all kinds of weird failures and
 crashes in STM code when running on multiple processors.
] 
[Fix #1955 for heap profiles generated by +RTS -hT
Simon Marlow <marlowsd@gmail.com>**20081003150745] 
[add a section id for +RTS -hT
Simon Marlow <marlowsd@gmail.com>**20081007151007] 
[update documentation for PostfixOperators
Simon Marlow <marlowsd@gmail.com>**20081007150957] 
[fix markup
Simon Marlow <marlowsd@gmail.com>**20081007150943] 
[Fix bug in DPH docs
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008101618] 
[Add short DPH section to users guide
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008064754
 
 MERGE TO 6.10
] 
[Users Guide: added type family documentation
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081008061927
 
   MERGE TO 6.10
] 
[Track changes to package dph
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008032859
 
 MERGE TO 6.10
] 
[Build a profiled GHC API by default if p is in GhcLibWays
Ian Lynagh <igloo@earth.li>**20081007152318] 
[Check whether mk/validate.mk defines anything after validating
Ian Lynagh <igloo@earth.li>**20081007144855] 
[Remove #define _BSD_SOURCE from Stg.h
Ian Lynagh <igloo@earth.li>**20081006101959
 It's no longer needed, as base no longer #includes it
] 
[Make ghctags compile again.
Thomas Schilling <nominolo@googlemail.com>**20081007135705] 
[Revert AutoLinkPackages change for dynamic libraries. Cabal handles that now.
Clemens Fruhwirth <clemens@endorphin.org>**20081007100417] 
[Change suffix for dyn. linked executables from _real to .dyn
Clemens Fruhwirth <clemens@endorphin.org>**20081007100750] 
[Add accessors to 'Target' fields and haddockify.
Thomas Schilling <nominolo@googlemail.com>**20081006222940
 
 MERGE TO 6.10
] 
[Make 'gblock' and 'gunblock' part of 'ExceptionMonad'.  This way the
Thomas Schilling <nominolo@googlemail.com>**20081006222831
 default implementations of 'gbracket' and 'gfinally' just work.
 
 MERGE TO 6.10
] 
[Add Word8 support to vectoriser
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081007004416
 
 MERGE TO 6.10
] 
[Fix generating OS X installers: Set COMMAND_MODE=unix2003
Ian Lynagh <igloo@earth.li>**20081005222715
 If we don't specify COMMAND_MODE=unix2003 then xcodebuild defaults
 to setting it to legacy, which means that ar builds archives
 without a table of contents. That makes the build fail later on.
] 
[We need to set datadir = $(libdir) in bindists
Ian Lynagh <igloo@earth.li>**20081005143307
 We already do in the normal Makefiles.
 
 This is because GHC needs package.conf and unlit to be in the same place
 (and things like ghc-pkg need to agree on where package.conf is, so we
 just set it globally).
] 
[prep-bin-dist-mingw complains if it finds a bad version of windres
Ian Lynagh <igloo@earth.li>**20081004175351] 
[removed Data.Generics.Basics, added Data.Data
'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002082808] 
[Fix a build problem with GHC 6.4.2
Ian Lynagh <igloo@earth.li>**20081003195700] 
[No AutoLinkPackages for dynamic library linking
Clemens Fruhwirth <clemens@endorphin.org>**20081003185304] 
[use ghcError for error in command line
Clemens Fruhwirth <clemens@endorphin.org>**20081001125648] 
[Fix warnings
simonpj@microsoft.com**20081003171207] 
[Always use extensible exceptions in ghc-pkg, rather than using ifdefs
Ian Lynagh <igloo@earth.li>**20081003161247] 
[Use a proper exception for IOEnvFailure, not just a UserError
Ian Lynagh <igloo@earth.li>**20081003160129] 
[Use an extensible-exceptions package when bootstrapping
Ian Lynagh <igloo@earth.li>**20081003140216
 Ifdefs for whether we had extensible exceptions or not were spreading
 through GHC's source, and things would only have got worse for the next
 2-3 years, so instead we now use an implementation of extensible
 exceptions built on top of the old exception type.
] 
[Expunge ThFake, cure Trac #2632
simonpj@microsoft.com**20081003140423
 
 This patch fixes a dirty hack (the fake ThFake module), which in turn
 was causing Trac #2632.
 
 The new scheme is that the top-level binders in a TH [d| ... |] decl splice
 get Internal names.  That breaks a previous invariant that things like
 TyCons always have External names, but these TyCons are never long-lived;
 they live only long enough to typecheck the TH quotation; the result is
 discarded.  So it seems cool.
 
 Nevertheless -- Template Haskell folk: please test your code.  The testsuite
 is OK but it's conceivable that I've broken something in TH.  Let's see.
 
] 
[Make a debug check more refined
simonpj@microsoft.com**20081003140144] 
[Add ASSERTs to all calls of nameModule
simonpj@microsoft.com**20081003135334
 
 nameModule fails on an InternalName.  These ASSERTS tell you
 which call failed.
 
] 
[Let parseModule take a ModSummary like checkAndLoadModule did.
Thomas Schilling <nominolo@googlemail.com>**20081002230412
 
 To get the ModSummary for a ModuleName getModSummary can be used.
 It's not called find* or lookup* because it assumes that the module is
 in the module graph and throws an exception if it cannot be found.
 Overall, I'm not quite sure about the usefulness of this function
 since the user has no control about which filetype to grab (hs or
 hs-boot).
] 
[Remove some out-of-date entries from .darcs-boring
Ian Lynagh <igloo@earth.li>**20081002201519] 
[TFs: Allow repeated variables in left-hand sides of instances
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081002134539
 
   MERGE TO 6.10
] 
[Clean up some comments
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081002074642
 
   MERGE TO 6.10
] 
[Make the new binder-swap stuff in OccurAnal work right for GlobalIds
simonpj@microsoft.com**20081002133002
 
 See Note [Binder swap on GlobalId scrutinees].  I hadn't got this
 right before, so repeated cases on imported Ids weren't getting optimised.
 
 
] 
[Minor refactoring only
simonpj@microsoft.com**20081002132929] 
[Comments only
simonpj@microsoft.com**20081002132833] 
[Zap dead-ness info appropriately in SpecConstr
simonpj@microsoft.com**20081002132657
 
 SpecConstr can make pattern binders come alive, so we must remember
 to zap their dead-variable annotation.  See extendCaseBndrs.
 
 (This was triggering a Core Lint failure in DPH.)
 
] 
[Suppress invalid Core Lint complaint about lack of constructors
simonpj@microsoft.com**20081002132426] 
[add some more GC roots (fixes conc048, and possibly some others)
Simon Marlow <marlowsd@gmail.com>**20081001164427] 
[Document +RTS -hT 
Simon Marlow <marlowsd@gmail.com>**20081001163222
 We forgot to document this in GHC 6.8
] 
[fix new-qualified-operators link
Simon Marlow <marlowsd@gmail.com>**20081001163105] 
[Proper error message for unsupported pattern signatures
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001144339
 - Pattern signatures must be identical to the type expected for the pattern;
   see Note [Pattern coercions]
 - We now signal an appropriate error if an equality coercion would be needed
   (instead of just generating Core that doesn't typecheck)
 
   MERGE TO 6.10
] 
[Prevent excessive inlining with DPH
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081002012055
 
 This adds a new flag -finline-if-enough-args which disables inlining for
 partially applied functions. It is automatically set by -Odph. This is a
 temporary hack and should remain undocumented.
 
 MERGE TO 6.10
 
] 
[On Windows, check that we have a good version of windres when configuring
Ian Lynagh <igloo@earth.li>**20081001171133] 
[Call $(PERL) rather than perl when making the manpage
Ian Lynagh <igloo@earth.li>**20080930155054] 
[don't install the installPackage program
Ian Lynagh <igloo@earth.li>**20080930145714] 
[Fix #2637: conc032(threaded2) failure
Simon Marlow <marlowsd@gmail.com>**20081001135549
 There was a race condition whereby a thread doing throwTo could be
 blocked on a thread that had finished, and the GC would detect this
 as a deadlock rather than raising the pending exception.  We can't
 close the race, but we can make the right thing happen when the GC
 runs later.
] 
[Remove outdated link to OGI webpage
Simon Marlow <marlowsd@gmail.com>**20080930150912] 
[TFs: Fixed InstContextNorm (and simplification of IPs)
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001131303
 
   MERGE TO 6.10
] 
[TcSimplify.reduceImplication: clean up
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001091315
 - This cleans up some of the mess in reduceImplication and documents the
   precondition on the form of wanted equalities properly.
 - I also made the back off test a bit smarter by allowing to back off in the
   presence of wanted equalities as long as none of them got solved in the
   attempt.  (That should save generating some superfluous bindings.)
 
   MERGE TO 6.10
] 
[Make sure to zonk the kind of coercion variables
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001053243
 
   MERGE TO 6.10
] 
[Remover PROT_EXEC flag from mmap()
Simon Marlow <marlowsd@gmail.com>**20080930141842
 Needed for #738 fix
] 
[Fix #2410: carefully generate unique names for CAF CCs
Simon Marlow <marlowsd@gmail.com>**20080930141812] 
[fix #2594: we were erroneously applying masks, as the reporter suggested
Simon Marlow <marlowsd@gmail.com>**20080930115611
 My guess is that this is left over from when we represented Int8 and
 friends as zero-extended rather than sign-extended.  It's amazing it hasn't
 been noticed earlier.
] 
[Unconditionalize definition of DYNAMIC_* so that libffi.so/.dll is removed even when BuildSharedLibs is reset to NO
Clemens Fruhwirth <clemens@endorphin.org>**20080930085449] 
[Type families: need to instantiate flexible skolems before other flexibles
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080930053559
 
 MERGE TO 6.10
] 
[Fix warnings
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080929142227] 
[Type families: consider subst rules both way
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080929141040
 - applySubstFam, applySubstVarVar & applySubstVarFam need to return their 
   second argument -to be put into the todo list- if the rule would be 
   applicable if the equalities would be supplied in the opposite order.
 
 MERGE TO 6.10
] 
[Clean up a bit and improve an error message
pepe**20080926211429] 
[Don't capture error calls in tryUser
pepe**20080926204836
 
 A previous patch slightly changed the semantics of tryUser.
 This patch restores the original behaviour
 (as expected in :print)
 
] 
[tweaks to this section of the docs
Simon Marlow <simonmar@microsoft.com>**20080927141834] 
[Add -outputdir flag (#2295)
Simon Marlow <simonmar@microsoft.com>**20080927141822] 
[oops, forgot to add -XNewQualifiedOperators to the flags table
Simon Marlow <simonmar@microsoft.com>**20080923140449] 
[Fix making OS X installers from source tarballs
Ian Lynagh <igloo@earth.li>**20080927150507
 I'm not sure why it works in the HEAD, but when making an installer
 from the 6.10.1 beta configure hangs when doing the CHECK_HIST_ERRORS
 test (during rl_initialize, I believe). Giving make /dev/null as stdin
 fixes it.
] 
[Fix #2411: missing case for CATCH_STM_FRAME in raiseAsync()
Simon Marlow <simonmar@microsoft.com>**20080926232806] 
[Fix parsing of -ignore-package flag.
Bertram Felgenhauer <int-e@gmx.de>**20080925053820] 
[Add an example of how to use SCCs to the user guide
Ian Lynagh <igloo@earth.li>**20080926203832] 
[Add some description of the +RTS -t/-s/-S output
Ian Lynagh <igloo@earth.li>**20080926200203] 
[Remove a redundant options pragma
Ian Lynagh <igloo@earth.li>**20080926152731] 
[Split ShowVersion etc off into a different type to DoInteractive etc
Ian Lynagh <igloo@earth.li>**20080926140539
 This fixes trac #1348 (ghci --help gave ghc's help), and also tidies
 things up a bit. Things would be even tidier if the usage.txt files were
 put into a .hs file, so that ShowUsage wouldn't need to be able to find
 the libdir.
] 
[Pass SRC_HC_OPTS to GHC when building GHC's Main.hs
Ian Lynagh <igloo@earth.li>**20080926131609] 
[Improve runghc docs; fixes trac #2477
Ian Lynagh <igloo@earth.li>**20080926124425] 
[Type families: fixes in flattening & finalisation
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080925225324
 * Finalisation didn't do the right thing for equalities x ~ y, where
   x was instantiated, but not zonked and y flexible (need to do y := x)
 * During flattening we weren't careful enough when turning wanteds 
   intermediates into locals
 
 Both bugs showed up in a small example of SPJ:
 
   linear :: HasTrie (Basis v) => (Basis v, v)
   linear =  basisValue
 
   class HasTrie a where
 
   type family Basis u :: *
 
   basisValue :: (Basis v,v)
   basisValue = error "urk"
 
] 
[Fix the behaviour of flags like --help and --version; fixes trac #2620
Ian Lynagh <igloo@earth.li>**20080925165618
 They should override other mode flags, not conflict with them
] 
[Follow the integer package changes
Ian Lynagh <igloo@earth.li>**20080925133855] 
[Type families: fix decomposition problem
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080925084139
 * Fixes the problem reported in 
   <http://www.haskell.org/pipermail/haskell-cafe/2008-July/044911.html>
] 
[Don't exit ghci if :info is called on an undefined identifier.
Judah Jacobson <judah.jacobson@gmail.com>**20080924212422] 
[Fix maintainer-clean
Ian Lynagh <igloo@earth.li>**20080924230553] 
[Use -f when making the runhaskell symlink
Ian Lynagh <igloo@earth.li>**20080924124255
 Otherwise installation fails if runhaskell already exists.
] 
[Use -perm -100 rather than -perm /a+x when looking for executable files
Ian Lynagh <igloo@earth.li>**20080924124137
 /a+x doesn't work on some Solaris and OS X machines. Spotted by
 Christian Maeder.
] 
[Use $(FIND) rather than find, as the former may be gfind
Ian Lynagh <igloo@earth.li>**20080924123323] 
[Look for gfind as well as find
Ian Lynagh <igloo@earth.li>**20080924123046] 
[In configure, don't call FPTOOLS_HADDOCK
Ian Lynagh <igloo@earth.li>**20080924122558
 We now use the in-tree haddock, so we don't need to look for it.
] 
[Use $(TAR) rather than tar
Ian Lynagh <igloo@earth.li>**20080924121759
 Fixes problems on Solaris, where we need to use gtar instead of tar
] 
[Add $(strip) to a Makefile test
Ian Lynagh <igloo@earth.li>**20080924120940
 Fixes making bindists on solaris. Patch from Christian Maeder.
] 
[Use test -f rather than test -e, for portability (Solaris)
Ian Lynagh <igloo@earth.li>**20080924120840] 
[Remove some dependencies on bootstrapping.conf from libraries/Makefile
Ian Lynagh <igloo@earth.li>**20080923205755
 They were causing some unnecessary work:
 Running make in a built tree reregisters the GHC package in
 bootstrapping.conf, and the build system thought that this updated
 timestamp meant that the configure stamps were out of date. This is
 particularly bad for the libraries with configure scripts, as those
 take a while to run.
 
 The bootstrapping.conf is built in an earlier phase ("make boot") so
 one shouldn't rely on the dependencies anyway.
] 
[Bump the version number to 6.11
Ian Lynagh <igloo@earth.li>**20080923165613] 
[Generalise type of 'defaultErrorHandler' so it can be used inside a Ghc session.
Thomas Schilling <nominolo@googlemail.com>**20080921085647] 
[Make "sh -e boot" work
Ian Lynagh <igloo@earth.li>**20080921111508] 
[Use -f rather than -e for portability
Ian Lynagh <igloo@earth.li>**20080921111436] 
[Add some special cases for putting dph in bindists
Ian Lynagh <igloo@earth.li>**20080921000406] 
[Escape a hash in the Makefile (it was breaking source dist creation)
Ian Lynagh <igloo@earth.li>**20080920232945] 
[Disallow package flags in OPTIONS_GHC pragmas (#2499)
Simon Marlow <simonmar@microsoft.com>**20080923173904] 
[#2566: emit a warning for 'ghc -c foo.bar'
Simon Marlow <simonmar@microsoft.com>**20080923144956
 
 $ ghc -c foo.bar
 Warning: the following files would be used as linker inputs, but linking is not being done: foo.bar
 ghc: no input files
 Usage: For basic information, try the `--help' option.
] 
[Fix to new executable allocation code (fixed print002 etc.)
Simon Marlow <simonmar@microsoft.com>**20080922210915
 The problem here is caused by the fact that info tables include a
 relative offset to the string naming the constructor.  Executable
 memory now resides at two places in the address space: one for writing
 and one for executing.  In the info tables generated by GHCi, we were
 calculating the offset relative to the writable instance, rather than
 the executable instance, which meant that the GHCi debugger couldn't
 find the names for constructors it found in the heap.
] 
[clean sm/Evac_thr.c and sm/Scav_thr.c
Simon Marlow <simonmar@microsoft.com>**20080922152827] 
[add -XNewQualifiedOperators (Haskell' qualified operator syntax)
Simon Marlow <simonmar@microsoft.com>**20080922152340] 
[Fix Trac #2597 (first bug): correct type checking for empty list
simonpj@microsoft.com**20080920212010
 
 The GHC front end never generates (ExplicitList []), but TH can.
 This patch makes the typechecker robust to such programs.
 
] 
[Fix Trac #2597 (second bug): complain about an empty DoE block
simonpj@microsoft.com**20080920211101
 
 When converting an empty do-block from TH syntax to HsSyn,
 complain rather than crashing.
 
] 
[Update dependencies
Ian Lynagh <igloo@earth.li>**20080920183534] 
[Fix building with GHC 6.6
Ian Lynagh <igloo@earth.li>**20080920162918] 
[Remove fno-method-sharing from the list of static flags
Ian Lynagh <igloo@earth.li>**20080920010635
 It is now a dynamic flag
] 
[Tidy up the treatment of dead binders
simonpj@microsoft.com**20080920175238
 
 This patch does a lot of tidying up of the way that dead variables are
 handled in Core.  Just the sort of thing to do on an aeroplane.
 
 * The tricky "binder-swap" optimisation is moved from the Simplifier
   to the Occurrence Analyser.  See Note [Binder swap] in OccurAnal.
   This is really a nice change.  It should reduce the number of
   simplifier iteratoins (slightly perhaps).  And it means that
   we can be much less pessimistic about zapping occurrence info
   on binders in a case expression.  
 
 * For example:
 	case x of y { (a,b) -> e }
   Previously, each time around, even if y,a,b were all dead, the
   Simplifier would pessimistically zap their OccInfo, so that we
   can't see they are dead any more.  As a result virtually no 
   case expression ended up with dead binders.  This wasn't Bad
   in itself, but it always felt wrong.
 
 * I added a check to CoreLint to check that a dead binder really
   isn't used.  That showed up a couple of bugs in CSE. (Only in
   this sense -- they didn't really matter.)
   
 * I've changed the PprCore printer to print "_" for a dead variable.
   (Use -dppr-debug to see it again.)  This reduces clutter quite a
   bit, and of course it's much more useful with the above change.
 
 * Another benefit of the binder-swap change is that I could get rid of
   the Simplifier hack (working, but hacky) in which the InScopeSet was
   used to map a variable to a *different* variable. That allowed me
   to remove VarEnv.modifyInScopeSet, and to simplify lookupInScopeSet
   so that it doesn't look for a fixpoint.  This fixes no bugs, but 
   is a useful cleanup.
 
 * Roman pointed out that Id.mkWildId is jolly dangerous, because
   of its fixed unique.  So I've 
 
      - localied it to MkCore, where it is private (not exported)
 
      - renamed it to 'mkWildBinder' to stress that you should only
        use it at binding sites, unless you really know what you are
        doing
 
      - provided a function MkCore.mkWildCase that emodies the most
        common use of mkWildId, and use that elsewhere
 
    So things are much better
 
 * A knock-on change is that I found a common pattern of localising
   a potentially global Id, and made a function for it: Id.localiseId
 
] 
[Gix the ghcii script
Ian Lynagh <igloo@earth.li>**20080919174651
 The ghc executable name doesn't have a version number on Windows, so
 don't put one in the script.
] 
[Create runhaskell as well as runghc
Ian Lynagh <igloo@earth.li>**20080919153010] 
[On Linux use libffi for allocating executable memory (fixed #738)
Simon Marlow <marlowsd@gmail.com>**20080919134602] 
[Move the context_switch flag into the Capability
Simon Marlow <marlowsd@gmail.com>**20080919102601
 Fixes a long-standing bug that could in some cases cause sub-optimal
 scheduling behaviour.
] 
[Fix building the extralibs tarball
Ian Lynagh <igloo@earth.li>**20080919133555
 We now need to dig the appropriate lines out of packages, rather than
 just catting libraries/extra-packages, in order to find out what the
 extralibs are.
] 
[Install libffi when installing frmo a bindist
Ian Lynagh <igloo@earth.li>**20080919130332] 
[Fix how we put libffi into bindists
Ian Lynagh <igloo@earth.li>**20080919125528] 
[TAG 6.10 branch has been forked
Ian Lynagh <igloo@earth.li>**20080919123437] 
[Don't require Parser.y in a source dist
Ian Lynagh <igloo@earth.li>**20080919115831] 
[Add HpcParser.hs to source dists
Ian Lynagh <igloo@earth.li>**20080919115816] 
[Fix the list of generated files that need to go into the source dists
Ian Lynagh <igloo@earth.li>**20080919112522] 
[Improve documentation of overlapping instances
simonpj@microsoft.com**20080919093147] 
[Put generated files in source dists
Ian Lynagh <igloo@earth.li>**20080918194424
 We don't want to require that users building source dists have alex/happy
] 
[Add libraries/syb to .darcs-boring
Ian Lynagh <igloo@earth.li>**20080918190116] 
[Fix a couple of issues with :print
pepe**20080918122133
       
       - Ticket #1995: Unsoundness with newtypes
       - Ticket #2475: "Can't unify" error when stopped at an exception
       
       In addition this patch adds the following:
       
       - Unfailingness: RTTI cannot panic anymore. 
         In case of failure, it recovers gracefully by returning the "I know nothing" type
       - A -ddump-rtti flag
 
] 
[wibble
pepe <mnislaih@gmail.com>**20080418172303] 
[RichTokenStream support
Chaddai Fouche <chaddai.fouche@gmail.com>**20080918165256
 
 This patch adds support for raw token streams, that contain more
 information than normal token streams (they contains comments at
 least). The "lexTokenStream" function brings this support to the
 Lexer module. In addition to that, functions have been added to
 the GHC module to make easier to recover of the token stream of 
 a module ("getTokenStream").
 
 Building on that, I added what could be called "rich token
 stream": token stream to which have been added the source string
 corresponding to each token, the function addSourceToToken takes
 a StringBuffer and a starting SrcLoc and a token stream and build
 this rich token stream. getRichTokenStream is a convenience
 function to get a module rich token stream. "showRichTokenStream"
 use the SrcLoc information in such a token stream to get a string
 similar to the original source (except unsignificant
 whitespaces). Thus "putStrLn . showRichTokenStream =<<
 getRichTokenStream s mod" should print a valid module source, the
 interesting part being to modify the token stream between the get
 and the show of course.
] 
[When passing gcc -B, also tell it where the mingw include directory is
Ian Lynagh <igloo@earth.li>**20080918143312] 
[Don't put the mingw directory in RTS's package.conf
Ian Lynagh <igloo@earth.li>**20080918143118] 
[Be more forceful when cleaning in compiler/ and ghc/
Ian Lynagh <igloo@earth.li>**20080918134443
 Now that the Cabal file is generated by configure, it would be nice
 if clean worked even if the cabal file is missing. So now we just rm -rf
 the dist directory.
] 
[Generate ghc.cabal and ghc-bin.cabal with configure
Ian Lynagh <igloo@earth.li>**20080918133636
 This allows us to put the proper version number into them
] 
[Make the ghci scripts point to the versioned GHC program, not just "ghc"
Ian Lynagh <igloo@earth.li>**20080918122516] 
[Fix Trac #1470: improve handling of recursive instances (needed for SYB3)
simonpj@microsoft.com**20080918161719
 
 This bug has been hanging around for a long time, as you'll see by its
 number. The fix implements a feature that is really needed by SYB3, to
 allow an instance to (rather indirectly) refer to itself.  The trickiness
 comes when solving the superclass constraints.
 
 The whoel issue is explained in Note [Recursive instances and superclases]
 in TcSimplify.
 
 In cracking this one I found I could remove the WantSCs argument to the
 ReduceMe flag, which is a worthwhile simplification.  Good!
 
] 
[Comments only
simonpj@microsoft.com**20080918155602] 
[Replace ASSERT with WARN, and explain why
simonpj@microsoft.com**20080918155245
 
 The DPH library tripped an ASSERT.  The code is actually OK, but it's
 badly-optimised so I changed it to WARN.  The issue here is explained
 in ClosureInfo, Note [Unsafe coerce complications].
 
] 
[Add a missing "prime" (env' --> env'') thereby fixing a tripping WARN.  Hurrah!
simonpj@microsoft.com**20080918155144] 
[Fix nasty infelicity: do not short-cut empty substitution in the simplifier
simonpj@microsoft.com**20080917162910
 
 I was perplexed about why an arity-related WARN was tripping. It took 
 me _day_ (sigh) to find that it was because SimplEnv.substExpr was taking
 a short cut when the substitution was empty, thereby not subsituting for
 Ids in scope, which must be done (CoreSubst Note [Extending the Subst]).
 
 The fix is a matter of deleting the "optimisation".  Same with
 CoreSubst.substSpec, although I don't know if that actually caused a
 probem.
 
] 
[Avoid arity reduction when doing eta-reduce
simonpj@microsoft.com**20080917162704
 
 We like things with high arity, so when doing eta reduction
 it's probably a good idea to avoid reducing arity.
 
] 
[Add extra WARN test
simonpj@microsoft.com**20080917162434
 
 This warning tests that the arity of a function does not decrease.
 And that it's at least as great as the strictness signature.
 
 Failing this test isn't a disater, but it's distinctly odd and 
 usually indicates that not enough information is getting propagated
 around, and hence you may get more simplifier iterations.
 
] 
[Comments only
simonpj@microsoft.com**20080917162350] 
[Re-adjust interaction between -ddump flags and force-recompilation
simonpj@microsoft.com**20080917161920
 
 If you say -ddump-xx we effectively add -fforce-recomp, so that you
 see your dump output.  But this works badly in --make mode, because
 you get the ddump output for every module, which is probably not what
 you want.  This patch forces recompilation with -ddump-X only in one-shot
 mode.  
 
 Of course, this only affects people using -ddump options.
 
] 
[Add Outputable GhcMode instance
simonpj@microsoft.com**20080917161847] 
[Improve error reporting for 'deriving' (Trac #2604)
simonpj@microsoft.com**20080917135104] 
[Add link to GADT paper re rigid types
simonpj@microsoft.com**20080916094521] 
[Fix MacOS X build: don't believe __GNUC_GNU_INLINE__ on MacOS X
Simon Marlow <marlowsd@gmail.com>**20080918112856] 
[require Alex version 2.1.0
Simon Marlow <marlowsd@gmail.com>**20080918112812
 Having 2.0.1 causes some unicode tests to fail
] 
[Type families: fixes in the new solver
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080918100934] 
[ext-core library: Parser fixes; make it build with the HEAD
Tim Chevalier <chevalier@alum.wellesley.edu>**20080918090349
 
 In the ext-core parser I guess I never tested:
 * existential type variable bindings in case alts
 * empty data declarations
 
 That'll learn me!
] 
[Wibble ghc-pkg imports to fix building on Windows
Ian Lynagh <igloo@earth.li>**20080917210813] 
[ghc-pkg needs to make package.conf with sensible permissions
Ian Lynagh <igloo@earth.li>**20080917192155
 It was calling openTempFile which uses a 600 permissions mask.
] 
[Change 'loadWithCompiler' callback argument to just print warnings.
Thomas Schilling <nominolo@googlemail.com>**20080917102925
 Rename function accordingly.
 
 The callback wasn't very flexible to begin with.  There's pretty much
 no way around to calling 'compile' inside that callback since
 'upsweep' depends on certain side effects of compile.  It therefore
 makes more sense to restrict the callback to its intended use only,
 namely to log warnings and errors.
] 
[Fix: GhcStage2HcOpts were being added to stage 3 too
Simon Marlow <marlowsd@gmail.com>**20080917085917] 
[Type families: unify with family apps in checking mode
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080917062548] 
[Type families: bug fixes
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916151254] 
[Keep sysnonyms folded in equalities if possible
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916075700] 
[Type families: apply flattening coercions in the right order
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916055136] 
[TcTyFuns: tidy warning
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080915031423] 
[Signature for Inst.isValidWantedEqInst
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080915030118] 
[Remember if RewriteInst is swapped & bug fixes
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080914163639] 
[Type families: fixed all non-termination in the testsuite
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080914120638] 
[Type families: completed the new equality solver
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080913133631
 - Implements normalisation of class constraints containing synonym family
   applications or skolems refined by local equalities.
 - Clean up of TcSimplify.reduceContext by using the new equality solver.
 - Removed all the now unused code of the old algorithm.
 - This completes the implementation of the new algorithm, but it is largely
   untested => many regressions.
] 
[Use the new -optdep flag replacements when building with >= GHC 6.9
Ian Lynagh <igloo@earth.li>**20080916220057
 Fix building the HEAD with itself
] 
[Use "exec" when running ghc in the wrapper
Ian Lynagh <igloo@earth.li>**20080915100217] 
[Add "#!/bin/sh" to runghc.wrapper
Ian Lynagh <igloo@earth.li>**20080914153507] 
[Add a "#!/bin/sh" to ghc.wrapper
Ian Lynagh <igloo@earth.li>**20080914153344] 
[Fixing directory creation to not create "" directories inside hpc report (harmless but needless)
andygill@ku.edu**20080916172313] 
[Fix Trac #2052 Allowing hpc to understand hsc files.
andygill@ku.edu**20080916030521] 
[Fix Trac #2311: creates subdirs for package coverage information
andygill@ku.edu**20080915204322] 
[FIX #2469: sort out our static/extern inline story
Simon Marlow <marlowsd@gmail.com>**20080916132222
 gcc has changed the meaning of "extern inline" when certain flags are
 on (e.g. --std=gnu99), and this broke our use of it in the header
 files.
] 
[Fix a warning
Simon Marlow <marlowsd@gmail.com>**20080916130922] 
[Make the matching of the filename ghc.exe case insensitive, fixes bug #2603
Neil Mitchell <ndmitchell@gmail.com>**20080916160311] 
[Stop using mremap() to allocate space for trampolines
Simon Marlow <marlowsd@gmail.com>**20080915145924
 
 This was causing problems because sometimes mremap() moved the memory
 we had allocated from the low 2Gb to above the 2Gb boundary, causing
 some linkages to fail.  There's no MAP_32BIT flag to mremap().
 
 So now we just use mmap(MAP_ANON|MAP_32BIT) to allocated space for the
 trampolines.  People without MAP_32BIT (eg. *BSD) will still have to
 do something else here, such as allocating memory from a fixed
 address; so I've made it slightly easier for those guys, but there's
 still work to do (#2063).
 
 One solution (that Simon PJ is advocating) is to turn on -fPIC by
 default on x86-64.  This is a good solution as it removes the need for
 MAP_32BIT, but doesn't work with -fvia-C, so probably this is for
 later.
] 
[add $(GhcStage[123]HcOpts)
Simon Marlow <marlowsd@gmail.com>**20080912155549] 
[Improve handling of -fdph-* flags
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916034746] 
[Add -fdph-this
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916033710] 
[Remove last traces of package ndp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916033428] 
[Clean up vectorisation error messages
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916013236] 
[Fix vectoriser bug
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080915042823
 
 We were using mkWildId in situations where it cause disastrous shadowing
] 
[Track changes to dph
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912114028] 
[Change desugaring of PArr literals
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912015609] 
[Expose the dph packages automatically if -dph-* is set
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912004403] 
[Don't panic on non-vectorisable expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080911054333] 
[-Odph implies -fno-spec-constr-count
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080910045339] 
[Improve warning for SpecConstr
simonpj@microsoft.com**20080915154908] 
[White space only
simonpj@microsoft.com**20080915154841] 
[Minor refactoring to get rid of Type.splitNewTyConApp
simonpj@microsoft.com**20080915072946] 
[Refactor the desugaring of RULE lhss a bit
simonpj@microsoft.com**20080915150601
 
 This is just a tidy-up.  Previously we were calling occurAnalyse
 twice on each LHS which was silly and a bit unclean too.  
 
 This patch should have no overall effect, though.
 
] 
[Do not use the Static Arg Transformation by default with -O2
simonpj@microsoft.com**20080915150433
 
 Max has some more heuristics to add, and is meanwhile worried
 that having SAT on by default will make some highly-tuned array
 programs worse.  So it's off by default.  
 
 Use -fstatic-argument-transformation to switch it on.
 
] 
[Comments, and a couple of asserts, only
simonpj@microsoft.com**20080914114641] 
[Fix Trac #2587: take account of type lets
simonpj@microsoft.com**20080914113434
 
 GHC allows a non-recursive let for type varaibles
 	let a = TYPE ty in ...
 But the free-variable finder had not caught up with this
 fact. This patch catches up.
 
] 
[Don't try to float type-lets
simonpj@microsoft.com**20080914113324
 
 A type let shouldn't really occur in SetLevels, but if it does,
 this patch makes sure it is left alone.
 
] 
[add refs and fix a bug (noted by Peter Gammie) in docs of arrow notation
Ross Paterson <ross@soi.city.ac.uk>**20080915104757] 
[Generalise type of 'withExtendedLinkEnv'.
Thomas Schilling <nominolo@googlemail.com>**20080915085738] 
[Use 'GhcMonad' in ghci/InteractiveUI.
Thomas Schilling <nominolo@googlemail.com>**20080915085633] 
[Use 'GhcMonad' in ghci/GhciTags.
Thomas Schilling <nominolo@googlemail.com>**20080915084922] 
[Use 'GhcMonad' in ghci/Debugger.
Thomas Schilling <nominolo@googlemail.com>**20080915084738] 
[Use 'GhcMonad' in ghci/GhciMonad.
Thomas Schilling <nominolo@googlemail.com>**20080915084646] 
[Use 'GhcMonad' in ghc/Main.
Thomas Schilling <nominolo@googlemail.com>**20080914232957] 
[Require PatternSignatures for bootstrapping compiler.
Thomas Schilling <nominolo@googlemail.com>**20080914232642] 
[Use 'GhcMonad' in InteractiveEval.
Thomas Schilling <nominolo@googlemail.com>**20080914232454] 
[Use 'GhcMonad' in GHC and split up checkModule into phases.
Thomas Schilling <nominolo@googlemail.com>**20080914232044
 
 I'm not sure I covered all the ways of throwing errors in the code.
 Some functions throw ProgramErrors, some error messages.  It's still
 quite a mess, but we're getting closer.  The missing cases are mostly
 errors that cannot be fixed by the API client either or are a result
 of wrong usage, so are in any case fatal.
 
 One function, 'getModuleInfo', still returns a 'Maybe', but the
 documentation suggests it should always succeed.  So I may change that
 soon.
 
 The spit-up of of 'checkModule' has pros and cons.  The various forms
 of 'checkModule*' now become:
 
  checkAndLoadModule ms False ~~>
     loadModule =<< typecheckModule =<< parseModule (ms_mod_name ms)
 
  checkAndLoadModule ms True ~~>
    loadModule =<< desugarModule =<< typecheckModule =<< parseModule (ms_mod_name ms)
 
  checkModule mn False ~~>
    typecheckModule =<< parseModule mn
 
  checkModule mn True ~~>
    desugarModule =<< typecheckModule =<< parseModule mn
 
 The old APIs cannot easily be provided, since the result type would be
 different depending on the second argument.  However, a more
 convenient API can be modelled on top of these four functions
 ({parse,typecheck,desugar,load}Module).
] 
[Use 'GhcMonad' in DriverPipeline.  Also haddockify a bit while we're at it.
Thomas Schilling <nominolo@googlemail.com>**20080914220628] 
[Use 'GhcMonad' in HscMain.
Thomas Schilling <nominolo@googlemail.com>**20080914213655] 
[Use 'GhcMonad' in DriverMkDepend.
Thomas Schilling <nominolo@googlemail.com>**20080914212113] 
[Haddockify DynFlags (partial).
Thomas Schilling <nominolo@googlemail.com>**20080914211718] 
[Haddockify 'IE'.
Thomas Schilling <nominolo@googlemail.com>**20080914210016] 
[Provide accessors for 'ImportDecl'.
Thomas Schilling <nominolo@googlemail.com>**20080914205811] 
[Start haddockifying 'HsBindLR'.
Thomas Schilling <nominolo@googlemail.com>**20080914205629] 
[Document 'parseStaticFlags'.
Thomas Schilling <nominolo@googlemail.com>**20080914205316] 
[Introduce 'GhcMonad' class and two default implementations 'Ghc' and 'GhcT'.
Thomas Schilling <nominolo@googlemail.com>**20080914204930
 
 This monad will be required by most public API calls.
] 
[Give the "Failing due to -Werror" message a name.
Thomas Schilling <nominolo@googlemail.com>**20080914173904] 
[Make typechecker top-level functions also return messages instead of
Thomas Schilling <nominolo@googlemail.com>**20080914173228
 printing them.
] 
[Reflect changes of desugarer error reporting in VectMonad.
Thomas Schilling <nominolo@googlemail.com>**20080914172711] 
[Generalise 'handleGhcException' to work with any 'ExceptionMonad'.
Thomas Schilling <nominolo@googlemail.com>**20080914172404] 
[Introduce an 'ExceptionMonad' class.
Thomas Schilling <nominolo@googlemail.com>**20080914172154
 
 This monad provides variants of 'catch', 'bracket', and 'finally', so
 exceptions can be handled in monads that wrap IO.  The latter two
 methods need to be part of the class definition, because GHC uses
 'block' and 'unblock' which are used in the definition of those two
 methods for the IO monad.  A perhaps better class interface would
 consist of 'gcatch', 'gblock', and 'gunblock' and let the latter two
 default to 'id' like is done for non-GHC implementations of 'bracket'
 and 'finally'.
] 
[Provide default MonadIO instance for IO.
Thomas Schilling <nominolo@googlemail.com>**20080914164245] 
[Return instead of print warnings and errors in desugarer.
Thomas Schilling <nominolo@googlemail.com>**20080914163641] 
[Return parser errors and warnings instead of dying.
Thomas Schilling <nominolo@googlemail.com>**20080914162644] 
[Add aliases for bags of warnings and errors.
Thomas Schilling <nominolo@googlemail.com>**20080914160337] 
[Slightly more helpful panic message in DynFlags
Tim Chevalier <chevalier@alum.wellesley.edu>**20080915080650] 
[Comments only: ".core" => ".hcr"
Tim Chevalier <chevalier@alum.wellesley.edu>**20080914203645] 
[We need to tell ghc-pkg to --force if we've only built a profiling library
Ian Lynagh <igloo@earth.li>**20080913153142] 
[If we're profiling GHC, don't bother building the GHC package the vanilla way
Ian Lynagh <igloo@earth.li>**20080913144820] 
[Remove the duplicate show rule in libraries/Makefile
Ian Lynagh <igloo@earth.li>**20080913144413] 
[Move the "show" target from target.mk to boilerplate.mk
Ian Lynagh <igloo@earth.li>**20080913141312
 target.mk isn't included everywhere, but show is always handy
] 
[Change how we detect if we are using the bootstrapping compiler or not
Ian Lynagh <igloo@earth.li>**20080913104658
 I think looking for $(GHC_COMPILER_DIR_ABS) was failing on the Windows
 buildbot due to different path separators. Now we just look for
 "inplace".
] 
[wibble the distrib Makefile
Ian Lynagh <igloo@earth.li>**20080912135932
 We now need to install driver after ghc
] 
[Reinstate the driver/ghc directory, to create a versioned GHC program
Ian Lynagh <igloo@earth.li>**20080912113619
 e.g. $(bindir)/ghc-6.9.20080911
] 
[If USE_NEW_MKDEPEND_FLAGS is YES then don't use the deprecated -optdep flags
Ian Lynagh <igloo@earth.li>**20080912110316] 
[Use --force-local when calling tar in bindisttest/
Ian Lynagh <igloo@earth.li>**20080912012855
 Otherwise it thinks that c:/foo is a remote file
] 
[Fix #2586, bug in THUNK_SELECTORs (again)
Simon Marlow <marlowsd@gmail.com>**20080912130404
 This time, we had forgetten the write barrier in one place.
] 
[TAG 2008-09-12 2
Ian Lynagh <igloo@earth.li>**20080912132848] 
Patch bundle hash:
3c3919626714dfd28b1cf2536f392c12317adba7

