
New patches:

[When registering base during installation, don't hide GHC.Prim
Ian Lynagh <igloo@earth.li>**20070719163920] {
hunk ./libraries/installPackage.hs 9
-import System.Cmd
hunk ./libraries/installPackage.hs 52
-              lib' = case library pd of
-                         Just lib ->
-                             let ems = filter (("GHC.Prim" /=))
-                                     $ exposedModules lib
-                                 lib_bi = libBuildInfo lib
-                                 lib_bi' = lib_bi {
-                                               extraLibs = extraExtraLibs
-                                                       ++ extraLibs lib_bi
-                                           }
-                             in lib {
-                                    exposedModules = ems,
-                                    libBuildInfo = lib_bi'
-                                 }
-                         Nothing ->
-                             error "Expected a library, but none found"
-              pd' = pd { library = Just lib' }
+              mkLib filt = case library pd of
+                           Just lib ->
+                               let ems = filter filt $ exposedModules lib
+                                   lib_bi = libBuildInfo lib
+                                   lib_bi' = lib_bi {
+                                                 extraLibs = extraExtraLibs
+                                                         ++ extraLibs lib_bi
+                                             }
+                               in lib {
+                                      exposedModules = ems,
+                                      libBuildInfo = lib_bi'
+                                   }
+                           Nothing ->
+                               error "Expected a library, but none found"
+              -- There's no files for GHC.Prim, so we will fail if we
+              -- try to copy them
+              pd_copy = pd { library = Just (mkLib ("GHC.Prim" /=)) }
+              pd_reg  = pd { library = Just (mkLib (const True)) }
hunk ./libraries/installPackage.hs 77
-              lbi_register = lbi { libsubdir = "$pkgid" }
-          (copyHook simpleUserHooks) pd' lbi_copy userHooks copyFlags
-          (regHook simpleUserHooks) pd' lbi_register userHooks registerFlags
+              lbi_reg = lbi { libsubdir = "$pkgid" }
+          (copyHook simpleUserHooks) pd_copy lbi_copy userHooks copyFlags
+          (regHook simpleUserHooks)  pd_reg  lbi_reg  userHooks registerFlags
}

Context:

[Create .hi-boot and .o-boot files in --make mode; fixes trac #1322
Ian Lynagh <igloo@earth.li>**20070719112736
 We were recompiling the .hs-boot files each time, as we were never
 writing out the compilation results.
] 
[Fixes for the unreg build
Ian Lynagh <igloo@earth.li>**20070718111751
 * Fix code output order when printing C so things are defined before
   they are used.
 * Generate _ret rather than _entry functions for INFO_TABLE_RET.
 * Use "ASSIGN_BaseReg" rather than "BaseReg =".
] 
[Factor 'callerSaveVolatileRegs' out of the NCG and into CgUtil
Michael D. Adams <adamsmd@cs.indiana.edu>**20070717014257
 
 This is needed because CgForeign and parts of the CPS pass now use
 'callerSaveVolatileRegs' and not all platforms have access to the NCG.
] 
[Implement the RTS side of GHC.Environment.getFullArgs
Ian Lynagh <igloo@earth.li>**20070717142050] 
[Adding pushing of hpc translation status through hi files.
andy@galois.com**20070717073510
 
 Now, if a single module *anywhere* on the module tree is built with
 -fhpc, the binary will enable reading/writing of <bin>.tix.
 
 Previously, you needed to compile Main to allow coverage to operate.
 
 This changes the file format for .hi files; you will need to recompile every library.
 
] 
[Handle unlifted tycons and tuples correctly during vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717064816] 
[Initialise global vectorisation environment properly
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717064233] 
[Vectorise type declarations
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717063309] 
[Vectorisation of data declarations (incomplete)
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717061306] 
[Add vectorisation environment transformers
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717054943] 
[Refactor
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052835] 
[Remove mapping from tycons to PA dictionaries from vect environment
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052323] 
[Add datacons to vectorisation environment
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052239] 
[Add fixV
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717051527] 
[Classification of tycons for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717050337] 
[Clean up
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717041957] 
[Move type vectorisation code to a separate module
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717041645] 
[Pass correct dictionary to lengthPA for single-element environments
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716110819] 
[Abstract over all in-scope type variables when creating closures
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716105847] 
[Pass PA dictionaries after all type arguments
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716105619
 
 This makes the code slightly simpler but only works because we do not support
 rank-n types.
] 
[Fix bug in lifted environment inspection code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716072338] 
[Lifting contexts have type Int#
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716065155
 
 This tracks the corresponding change in package ndp. With this patch, we
 finally can vectorise something (f x = x).
] 
[Fix bug in vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716063548] 
[Fix bad bug in type vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716062833] 
[Make vectorisation part of the optimiser pipeline
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716061900] 
[Get NDP prelnames from the right modules
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716061816] 
[Vectorise top-level bindings of a module
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716052406] 
[Vectorisation of top-level bindings
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716051139] 
[Store hoisted bindings in the global environment during vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716050019] 
[Add support for name cloning to vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716044826] 
[Refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716044801] 
[Adapt interface file code for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716035739
 
 For the most part, this patch simply renames functions which had been used
 for closure conversion and hence have CC in their name. It also changes the
 OccNames generated by vectorisation.
] 
[Collect hoisted vectorised functions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716021151] 
[First incomplete version of closure vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073318] 
[Refactor slightly
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073304] 
[Add utility function for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073227] 
[Add closedV
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713072843] 
[Export wrapFamInstBody and unwrapFamInstScrut
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070712045434] 
[Refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711044820] 
[Add whitespace
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711035839] 
[Only vectorise rank-1 expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711035616] 
[Move some vectorisation utility functions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710140934] 
[Modify PA dictionary computation to work with the class-based scheme
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710140221] 
[Clean up handling of PA dictionaries
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710133124] 
[FIX problem with not using the compat lib for Set in hpc tools.
andy@galois.com**20070715213602] 
[Properly parse GC blocks for functions with info tables
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715204116] 
[Removed 'allow_header_set' argument from 'pack_continuation'.
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715202235
 Because branches might now go to continuations and become calls to 
 continuations, 'allow_header_set' isn't always correct.
 Removing that parameter makes the conservative approximation.
 A better approximation might save one memory store is some cases.
] 
[Fixed conditional branches to proc points
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715202033
 These could occur due to GC checks.
] 
[Removed unused variable from compiler/cmm/CmmCPS.hs
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715201717] 
[Removed unused import from compiler/cmm/CmmCPS.hs
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715201638] 
[Keep the CPS pass from creating proc points due to unreachable parents.
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715162003
 
 The parser/flattener will generate an extra block after an if/else 
 statement even if both branches exit the function.  So it is possible
 for the input to the CPS pass to have dead/unreachable blocks.
 
 If a dead block goes to a live block then the live block would
 have more parents than the dead block and prior to this patch
 the live block would then be identified as a proc point.
 This is fixed by adding a check to see if the parent
 has at least one owner.
] 
[Fixed CPS to account for info tables not being next to code
Michael D. Adams <adamsmd@cs.indiana.edu>**20070715011141] 
[Fix the CPS pass to pack the continuation with correct label form.
Michael D. Adams <adamsmd@cs.indiana.edu>**20070714184955
 It was using the return point label before; now it uses the info label.
] 
[Typo
Ian Lynagh <igloo@earth.li>**20070716235635] 
[Corrections for warnings in the user guide
Ian Lynagh <igloo@earth.li>**20070716231741] 
[Sync the UG entries for -Wall, -w etc with reality
Ian Lynagh <igloo@earth.li>**20070716221943] 
[-w should turn off /all/ options, not just the -Wall ones
Ian Lynagh <igloo@earth.li>**20070716221442] 
[Implement -fwarn-dodgy-imports
Ian Lynagh <igloo@earth.li>**20070716220635
 You used to only be able to enable Opt_WarnDodgyImports with -W or -Wall.
 This patch adds the flag to en/disable it by name.
 (DodgyImports == importing T(..) when only T is exported).
] 
[Doc tweaks
Ian Lynagh <igloo@earth.li>**20070716212813] 
[Remove note that -E behaviour has changed (6.0 has the same note)
Ian Lynagh <igloo@earth.li>**20070716183624] 
[Doc tweaks
Ian Lynagh <igloo@earth.li>**20070716183540] 
[User guide tweaks
Ian Lynagh <igloo@earth.li>**20070716180352] 
[Doc tweak
Ian Lynagh <igloo@earth.li>**20070716174735] 
[Doc tweak
Ian Lynagh <igloo@earth.li>**20070716174428] 
[Correct user guide on when .ghci is read
Ian Lynagh <igloo@earth.li>**20070716172448] 
[Tweak punctuation in the user guide
Ian Lynagh <igloo@earth.li>**20070716171550] 
[ghci command docs tweaks
Ian Lynagh <igloo@earth.li>**20070716170601] 
[Fix alphabetical ordering in :? output
Ian Lynagh <igloo@earth.li>**20070716165149] 
[Fix alphabetical ordering in user guide
Ian Lynagh <igloo@earth.li>**20070716155544] 
[Typo
Ian Lynagh <igloo@earth.li>**20070716153413] 
[Remove another instance of the banner from the user guide
Ian Lynagh <igloo@earth.li>**20070715221444] 
[In user guide, don't claim that ghci never generates .hi files
Ian Lynagh <igloo@earth.li>**20070715221119
 With -fobject-code it now can do.
] 
[ghci debugger documentation tweaks
Ian Lynagh <igloo@earth.li>**20070715220517] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20070715122229] 
[ghci doc tweaks
Ian Lynagh <igloo@earth.li>**20070715122128] 
[Fix for print022 (round up when dividing type size by word size)
Ian Lynagh <igloo@earth.li>**20070714223940
 From Pepe Iborra (mnislaih)
] 
[Automatic RTTI for ghci bindings 
Pepe Iborra <mnislaih@gmail.com>**20070714114946
 
 With this patch, ghci runs rtti (bounded in the term treewith a max. depth of 10)
 automatically after evaluating any expression in the interactive env.
 In addition, a rtti step is performed on the local bindings in a breakpoint,
 before returning control to the user
 
 Let's see how well this works in practice
 
] 
[Teach :print to not panic when the DataCon for a closure is not exposed by the .hi file
Pepe Iborra <mnislaih@gmail.com>**20070712174323
 
 Previously the behaviour was to panic.
 Now it will print an approximated representation, 
 using the names (enclosed in keys, i.e. "<...>") 
 and the pointed subterms. Non pointed subterms cannot 
 be included in this representation:
 
 Prelude> let se = Data.Sequence.fromList (map Just "abc")
 Prelude> :eval se
 ()
 Prelude> :p se
 se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t1::t)) () (<Data.Sequence.Two> (_t2::t) (_t3::t))
 Prelude> :eval _t2
 ()
 Prelude> :p se
 se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t4::t1)) () (<Data.Sequence.Two> (Just 'b') (_t5::t1))
 Prelude>
 
 This patch also includes some fixes in the pretty printer 
 for the Term datatype
 
 
] 
[Fix an array indexing bug in getClosureData (used by :print)
Pepe Iborra <mnislaih@gmail.com>**20070712163012] 
[remove some leftovers of the first ghci debugger prototype
Pepe Iborra <mnislaih@gmail.com>**20070711234514] 
[Fix imports & add missing type signatures
Pepe Iborra <mnislaih@gmail.com>**20070711101749] 
[Ask for a HscEnv instead of a Session in InteractiveEval.obtainTerm
Pepe Iborra <mnislaih@gmail.com>**20070711095421
 
 This does a better job of showing that obtainTerm does not alter the Session
] 
[Add a max depth bound to the bfs implementation in cvReconstructType,
Pepe Iborra <mnislaih@gmail.com>**20070711092006
 
 to avoid looping when reconstructing insufficiently evaluated, circular structures
] 
[FIX panic from the GHC API
David Waern <davve@dtek.chalmers.se>**20070714124743
 In hscFileCheck, initialize md_vect_info with noVectInfo instead of
 a panic value, since this is a strict field.
] 
[init mg_inst_env when reading ext core
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070713073729] 
[Warning Police: No newline at end of file
Michael D. Adams <adamsmd@cs.indiana.edu>**20070713204028] 
[Warning Police: Unused imports
Michael D. Adams <adamsmd@cs.indiana.edu>**20070713201913] 
[Added libraries/parallel to .darcs-boring
Michael D. Adams <adamsmd@cs.indiana.edu>**20070713182117] 
[Adding draft and show to hpc
andy@galois.com**20070712194200
 
 we now have 
   
   hpc draft <TIX_FILE>
 
 This drafts up a candidate overlay for 100% coverage.
  
 and
 
   hpc show  <TIX_FILE>
 
 This show verbose details about a tix file; mainly for debugging.
 
 
] 
[Fixing Hpc SrcSpan usage; rejecting SrcSpans that are not in the source file
andy@galois.com**20070712171646
 
 Now, if you #include a file, you do not get any hpc-info from the included file.
 Previously, you got wrong information.
 
 Thanks to Neil Mitchell for pointing out the problem.
 
] 
[Revert the $* patch for earlier Perls as it breaks the build. Sorry. :/
audreyt@audreyt.org**20070712054351] 
[In mangler, lift the multiline-match pragma to toplevel and document it better.
audreyt@audreyt.org**20070711210449] 
[* Evil Mangler broke under Perl 5.9+ because $* is gone; this fixes it.
audreyt@audreyt.org**20070711182430
 
   Perl 4's special variable $* controls multi-line matching; it's been
   deprecated from Perl 5's inception, and is finally removed in Perl
   versions 5.9 (soon to be 5.10).
 
   Since GHC depends on Perl 5.6+ anyway, this patch introduces an
   equivalent effect to $* without using that special variable, by
   hooking into Perl's regex parsing process to add the /m flag.
 
] 
[Remove import
David Waern <davve@dtek.chalmers.se>**20070711194005] 
[Remove comment
David Waern <davve@dtek.chalmers.se>**20070711193504] 
[* Future-proof autoconf's Perl version test.
audreyt@audreyt.org**20070711165851
 
   GHC only works with Perl versions 5.6 and later; however
   the current test greps in a rather non-future-proof way
   (explicitly against 5.6 and 5.8).
   
   We instead exploit the "v-string" change in 5.6, which
   displays the version string as "v5.x.y", rather than
   the earlier format "version 5.xxx_yyy".  Hence grepping
   against "v5" will make it future proof for a while.
   (At least until Perl 6 is installed as the system perl.)
 
] 
[Fix putting hsicon.ico into the Windows installer; fixes #1515
Ian Lynagh <igloo@earth.li>**20070714161312
 It was done in a bit of the Makefile that was if'ed out for Windows.
] 
[Update the ghci "loading" section of the user guide
Ian Lynagh <igloo@earth.li>**20070714001346] 
[Don't show the ghci :? output in the user guide
Ian Lynagh <igloo@earth.li>**20070713223017
 The ghci command list is now much larger than it used to be, and it
 tends to go out of sync with the docs anyway.
] 
[User guide tweaks
Ian Lynagh <igloo@earth.li>**20070713222656] 
[User guide tweaks
Ian Lynagh <igloo@earth.li>**20070713221258] 
[Tweak Windows installation instructions in the user guide
Ian Lynagh <igloo@earth.li>**20070713220628] 
[Update the contents of the library directy in the user guide
Ian Lynagh <igloo@earth.li>**20070713214004] 
[User guide tweaks
Ian Lynagh <igloo@earth.li>**20070713210049] 
[Don't talk about nfib from the user guide now that we no longer ship it
Ian Lynagh <igloo@earth.li>**20070713200442] 
[Remove "What bundles there are" now we only have the standard one
Ian Lynagh <igloo@earth.li>**20070713195341] 
[Update bundle installation instructions
Ian Lynagh <igloo@earth.li>**20070713194424] 
[In the users guide, talk about configure flags
Ian Lynagh <igloo@earth.li>**20070712021759
 (rather than talking about tweaking the Makefile(-vars) by hand)
] 
[Remove "install in-place" blurb from the docs as it no longer works
Ian Lynagh <igloo@earth.li>**20070712015440] 
[doc tweak
Ian Lynagh <igloo@earth.li>**20070712015340] 
[Remove outdated bundle-contents description
Ian Lynagh <igloo@earth.li>**20070712015216] 
[Merge *UnboxedTuples flags
Ian Lynagh <igloo@earth.li>**20070712011254
 Merge
     ExpressionSignaturesUnboxedTuples
     TypeSynonymUnboxedTuples
 into
     UnboxedTuples
] 
[Adding hpcError, that improves error messages with usage
andy@galois.com**20070711072454] 
[Adding support for packages into hpc tools
andy@galois.com**20070711072349] 
[Adding tick boxes to the interface syntax; fixes #1510
andy@galois.com**20070711072002] 
[calling pprPanic rather than error when something goes wrong
andy@galois.com**20070711071935] 
[Adding better support for HsSyn
andy@galois.com**20070711071842] 
[Adding support for package names into hpc outputed code
andy@galois.com**20070711070555
 We store .mix files in
 
  .hpc/<package>/<the.module.name>.mix
 
 The package main the empty package (aka other naming passes), 
 so Main just is stored in
 
  .hpc/Main.tix
 
 This change in backwards compatable.
 
] 
[Stoping constant folding of calls to chr# that are invalid
andy@galois.com**20070711063520
 
 import GHC.Exts
 main = print (C# (chr# 0xffffffff#))
 
 This crashed at compile time (with or without hpc)
 Tickled by pending cross-module hpc inlining patch.
 
] 
[PA is now a class instead of a record
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710113822] 
[Add dsLookupClass
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710113543] 
[Lookup of class and family instances in vectorisation monad
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070710084949] 
[oops, revert part of the +RTS -V0 patch which was accidentally included
Simon Marlow <simonmar@microsoft.com>**20070710075428] 
[FIX rts build failure for powerPC build
andy@galois.com**20070710071713
 
 The rts was failing with 
 
 ../compiler/ghc-inplace -H64m -Onot -fasm -optc-O2 -static -I../gmp/gmpbuild -I. -#include HCIncludes.h -dcmm-lint  -hisuf thr_p_hi -hcsuf thr_p_hc -osuf thr_p_o -optc-DTHREADED_RTS -prof -#include posix/Itimer.h  -c PrimOps.cmm -o PrimOps.thr_p_o
 ghc-6.7.20070709: panic! (the 'impossible' happened)
   (GHC version 6.7.20070709 for powerpc-apple-darwin):
         iselExpr64(powerpc) %MO_U_Conv_I32_I64(16 / 4 - 2)
 
 There was a special case for x86; so it has been transliterated to the PPC, and the output code looks plausable.
 
] 
[Add vectorisation modules to package ghc
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710060623] 
[Put vectorisation monad into a separate file
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710060528] 
[Vectorisation of type abstractions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710042502] 
[Utility functions for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710042319] 
[Fix #1505; failure to catch syntax error in :break command
Simon Marlow <simonmar@microsoft.com>**20070709210706] 
[Fix the +RTS -V0 option introduced recently; it didn't work at all, now it does.
Simon Marlow <simonmar@microsoft.com>**20070708194423
 Also, I documented it.  +RTS -V0 disables the internal RTS timer
 completely, which is useful for repeatable debugginng.
] 
[FIX -fexcess-precision
Simon Marlow <simonmar@microsoft.com>**20070708192120
 Ugly hack; see comments for details
] 
[Tweak the start of the bin-dist docs in teh users guide
Ian Lynagh <igloo@earth.li>**20070711123755] 
[Remove reference to the now-dead fptools
Ian Lynagh <igloo@earth.li>**20070711000002] 
[Remove references to non-existent mailing lists
Ian Lynagh <igloo@earth.li>**20070710235838] 
[Remove the -bugs mailing list from the UG
Ian Lynagh <igloo@earth.li>**20070710235156
 We now have a separate bit on reporting bugs, via a different method, so
 this section didn't really make sense any more.
] 
[Users guide: Update FAQ URL
Ian Lynagh <igloo@earth.li>**20070710234509] 
[Users guide: GHC no longer comes with so many libraries
Ian Lynagh <igloo@earth.li>**20070710234236] 
[Update copyright date in teh users guide
Ian Lynagh <igloo@earth.li>**20070710233912] 
[Alpha-rename a variable
Ian Lynagh <igloo@earth.li>**20070710233308] 
[Opt_GlasgowExts is no longer used, so remove it
Ian Lynagh <igloo@earth.li>**20070710232635] 
[Implement -XStandaloneDeriving, the lexer is now glaexts-free
Ian Lynagh <igloo@earth.li>**20070710210129] 
['a'# syntax is enabled by the MagicHash extension
Ian Lynagh <igloo@earth.li>**20070710203924] 
["Foo"# syntax is enabled by the MagicHash extension
Ian Lynagh <igloo@earth.li>**20070710203606] 
[5# syntax is enabled by the MagicHash extension
Ian Lynagh <igloo@earth.li>**20070710203319] 
[{| and |} are -fgenerics syntax
Ian Lynagh <igloo@earth.li>**20070710202129] 
[Rank 2 and rank n types enable explicit forall syntax
Ian Lynagh <igloo@earth.li>**20070710202109] 
[RULES pragmas only need explicitForallEnabled, no -fglasgow-exts
Ian Lynagh <igloo@earth.li>**20070710180629] 
[Implement -XDeriveDataTypeable flag
Ian Lynagh <igloo@earth.li>**20070710180130] 
[Be finer-grained when turning on extensions for generated code
Ian Lynagh <igloo@earth.li>**20070710152406] 
[Tweak error message
Ian Lynagh <igloo@earth.li>**20070710130214] 
[Fix tcInstHeadTyNotSynonym
Ian Lynagh <igloo@earth.li>**20070710124738
 It was returning False for type variables amongst other things, so
 "instance C a" was telling us to use -XTypeSynonymInstances.
] 
[Add flag -XConstrainedClassMethods
Ian Lynagh <igloo@earth.li>**20070709204343] 
[Just alpha-rename a variable
Ian Lynagh <igloo@earth.li>**20070709200249] 
[Add -XUnliftedFFITypes flag
Ian Lynagh <igloo@earth.li>**20070709195408] 
[Implement unboxed tuples flags
Ian Lynagh <igloo@earth.li>**20070709193056
 -XUnboxedTuples
 -XExpressionSignaturesUnboxedTuples
 -XTypeSynonymUnboxedTuples
] 
[Tweak the undecidable-instance-checking logic
Ian Lynagh <igloo@earth.li>**20070709182209
 Just looking at Opt_GlasgowExts is not sufficient to see if we need
 to do an instance undecidability check. Rather than try to enumerate
 all the extensions that may require us to do the check we now always
 do it.
] 
[Define -XPartiallyAppliedClosedTypeSynonyms flag
Ian Lynagh <igloo@earth.li>**20070709181455] 
[Add -XPatternSigs flag
Ian Lynagh <igloo@earth.li>**20070709175411] 
[Vectorise lets
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709063753] 
[Split vectorisation environment into a global and a local part
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709062505] 
[First cut at vectorisation of expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053934] 
[Construction of PA dictionaries for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053918] 
[Vectorisation-specific imports
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053906] 
[Utilities for handling closure types during vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053819] 
[Add orElse combinator for vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053740] 
[Extend vectorisation environment
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053709] 
[Allow variables to be mapped to arbitrary CoreExprs in vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709042251] 
[Add failure to vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709040406] 
[Fixing native code generator for PowerPC
andy@galois.com**20070708074329] 
[FIX #1472 (also #249, which was not completely fixed previously): -caf-all bugs
Simon Marlow <simonmar@microsoft.com>**20070707192102] 
[allow build settings to be overriden by adding mk/validate.mk
Simon Marlow <simonmar@microsoft.com>**20070707191853] 
[undo: Get the path right for :list
Simon Marlow <simonmar@microsoft.com>**20070706152132
 This is breaking :list for someone.  If there's a problem here, we
 should fix it another way.
] 
[Remove unused binding
Ian Lynagh <igloo@earth.li>**20070709153350] 
[Add -XTypeOperators flag
Ian Lynagh <igloo@earth.li>**20070709153137] 
[Add -fprint-explicit-foralls flag; fixes trac #1474
Ian Lynagh <igloo@earth.li>**20070709143551] 
[Add -XFlexibleContexts flag
Ian Lynagh <igloo@earth.li>**20070709131353] 
[Add -XExistentialQuantification flag
Ian Lynagh <igloo@earth.li>**20070709124436] 
[Implement -XPolymorphicComponents
Ian Lynagh <igloo@earth.li>**20070709120415] 
[rename tv -> explicitForall
Ian Lynagh <igloo@earth.li>**20070709112505] 
[Implement -XUnicodeSyntax
Ian Lynagh <igloo@earth.li>**20070709093415] 
[libraries/hpc is boring (in the GHC repo)
Ian Lynagh <igloo@earth.li>**20070708173246] 
[Add flags for Rank2Types and RankNTypes
Ian Lynagh <igloo@earth.li>**20070708173150] 
[Make CPP a -X flag
Ian Lynagh <igloo@earth.li>**20070708165045] 
[Add PatternGuards flag
Ian Lynagh <igloo@earth.li>**20070708164236] 
[Add flags for TypeSynonymInstances and FlexibleInstances
Ian Lynagh <igloo@earth.li>**20070708162507] 
[Implement -XFunctionalDependencies
Ian Lynagh <igloo@earth.li>**20070708153236] 
[Implement -XRecursiveDo
Ian Lynagh <igloo@earth.li>**20070708150631] 
[Implement -XGeneralizedNewtypeDeriving
Ian Lynagh <igloo@earth.li>**20070708144354] 
[Add -XParallelListComp
Ian Lynagh <igloo@earth.li>**20070708134252] 
[Add -XMultiParamTypeClasses flag
Ian Lynagh <igloo@earth.li>**20070708122753] 
[Implement -XKindSignatures
Ian Lynagh <igloo@earth.li>**20070708120553] 
[Add -XEmptyDataDecls flag
Ian Lynagh <igloo@earth.li>**20070708112907] 
[Support the MagicHash extension as a flag and LANGUAGE pragma
Ian Lynagh <igloo@earth.li>**20070708111041] 
[Tidy up comments in DynFlags
Ian Lynagh <igloo@earth.li>**20070708102322] 
[Remove foldl' from Util; use the Data.List one instead
Ian Lynagh <igloo@earth.li>**20070706205410] 
[-ddump-hi-diffs shouldn't imply -fforce-recomp, that defeats the purpose
Simon Marlow <simonmar@microsoft.com>**20070705135320] 
[Added comment to the Cmm parser showing code for use one CPS is enabled
Michael D. Adams <t-madams@microsoft.com>**20070705170703] 
[Eliminated use of 'fromJust' from the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070705170637] 
[Fixed a bug in the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070705170515] 
[Updated the call to the CPS pass for the factoring out of cmmToRawCmm
Michael D. Adams <t-madams@microsoft.com>**20070705145031
 That call was and is commented out, but it serves as documentation
 for when the CPS pass will be turned on.
] 
[Added support for GC block declaration to the Cmm syntax
Michael D. Adams <t-madams@microsoft.com>**20070705144820] 
[Ensure no statements after CmmReturn are emitted
Michael D. Adams <t-madams@microsoft.com>**20070705094702] 
[FIX BUILD (Windows)
Simon Marlow <simonmar@microsoft.com>**20070706075931] 
[Vectorise unlifted and tuple tycons
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704055652] 
[Vectorisation of types
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704055239] 
[Add TyCons to vectorisation  monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704051512] 
[Vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704045445] 
[Add ndp docs
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070703063738] 
[Include vectorisation into the simplifier pipeline
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629051943] 
[Add vectorise subdirectory and dummy module
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629051316] 
[Add -fvectorise
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629043246] 
[Add NDP-related PrelNames
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629041605] 
[Make package ndp wired-in
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629015456] 
[FIX BUILD (OS X): Include correct gmp.h if using GMP.framework
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070706045649
 
 On OS X, we have to #include <GMP/gmp.h> if we are using GMP.framework. Before
 the recent GMP changes, gcc (incorrectly) used the gmp.h supplied by ghc but
 that is gone now. 
] 
[FIX BUILD (with GHC 6.2.x): System.Directory.Internals is no more
Simon Marlow <simonmar@microsoft.com>**20070705194647
 Update functions in Compat.Directory from originals in System.Directory
] 
[Warning Police
Michael D. Adams <t-madams@microsoft.com>**20070705142936] 
[hpc is now a corelib, so always build it
Ian Lynagh <igloo@earth.li>**20070705223137] 
[Update the in-tree GMP; fixes trac #832
Ian Lynagh <igloo@earth.li>**20070705215240
 gmp is now in a top-level directory and we only have the tarball in the
 darcs repo. It gets untarred if it is needed.
] 
[Tidy up IsIrred (no need for argument any more)
simonpj@microsoft.com**20070705075937] 
[Fix Trace #1494
simonpj@microsoft.com**20070704222221
 
 A tricky bug to do with the way the implication constraints are
 solved in TcSimplify.  See Note [Reducing implication constraints].
 
] 
[Use $(HC), not $(GHC) to compile ghc-inplace
Simon Marlow <simonmar@microsoft.com>**20070704135704
 
 $(GHC) is always the installed compiler, $(HC) changes depending on
 the stage.  This has the nice effect that we build stage2/ghc-inplace
 using the stage1 compiler, and get to take advantage of bugfixes in
 stage1 relative to $(GHC) (in particular I want the non-blocking stdin
 fix for stage2, otherwise piping the testsuite output through tee
 fails).
] 
[We don't need a SIGCONT handler any more
Simon Marlow <simonmar@microsoft.com>**20070704123606
 The SIGCONT handler was used to put stdin back in O_NONBLOCK mode,
 after the process is resumed, but we don't want to do that now: the
 standard handles are kept in blocking mode.
] 
[Add first cut of the validate script
Simon Marlow <simonmar@microsoft.com>**20070704122241] 
[Added support for update frames to the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070703214413
 (This required a bit of refactoring of CmmInfo.)
] 
[Fix error message in CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070703212555] 
[Factor cmmToRawCmm completely out of CPS
Michael D. Adams <t-madams@microsoft.com>**20070703211734
 This patch also fixes how the CPS handles functions with an empty body.
 Factoring cmmToRawCmm out of the CPS pass made that fix easier.
] 
[Remove dead code in the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070703094735] 
[Minor formatting cleanup.
Michael D. Adams <t-madams@microsoft.com>**20070703093625] 
[Moved 'continuationToProc' into a separate file, 'CmmCPSGen.hs'.
Michael D. Adams <t-madams@microsoft.com>**20070703093444] 
[Finished support for foreign calls in the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070703091320] 
[Multiple improvements to CPS algorithm.
Michael D. Adams <t-madams@microsoft.com>**20070702084221
 These include:
  - Stack size detection now includes function arguments.
  - Stack size detection now avoids stack checks just because of
    the GC block.
  - A CmmCall followed by a CmmBranch will no longer generate an extra
    continuation consisting just of the brach.
  - Multiple CmmCall/CmmBranch pairs that all go to the same place
    will try to use the same continuation.  If they can't (because
    the return value signature is different), adaptor block are built.
  - Function entry statements are now in a separate block.
    (Fixed bug with branches to the entry block having unintended effects.)
  - Other changes that I can't recall right now.
] 
[Allow safety information on calls in Cmm files
Michael D. Adams <t-madams@microsoft.com>**20070628101133] 
[FIX BUILD (Windows): catch up with changes to .cmm syntax
Simon Marlow <simonmar@microsoft.com>**20070703205234] 
[Improve formatting of errors, and fix a typo
simonpj@microsoft.com**20070703162814] 
[Fix for function info tables: the SRT field cannot be omitted if there are fields following it
Simon Marlow <simonmar@microsoft.com>**20070703140506] 
[pprTypeInfo: print slow entry pt
Simon Marlow <simonmar@microsoft.com>**20070703140304] 
[fix compilation for x86_64
Simon Marlow <simonmar@microsoft.com>**20070628124544] 
[Fix stack check amount for user declared continuation functions
Michael D. Adams <t-madams@microsoft.com>**20070628111812] 
[Remove unused parameter in force_gc_block for CPS
Michael D. Adams <t-madams@microsoft.com>**20070628101734] 
[Fix a bug in the Cmm parser where formal params didn't get bound
Michael D. Adams <t-madams@microsoft.com>**20070628101312] 
[Make CPS account for on-stack arguments when doing the stack check
Michael D. Adams <t-madams@microsoft.com>**20070628101006] 
[Comment and formatting updates for the CPS pass
Michael D. Adams <t-madams@microsoft.com>**20070628082543] 
[Fix typo from amend-record
Michael D. Adams <t-madams@microsoft.com>**20070627160555] 
[Implemented and fixed bugs in CmmInfo handling
Michael D. Adams <t-madams@microsoft.com>**20070627152130] 
[Formatting only
Michael D. Adams <t-madams@microsoft.com>**20070627151751] 
[Added stack checks to the CPS algorithm
Michael D. Adams <t-madams@microsoft.com>**20070627151503
 
 This eliminates one of the panics introduced by 
 the previous patch:
 'First pass at implementing info tables for CPS'
   
 The other panic introduced by that patch still remains.
 It was due to the need to convert from a
   ContinuationInfo to a CmmInfo.
   (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
   (codeGen/CgInfoTbls.hs:emitReturnTarget)
] 
[First pass at implementing info tables for CPS
Michael D. Adams <t-madams@microsoft.com>**20070627151257
 
 This is a fairly complete implementation, however
 two 'panic's have been placed in the critical path
 where the implementation is still a bit lacking so
 do not expect it to run quite yet.
 
 One call to panic is because we still need to create
 a GC block for procedures that don't have them yet.
 (cmm/CmmCPS.hs:continuationToProc)
 
 The other is due to the need to convert from a
 ContinuationInfo to a CmmInfo.
 (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
 (codeGen/CgInfoTbls.hs:emitReturnTarget)
] 
[Added an SRT to each CmmCall and added the current SRT to the CgMonad
Michael D. Adams <t-madams@microsoft.com>**20070627150903] 
[Added pointerhood to LocalReg
Michael D. Adams <t-madams@microsoft.com>**20070627150133
 This version should compile but is still incomplete as it introduces
 potential bugs at the places marked 'TODO FIXME NOW'.
 It is being recorded to help keep track of changes.
] 
[Fix bug relating to the return values of prim ops
Michael D. Adams <t-madams@microsoft.com>**20070626192352
 The return values were getting put in a LocalReg
 but that LocalReg needed to be stored into the enclosing
 expression's return register (e.g. R1).
] 
[Removed trailing whitespace
Michael D. Adams <t-madams@microsoft.com>**20070621084047] 
[Fixed typo in comment
Michael D. Adams <t-madams@microsoft.com>**20070619085834] 
[Add forgotten compiler/cmm/CmmInfo.hs
Michael D. Adams <t-madams@microsoft.com>**20070613105643] 
[Add formal parameters to the Cmm parser
Michael D. Adams <t-madams@microsoft.com>**20070606090510
 This patch is incomplete and will probably not compile by itself
 but it is being recorded to help keep track of later changes.
] 
[Minor comment update
Michael D. Adams <t-madams@microsoft.com>**20070606085328] 
[Changed C-- parser to allow multiple return values
Michael D. Adams <t-madams@microsoft.com>**20070529174553] 
[Added early draft of parameter passing to the CPS converter
Michael D. Adams <t-madams@microsoft.com>**20070529150616] 
[Minor code cleanup
Michael D. Adams <t-madams@microsoft.com>**20070529150436] 
[Fix bug with proc-point detection (only a temporary fix)
Michael D. Adams <t-madams@microsoft.com>**20070529150206] 
[Move global register saving from the backend to codeGen (CPS specific parts)
Michael D. Adams <t-madams@microsoft.com>**20070525195732] 
[Moved global register saving from the backend to codeGen
Michael D. Adams <t-madams@microsoft.com>**20070525193804
 
 This frees the Cmm data type from keeping a list of live global registers
 in CmmCall which helps prepare for the CPS conversion phase.
 
 CPS conversion does its own liveness analysis and takes input that should
 not directly refer to parameter registers (e.g. R1, F5, D3, L2).  Since
 these are the only things which could occur in the live global register
 list, CPS conversion makes that field of the CmmCall constructor obsolite.
 
 Once the CPS conversion pass is fully implemented, global register saving
 will move from codeGen into the CPS pass.  Until then, this patch
 is worth scrutinizing and testing to ensure it doesn't cause any performance
 or correctness problems as the code passed to the backends by the CPS
 converting will look very similar to the code that this patch makes codeGen
 pass to the backend.
] 
[Formatting changes for CPS code.
Michael D. Adams <t-madams@microsoft.com>**20070525170845] 
[Formatted documentation for compiler/cmm/Dataflow.hs
Michael D. Adams <t-madams@microsoft.com>**20070524161414] 
[Renamed CmmCPSData to CmmBrokenBlock and documented it
Michael D. Adams <t-madams@microsoft.com>**20070524160128] 
[Minor re-organizing of compiler/cmm/CmmCPS.hs
Michael D. Adams <t-madams@microsoft.com>**20070523121521] 
[Fixed missing '#include "HsVersions.h"'
Michael D. Adams <t-madams@microsoft.com>**20070523112830] 
[Factored proc-point analysis into separate file (compiler/cmm/CmmProcPoint)
Michael D. Adams <t-madams@microsoft.com>**20070523112729] 
[Removed an older version of selectStackFormat
Michael D. Adams <t-madams@microsoft.com>**20070523105248] 
[Refined the handling of stack frame headers
Michael D. Adams <t-madams@microsoft.com>**20070523105112] 
[Misc. cleanups to CPS converter
Michael D. Adams <t-madams@microsoft.com>**20070523094904] 
[Fixed CPS converter to preserve function names
Michael D. Adams <t-madams@microsoft.com>**20070523094721] 
[Added Proc-Point analysis to the CPS converter (not polished yet)
Michael D. Adams <t-madams@microsoft.com>**20070522153133] 
[Make CmmProc take CmmFormals as argument
Michael D. Adams <t-madams@microsoft.com>**20070522152008
 
 Since a CmmCall returns CmmFormals which may include
 global registers (and indeed one place in the code
 returns the results of a CmmCall into BaseReg) and
 since CPS conversion will change those return slots
 into formal arguments for the continuation of the call,
 CmmProc has to have CmmFormals for the formal arguments.
 
 Oddly, the old code never made use of procedure arguments
 so this change only effects the types and not any of the code.
 (Because [] is both of type [LocalReg] and CmmFormals.)
] 
[A small move of the comments in ./compiler/cmm/Dataflow.hs
Michael D. Adams <t-madams@microsoft.com>**20070522135305] 
[Added forgotten ./compiler/cmm/CmmLive.hs
Michael D. Adams <t-madams@microsoft.com>**20070521182517] 
[Document use of no-break space in lexer for C--
Michael D. Adams <t-madams@microsoft.com>**20070521090939] 
[Renamed BlockExitInfo to FinalStmt and all its constructors to match usage
Michael D. Adams <t-madams@microsoft.com>**20070521090028] 
[Major cleanup of the CPS code (but more is still to come)
Michael D. Adams <t-madams@microsoft.com>**20070518213458] 
[Added listSplitUniqSupply to ./compiler/basicTypes/UniqSupply.lhs
Michael D. Adams <t-madams@microsoft.com>**20070518200942
 
 The function
   listSplitUniqSupply :: UniqSupply -> [UniqSupply]
 splits a UniqSupply into an infinite list of supplies.
 It is a generalization of splitUniqSupply.
] 
[Second working draft of a CPS algorithm for C--.
Michael D. Adams <t-madams@microsoft.com>**20070518180004
 This is a safety check-in, before I begin a cleanup.
] 
[Fixed missing space in pretty printer for CmmJump
Michael D. Adams <t-madams@microsoft.com>**20070518132432] 
[Added spLimReg to complement spReg and hpReg
Michael D. Adams <t-madams@microsoft.com>**20070518132317] 
[Added types CmmActuals and CmmFormals for function parameters to Cmm
Michael D. Adams <t-madams@microsoft.com>**20070518132031] 
[First complete draft of a CPS algorithm.  (Still hackish needs polishing)
Michael D. Adams <t-madams@microsoft.com>**20070516160124] 
[Added "C--" foreign calling convention
Michael D. Adams <t-madams@microsoft.com>**20070516155758] 
[Added 'return' to C--, and made arguments to 'jump' into CmmExpr
Michael D. Adams <t-madams@microsoft.com>**20070516155337] 
[Typo fix in a comment.
Michael D. Adams <t-madams@microsoft.com>**20070514121231] 
[Fixed liveness analysis to use a slower but more correct solution
Michael D. Adams <t-madams@microsoft.com>**20070510135250] 
[Hooked the C-- CPS pass into the compilation pipeline
Michael D. Adams <t-madams@microsoft.com>**20070510134600
 At present it just annotates each block with a comment
 indicating what local registers are live at the start
 of the block.
] 
[Added compiler/cmm/Dataflow.hs
Michael D. Adams <t-madams@microsoft.com>**20070510103650
 Dataflow.hs contains an early draft of the live variable analysis.
 This draft contains known bugs and is being recorded only to provide
 a point to be revert back to if necessary.
] 
[Generate .LC_ indirection-symbols also on x86_64 (as on all other archs running Linux)
Clemens Fruhwirth <clemens@endorphin.org>**20070628102432] 
[Restrict .type directives to Linux targets only
Clemens Fruhwirth <clemens@endorphin.org>**20070630082243] 
[Try harder to avoid making a variable with RULES into a loop-breaker
simonpj@microsoft.com**20070702132431
 
 See Note [Recursive rules] in OccurAnal
 
] 
[clean installPackage too
Simon Marlow <simonmar@microsoft.com>**20070621113023] 
[FIX #1471: print strings using Haskell quoting syntax
Simon Marlow <simonmar@microsoft.com>**20070702092257] 
[The standard SUBDIRS in the top level Makefile should include libraries
Ian Lynagh <igloo@earth.li>**20070704140855] 
[Have the users guide just refer to the wiki page on how to report a bug
Ian Lynagh <igloo@earth.li>**20070702140936] 
[Remove mapAccumL, mapAccumR, mapAccumB
Ian Lynagh <igloo@earth.li>**20070702122651
 mapAccumL and mapAccumR are in Data.List now.
 mapAccumB is unused.
] 
[Remove the unused "Eager monad"
Ian Lynagh <igloo@earth.li>**20070702115204] 
[Add a type signature
Ian Lynagh <igloo@earth.li>**20070702114924] 
[Remove unused functions (applyToPair, applyToFst, applyToSnd)
Ian Lynagh <igloo@earth.li>**20070702114812] 
[Remove unused cfst (== const)
Ian Lynagh <igloo@earth.li>**20070702114709] 
[Remove prefixMatch and suffixMatch from Util
Ian Lynagh <igloo@earth.li>**20070702114208
 Use standard isPrefixOf/isSuffixOf instead.
] 
[Remove the large ghci banner, and the flags to choose which banner to show
Ian Lynagh <igloo@earth.li>**20070702110155
 Fans of the banner can add
     putStrLn "   ___         ___ _"
     putStrLn "  / _ \\ /\\  /\\/ __(_)"
     putStrLn " / /_\\// /_/ / /  | |   GHC Interactive, for Haskell 98."
     putStrLn "/ /_\\\\/ __  / /___| |   http://www.haskell.org/ghc/"
     putStrLn "\\____/\\/ /_/\\____/|_|   Type :? for help."
     putStrLn ""
 to their ~/.ghci
] 
[Print the right usage message
Ian Lynagh <igloo@earth.li>**20070702102651
 The logic for printing the ghc and ghci usage messages was inverted.
 However, the ghci case will never actually happen with the current code,
 as we print a usage message when cli_mode == ShowUsage and choose the
 ghci usage message if cli_mode == DoInteractive. This should be fixed
 as part of a larger options handling overhaul.
] 
[-fasm doesn't really take an argument
Ian Lynagh <igloo@earth.li>**20070702102629] 
[Need to build filepath before directory
Ian Lynagh <igloo@earth.li>**20070630141518] 
[Improve loop-breaker scoring in OccAnal (idea from Roman)
simonpj@microsoft.com**20070629215717
 
 See Note [Closure conversion] in OccurAnal for details of this
 patch (which merely involves *deleting* a test!).  The test case
 was produced by Roman, and shows up when doing closure conversion
 and vectorisation for data parallelism.  But perhaps other times too.
 
] 
[Many comments about oclose, plus a fix for Trac #1456
simonpj@microsoft.com**20070629215334
 
 There was a rather subtle bug in the way 'oclose' works when
 generalising top-level function definitions.  See
 	Note [Important subtlety in oclose]
 in FunDeps for an explanatoin.
 
 I also tidied up duplication in comments while I was here.
 
] 
[Improve error message (Trac #1446)
simonpj@microsoft.com**20070629203219] 
[Fixing hpc tools for 6.2 and 6.4
andy@galois.com**20070629185307] 
[Refine printing of names in unification mis-match
simonpj@microsoft.com**20070629161337] 
[Improve name-printing on unification mis-matches, when types share a common occurrence name
simonpj@microsoft.com**20070629114833
 
 This improvement arose from a suggestion in Trac #1465
 
] 
[Add flags for record extensions; still not working properly though
simonpj@microsoft.com**20070628082949] 
[Tidy up -keep* flags
Ian Lynagh <igloo@earth.li>**20070630133944] 
[FIX BUILD: we need --exclude-module Trace.* too
Simon Marlow <simonmar@microsoft.com>**20070629110240] 
[unbreak "recompile utils with stage 1"
Simon Marlow <simonmar@microsoft.com>**20070629090705] 
[Checking that type indexes contain no synonym family applications
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629063656] 
[RHS of a type instance must be a tau type
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629045931] 
[Overlap check for type families
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629042007
 - If two "type instance"s overlap, they right-hand sides must be syntactically
   equal under the overlap substitution.  (Ie, we admit limited overlap, but
   require the system to still be confluent.)
] 
[Further compileToCore improvements
Tim Chevalier <chevalier@alum.wellesley.edu>**20070629014831
 
 Per suggestions from Simon M:
 
 * Changed GHC.checkModule so that it doesn't call depanal.
 * Changed GHC.checkModule to optionally return Core bindings
 as a component of the CheckedModule that it returns (and 
 resulting changes to HscMain.hscFileCheck).
 * As a result, simplified GHC.compileToCore and changed it
 to load the given file so that the caller doesn't have to.
] 
[Fixed a documentation error
Michael D. Adams <t-madams@microsoft.com>**20070608091157] 
[disable .type directives on Windows; they confuse mingw's assembler
Simon Marlow <simonmar@microsoft.com>**20070628104516] 
[Set .type @object for all global symbols in NCG
Clemens Fruhwirth <clemens@endorphin.org>**20070627165150
 
 When linking against a dynamic library, the linker will emit a warning
 if no type information is present within the library. We generate the
 most trivial type for all externally visible labels, namely @object.
] 
[Also make proper references when not using fPIC but linking against dynamic libs
Clemens Fruhwirth <clemens@endorphin.org>**20070619142931] 
[Generate RelocatableReadOnlyData as .data
Clemens Fruhwirth <clemens@endorphin.org>**20070627160640
 
 The GNU linker expects read-only sections to be relocation
 free. Presumably because the dynamic linker maps all read-only
 sections as read-only mmaps and hence can't do relocations.
 
 If we want text-relocation-free shared libraries we have to put all
 relocations into writable sections, hence .data.  See
 http://www.mail-archive.com/cvs-all@haskell.org/msg15119.html
] 
[Generalize linkDynLib for ELF platforms
Clemens Fruhwirth <clemens@endorphin.org>**20070627090819
 
 To create a dynamic shared object (DSO) on ELF platforms, we invoke
 "gcc -shared". This in turn invokes ld. We supply -Bsymbolic to the
 linker, as "ld -Bsymbolic -shared -o <lib> <objs>" resolves all
 references from <objs> to <objs> at library creation time. 
 
 See http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode
 
] 
[Renames functions and constructors to fit their new ability for dynamic linking
Clemens Fruhwirth <clemens@endorphin.org>**20070627090100
 function: staticLink -> linkBinary (will link non static binaries too)
 function: doMkDLL -> linkDynLib (as we can link on ELF too where DLL is an inappropriate term)
 constructor: MkDLL -> LinkDynLib
] 
[PprMach.hs more accurate hack for x86-64, CmmLabelOff is not a relative reference.
Clemens Fruhwirth <clemens@endorphin.org>**20070626134636
 
 CmmLabelDiffOff are generated in .text and if printed as .quad, causes
 the assembler to emit a PC64 relocation. binutils prior to 2.17 don't
 understand PC64 relocation properly.
 
 pprDataItem is also used for printing SRT description tables. They are
 part of the .data section and there no PC relative relocations are
 emited. Hence, if we print a .long here, we get a absolute 32-bit
 relocation. 32-bit relocations are problematic in dynamic libraries,
 because dynamic library load addresses are loaded beyond the 32 bit
 boundary, causing the dynamic linker to warn at dynamic linking
 (loading the executable) that there are overflows in the
 relocation. The executable still seems to work because of the small
 memory model, but this is obviously wrong. Hence, remove CmmLabelOff
 from the classification, causing these references to be printed as
 .quad, causing correct 64-bit relocation as in the rest of the .data
 section.  
 
 So, this hack now prints PC32 relocations in .text (mostly in the info
 tables), and absolute 64-bit relocations in .data.
 
] 
[Fix typechecking bug with implicit parameters (Trac #1445)
simonmar@microsoft.com**20070628081105
 
 tcSplitFunTy_maybe wasn't dealing with types like
 	(?x::Bool) => Int
 Here, tcSplitFunTy_maybe should fail (as it would if there
 was a for-all), because the type is a quantified type.
 
 See Trac #1445, and test tc230.
 
] 
[White space only
simonmar@microsoft.com**20070628080203] 
[Improve error message when there is instance overlap
simonpj@microsoft.com**20070628073641] 
[Modify compileToCore to take just a filename
Tim Chevalier <chevalier@alum.wellesley.edu>**20070627224809
 
 Modified compileToCore to take just a session and a 
 filename, rather than a module name as well, since the module
 name can be computed from the filename. 
] 
[making hpc live
andy@galois.com**20070627181513] 
[+RTS -xbXXXXX sets the "heap base" to 0xXXXXXX
Simon Marlow <simonmar@microsoft.com>**20070627093646
 When debugging the GC and storage manager we often want repeated runs
 of the program to allocate memory at the same addresses, so that we
 can set watch points.  Unfortunately the OS doesn't always give us
 memory at predictable addresses.  This flag gives the OS a hint as to
 where we would like our memory allocated.  Previously I did this by
 changing the HEAP_BASE setting in MBlock.h and recompiling, this patch
 just adds a flag so I don't have to recompile.
] 
[+RTS -V0 disables the interval timer completely (for repeatable debugging)
Simon Marlow <simonmar@microsoft.com>**20070627092941] 
[FIX BUILD (on Windows): follow changes to make threaded RTS compile with -fasm
simonmar@microsoft.com**20070627101604] 
[Fix names of coercions in newtype instances
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070627094200
 - Thanks to Roman for spotting the problem.
] 
[Cleaning up Hpc.c; adding support for reflection into Hpc.
andy@galois.com**20070627063631] 
[Fixing Makefile hpc to use compat
andy@galois.com**20070627060721] 
[Adding Tix to compat library, so that hpc in utils can use it
andy@galois.com**20070627060430] 
[fixing creation of directory for html output; fixing html markup for 0% bars.
andy@galois.com**20070627054846] 
[Fixing -fhpc flag to allow -fno-hpc
andy@galois.com**20070627053808] 
[Fixed deriving of associated data types
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070627054834
 - We forgot to pull the data declarations nested in class instances out of
   the instances when collecting all the predicates that we need derive.
   Thanks to Roman for spotting this.
] 
[add missing case for compiling 64-bit operations on x86
Simon Marlow <simonmar@microsoft.com>**20070626211153] 
[Make the threaded RTS compilable using -fasm
Simon Marlow <simonmar@microsoft.com>**20070626211058
 We needed to turn some inline C functions and C macros into either
 real C functions or C-- macros.
] 
[x86_64: fix a few bugs in the >8 floating point args case
Simon Marlow <simonmar@microsoft.com>**20070626103055] 
[make inplace scripts less sensitive to /bin/sh quoting by avoiding \
Simon Marlow <simonmar@microsoft.com>**20070623200006] 
[excluding Trace.Hpc.* when using the compat library
andy@galois.com**20070626072219] 
[Making -fhpc work with a stage1 build, via the compat 'package'.
andy@galois.com**20070626053429] 
[Adding hpc lib as part of the compat 'package'
andy@galois.com**20070626051136] 
[Cleanup Hpc sub-system, remove hpc-tracer implementation.
andy@galois.com**20070626041958] 
[Add a compileToCore function to the GHC API
Tim Chevalier <chevalier@alum.wellesley.edu>**20070625220608
 
 Added a compileToCore function to the GHC API that takes a
   session, module, and filename, and returns a list of Core
   bindings if successful. This is just a first try and could
   probably be improved (for example, there's probably a way to
   get the filename from the module so that it doesn't have to 
   be passed in, I just don't see it offhand.)
 
] 
[withExtendedLinkerState: don't revert the whole state
Simon Marlow <simonmar@microsoft.com>**20070625151455
 Fixes test failures print017 and print024
] 
[Print infix type constructors in an infix way
simonpj@microsoft.com**20070625152858
 
 Fixes Trac #1425.  The printer for types doesn't know about fixities.
 (It could be educated to know, but it doesn't at the moment.)  So it
 treats all infix tycons as of precedence less than application and function
 arrrow.
 
 I took a slight shortcut and reused function-arrow prededence, so I think
 you may get
 	T -> T :% T
 meaning
 	T -> (T :% T)
 
 If that becomes a problem we can fix it.
 
] 
[Clamp -O flag to beween 0 and 2
simonpj@microsoft.com**20070625152616
 
 Fixes Trac #1272
 
] 
[Adding hpc tools, as a single program.
andy@galois.com**20070625070943] 
[Define SUBDIRS in Makefile (needed for clean; fixes trac #1440)
Ian Lynagh <igloo@earth.li>**20070625174952] 
[Tweak the configuration and installation slightly
Ian Lynagh <igloo@earth.li>**20070625174011
 Make it so that the documentation ends up where Cabal expects it to be
 on Windows (prep-bin-dist-mingw used to move it).
] 
[Update version numbering policy in the users guide
Ian Lynagh <igloo@earth.li>**20070623224440] 
[Fix an error message
Ian Lynagh <igloo@earth.li>**20070623190653
 `y' in the error message
     `x' is not a (visible) method of class `y'
 had gone missing.
] 
[turning off -fhpc in stage1 built ghc
andy@galois.com**20070622225226] 
[removing -fhpc-tracer from ghc, is subsumed by the GHC debugger
andy@galois.com**20070622224226] 
[Stage2 now used the package hpc to get the hpc datastructures
andy@galois.com**20070622224038
 Stage1 no longer supports hpc (-fhpc is ignored)
 
] 
[Fix typo in Makefile
Ian Lynagh <igloo@earth.li>**20070622222133] 
[Adding hpc package to ghc core libraries
andy@galois.com**20070622171851] 
[Change how the libraries Makefile adds --configure-option= flags; fixes #1431
Ian Lynagh <igloo@earth.li>**20070622160951
 We now assume that each configure option is quoted with '', and thus
 replace " '" with " --configure-option='".
] 
[update with new libraries
Simon Marlow <simonmar@microsoft.com>**20070622131211] 
[FIX BUILD on Windows: horrible hack to work around make(?) bug
Simon Marlow <simonmar@microsoft.com>*-20070621144519] 
[FIX BUILD (on Windows): Cabal must invoke compiler/stage1/ghc-inplace
Simon Marlow <simonmar@microsoft.com>**20070622111634
 not compiler/ghc-inplace, which is a symlink.
 
] 
[remove unnecessary cruft
Simon Marlow <simonmar@microsoft.com>**20070622075602] 
[FIX BUILD: all builds need --template, not just Windows
Simon Marlow <simonmar@microsoft.com>**20070622075444] 
[ignore all but the last --template option
Simon Marlow <simonmar@microsoft.com>**20070622075417] 
[Unbreak the stage-2 compiler (record-type changes)
simonpj@microsoft.com**20070621170131] 
[-fglasgow-exts implies -X=GADTs
simonpj@microsoft.com**20070621162152] 
[FIX read040: patterns with type sig on LHS of do-binding
simonpj@microsoft.com**20070621143721
 
 f () = do { x :: Bool <- return True; ... }
 
 For some reason the production for 'pat' required 'infixexp' on the
 LHS of a do-notation binding.  This patch makes it an 'exp', which 
 thereby allows an expression with a type sig.
 
 Happily, there are no new shift-reduce errors, so I don't think this
 will break anything else.
 
 
 
] 
[Another wibble to the head-exploded error message (suggested by David Roundy)
simonpj@microsoft.com**20070621141144] 
[Use the correct flag for controlling scoped type variables in an instance decl
simonpj@microsoft.com**20070621141114] 
[Improve 'my head exploded' error message 
simonpj@microsoft.com**20070621131650] 
[FIX BUILD: add missing prime!
simonpj@microsoft.com**20070621131625] 
[FIX BUILD on Windows: horrible hack to work around make(?) bug
Simon Marlow <simonmar@microsoft.com>**20070621144519] 
[yet more fixes: Cygwin broke this time
Simon Marlow <simonmar@microsoft.com>**20070621140653] 
[fix bugs with hsc2hs-inplace
Lemmih <lemmih@gmail.com>**20070621132825] 
[mk/build.mk is optional
Lemmih <lemmih@gmail.com>**20070621130727] 
[further fixes to the inplace scripts
Lemmih <lemmih@gmail.com>**20070621130657] 
[use a binary for hsc2hs-inplace too
Simon Marlow <simonmar@microsoft.com>**20070621121426] 
[Fix problems with new inplace stuff on Cygwin
Simon Marlow <simonmar@microsoft.com>**20070621114147] 
[FIX BUILD: can't build the makefiles during make boot
Simon Marlow <simonmar@microsoft.com>**20070621095154] 
[clean up lib/{GNUmakefile,Makefile.local}
Simon Marlow <simonmar@microsoft.com>**20070620132809] 
[default_target should be "all", not "build"
Simon Marlow <simonmar@microsoft.com>**20070620132001] 
[add comment
Simon Marlow <simonmar@microsoft.com>**20070620131949] 
[Fix a problem with package.mk being included too early
Simon Marlow <simonmar@microsoft.com>**20070620122224] 
[Use setup makefile + make by default to build libraries
Simon Marlow <simonmar@microsoft.com>**20070620122009
 
 The advantages of this are
   (a) it's a step closer to getting -j working again (make -j works in
       an individual library, but not in libraries/ yet).
   (b) it's easier to hack on libraries: make dist/build/Foo.o
   (c) it's a step closer to getting HC bootstrapping again
 
 The build system creates <lib>/GNUmakefile as part of 'make boot'.
 This was chosen so as not to interfere with existing Makefiles, but
 it's a bit of a hack.  (previously I used CabalMakefile, but that
 means adding -f CabalMakefile each time you run make, and that's a
 pain).
] 
[Use a real binary instead of scripts for ghc-inplace
Simon Marlow <simonmar@microsoft.com>**20070621101324
 Fixes various problems with getting the scripts right on Windows.
 Binaries are universally executable by /bin/sh, cmd.exe and rawSystem,
 so this allows us to remove some platform-specific hacks.
] 
[Add several new record features
Lemmih <lemmih@gmail.com>**20070621091552
 
 1. Record disambiguation (-fdisambiguate-record-fields)
 
 In record construction and pattern matching (although not
 in record updates) it is clear which field name is intended
 even if there are several in scope.  This extension uses
 the constructor to disambiguate.  Thus
 	C { x=3 }
 uses the 'x' field from constructor C (assuming there is one)
 even if there are many x's in scope.
 
 
 2. Record punning (-frecord-puns)
 
 In a record construction or pattern match or update you can 
 omit the "=" part, thus
 	C { x, y }
 This is just syntactic sugar for
 	C { x=x, y=y }
 
 
 3.  Dot-dot notation for records (-frecord-dot-dot)
 
 In record construction or pattern match (but not update) 
 you can use ".." to mean "all the remaining fields".  So
 
 	C { x=v, .. }
 
 means to fill in the remaining fields to give
 
 	C { x=v, y=y }
 
 (assuming C has fields x and y).  This might reasonably
 considered very dodgy stuff.  For pattern-matching it brings
 into scope a bunch of things that are not explictly mentioned;
 and in record construction it just picks whatver 'y' is in
 scope for the 'y' field.   Still, Lennart Augustsson really
 wants it, and it's a feature that is extremely easy to explain.
 
 
 Implementation
 ~~~~~~~~~~~~~~
 I thought of using the "parent" field in the GlobalRdrEnv, but
 that's really used for import/export and just isn't right for this.
 For example, for import/export a field is a subordinate of the *type
 constructor* whereas here we need to know what fields belong to a
 particular *data* constructor.
 
 The main thing is that we need to map a data constructor to its
 fields, and we need to do so in the renamer.   For imported modules
 it's easy: just look in the imported TypeEnv.  For the module being
 compiled, we make a new field tcg_field_env in the TcGblEnv.
 The important functions are
 	RnEnv.lookupRecordBndr
 	RnEnv.lookupConstructorFields
 
 There is still a significant infelicity in the way the renamer
 works on patterns, which I'll tackle next.
 
 
 I also did quite a bit of refactoring in the representation of
 record fields (mainly in HsPat).***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 ./compiler/deSugar/Check.lhs -3 +5
 M ./compiler/deSugar/Coverage.lhs -6 +7
 M ./compiler/deSugar/DsExpr.lhs -6 +13
 M ./compiler/deSugar/DsMeta.hs -8 +8
 M ./compiler/deSugar/DsUtils.lhs -1 +1
 M ./compiler/deSugar/MatchCon.lhs -2 +2
 M ./compiler/hsSyn/Convert.lhs -3 +3
 M ./compiler/hsSyn/HsDecls.lhs -9 +25
 M ./compiler/hsSyn/HsExpr.lhs -13 +3
 M ./compiler/hsSyn/HsPat.lhs -25 +63
 M ./compiler/hsSyn/HsUtils.lhs -3 +3
 M ./compiler/main/DynFlags.hs +6
 M ./compiler/parser/Parser.y.pp -13 +17
 M ./compiler/parser/RdrHsSyn.lhs -16 +18
 M ./compiler/rename/RnBinds.lhs -2 +2
 M ./compiler/rename/RnEnv.lhs -22 +82
 M ./compiler/rename/RnExpr.lhs -34 +12
 M ./compiler/rename/RnHsSyn.lhs -3 +2
 M ./compiler/rename/RnSource.lhs -50 +78
 M ./compiler/rename/RnTypes.lhs -50 +84
 M ./compiler/typecheck/TcExpr.lhs -18 +18
 M ./compiler/typecheck/TcHsSyn.lhs -20 +21
 M ./compiler/typecheck/TcPat.lhs -8 +6
 M ./compiler/typecheck/TcRnMonad.lhs -6 +15
 M ./compiler/typecheck/TcRnTypes.lhs -2 +11
 M ./compiler/typecheck/TcTyClsDecls.lhs -3 +4
 M ./docs/users_guide/flags.xml +7
 M ./docs/users_guide/glasgow_exts.xml +42
] 
[Remove the unused HsExpr constructor DictPat
Lemmih <lemmih@gmail.com>**20070618124605] 
[Fix a bug in MatchCon, and clarify what dataConInstOrigArgTys does
Lemmih <lemmih@gmail.com>**20070607213837
 
 There was an outright bug in MatchCon.matchOneCon, in the construction
 of arg_tys.  Easily fixed.  It never showed up becuase the arg_tys are
 only used in WildPats, and they in turn seldom have their types looked
 (except by hsPatType).  So I can't make a test case for htis.
 
 While I was investigating, I added a bit of clarifation and
 invariant-checking to dataConInstOrigArgTys and dataConInstArgTys
 
] 
[Do not perform a worker/wrapper split for a NOINLINE function
Lemmih <lemmih@gmail.com>**20070607213523
 
 This came up in an email exchange with Duncan Coutts in May 2007.
 If a function is marked NOINLINE there is really no point in 
 doing a worker/wrapper split, because the wrapper will never
 be inlined.
 
 
] 
[Fix Trac #1402: typo in specialiser
Lemmih <lemmih@gmail.com>**20070607185534
 
 This patch fixes a plain bug in the specialiser (rhs_bndrs instead
 of rhs_ids) which made GHC crash in obscure cases.  
 
 It exposed a case in which we might not do all possible specialisation;
 see Note [Specialisation shape].  It's not an important case, but I've
 added a warning in DEBUG mode.
 
 Trac #1402.  Test is spec003.hs
 
] 
[Wibble: make -fno-implicit-prelude work
simonpj@microsoft.com**20070621072456] 
[Remove an incorrect claim that [t| ... |] isn't implemented yet
Ian Lynagh <igloo@earth.li>**20070621003103] 
[Make building haddock docs opt-in rather than opt-out
Ian Lynagh <igloo@earth.li>**20070620235909] 
[Don't assume that the main repo is called "ghc" in darcs-all
Ian Lynagh <igloo@earth.li>**20070620234007
 Fixes working in branches where that isn't true.
] 
[Trivial fix to clear Trac #1386
simonpj@microsoft.com**20070620165836] 
[Wibbles in flaggery, concerning backward compatibility with -f flags
simonpj@microsoft.com**20070620165801] 
[Implement -X=GADTs and -X=RelaxedPolyRec
simonpj@microsoft.com**20070620163359
 
 Two new -X flags, one for GADTs and one for relaxed polymorphic recursion
 
 This also fixes a rather confusing error message that the Darcs folk 
 tripped over.
 
] 
[Use -X for language extensions
simonpj@microsoft.com**20070620162656
 
 We've often talked about having a separate flag for language extensions,
 and now we have one. You can say
 
 	-XImplicitParams
 	-X=ImplicitParams
 	-Ximplicit-params
 
 as you like.  These replace the "-f" flags with similar names (though
 the -f prefix will serve as a synonym for -X for a while).  
 
 There's an optional "=", and the flag is normalised by removing hyphens
 and lower-casing, so all the above variants mean the same thing.
 
 The nomenclature is intended to match the LANGUAGE pramgas, which are
 defined by Cabal.  So you can also say
 
 	{-# LANGUAGE ImplicitParams #-}
 
 But Cabal doesn't have as many language options as GHC does, so the -X
 things are a superset of the LANGUAGE things.
 
 The optional "=" applies to all flags that take an argument, so you can,
 for example, say
 	
 	-pgmL=/etc/foo
 
 I hope that's ok.  (It's an unforced change; just fitted in.)
 
 I hope we'll add more -X flags, to replace the portmanteau -fglasgow-exts 
 which does everything!  
 
 I have updated the manual, but doubtless missed something.
 
 
 
] 
[Unused import
simonpj@microsoft.com**20070620161341] 
[turning back on case liberation when using hpc
andy@galois.com**20070620150244] 
[remove debugging code accidentally left in
Simon Marlow <simonmar@microsoft.com>**20070620125742] 
[Improve the handling of deriving, in error cases
simonpj@microsoft.com**20070620102828
 
 I'd been too ambitious with error handling for 'deriving', and got it
 entirely wrong.  This fixes it.  See extensive 
 	Note [Exotic derived instance contexts]
 in TcSimplify.  (Most of the extra lines are comments!)
 
] 
[More refactoring in TcSimplify
simonpj@microsoft.com**20070620093646
 
 This re-jig tides up the top-level simplification, and combines in one
 well-commented function, approximateImplications, the rather ad-hoc
 way of simplifying implication constraints during type inference.
 
 Error messages get a bit better too.
 
] 
[Fix egregious sharing bug in LiberateCase
simonpj@microsoft.com**20070620075648
 
 Andy Gill writes: consider the following code
 
        f = g (case v of
                 V a b -> a : t f)
 
 where g is expensive. Liberate case will turn this into
 
        f = g (case v of
                V a b -> a : t (letrec f = g (case v of
                                              V a b -> a : f t)
                                 in f)
              )
 Yikes! We evaluate g twice. This leads to a O(2^n) explosion
 if g calls back to the same code recursively.
 
 This may be the same as Trac #1366.  
 
 
] 
[Turning off case liberation when using the hpc option, for now
andy@galois.com**20070620064943
 
 Consider the following code
 
      f = g (case v of
               V a b -> a : t f)
 
 where g is expensive. Liberate case will turn this into
 
      f = g (case v of
              V a b -> a : t (letrec f = g (case v of
                                            V a b -> a : f t)
                               in f)
            )
 
 Yikes! We evaluate g twice. This leads to a O(2^n) explosion
 if g calls back to the same code recursively.
 
 This happen sometimes in HPC, because every tick is a liberate-able case,
 but is a general problem to case liberation (I think). 
 
] 
[Improve misleading warning (Trac #1422)
simonpj@microsoft.com**20070619165354] 
[Fix a bug in the handling of implication constraints (Trac #1430)
simonpj@microsoft.com**20070619162613
 
 Trac #1430 showed up quite a nasty bug in the handling of implication
 constraints when we are *inferring* the type of a function.  
 See Note [Inference and implication constraints]:
 
   We can't (or at least don't) abstract over implications.  But we might
   have an implication constraint (perhaps arising from a nested pattern
   match) like
   	C a => D a
   when we are now trying to quantify over 'a'.  Our best approximation
   is to make (D a) part of the inferred context, so we can use that to
   discharge the implication. Hence getImplicWanteds.
 
 My solution is not marvellous, but it's better than before.  I transferred
 function getDefaultableDicts from Inst to TcSimplify (since it's only
 called there).  Many of the remaining 50 new lines are comments.  But
 there is undoubtedly more code than before (sigh).
 
 Test is tc228.  
 
 
 
] 
[Comments only
simonpj@microsoft.com**20070619162603] 
[Remove erroneous requirement to import Control.Monad.Fix when using mdo
simonpj@microsoft.com**20070619084634
 
 See Trac #1426
 
] 
[First cut at documentation for HPC option in GHC
andy@galois.com**20070619055654] 
[Build package ndp if present
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070619011510] 
[Use .NOTPARALLEL for the libraries Makefile
Ian Lynagh <igloo@earth.li>**20070620120723] 
[Add --core-only flag to push-all
Ian Lynagh <igloo@earth.li>**20070619200546] 
[Add a push-all script
Ian Lynagh <igloo@earth.li>**20070619192820] 
[typo
Simon Marlow <simonmar@microsoft.com>**20070618111817] 
[Several changes to the code dealing with newtypes in :print
Pepe Iborra <mnislaih@gmail.com>**20070617193435
 
 I simplified the code, killed some unreachable blocks, and renamed it so that it corresponds more accurately with what is explained in the technical report
 
 http://www.dsic.upv.es/docs/bib-dig/informes/etd-04042007-111431/papernew2.pdf
 
 Also, fixed a bug related to newtypes in the pretty printer 
 
] 
[Remove now non-existant "Breakpoints" entry from package.conf.in
Pepe Iborra <mnislaih@gmail.com>**20070613092102] 
[More debugger output order consistency
Ian Lynagh <igloo@earth.li>**20070618102850] 
[Sort names before printing them in the debugger so output order is consistent
Ian Lynagh <igloo@earth.li>**20070617215205] 
[Use %d rather than %zd on Windows
Ian Lynagh <igloo@earth.li>**20070616193745] 
[Add missing quotes in generated script
Ian Lynagh <igloo@earth.li>**20070615184527] 
[Fix size mismatch errors in mkDerivedConstants.c
Ian Lynagh <igloo@earth.li>**20070615182337] 
[workaround for #1421 (Solaris linker being picky about .size)
Simon Marlow <simonmar@microsoft.com>**20070614095727] 
[I didn't quite fix #1424 completely - hopefully this gets it right
Simon Marlow <simonmar@microsoft.com>**20070613144505] 
[FIX #1424: x86_64 NCG generated wrong code for foreign call with >8 double args
Simon Marlow <simonmar@microsoft.com>**20070613142431
 I guess we have a missing test... I'll add one
] 
[another fix for -hb: we appear to be freeing the hash table and arena twice
Simon Marlow <simonmar@microsoft.com>**20070613111552] 
[FIX #1418 (partially)
Simon Marlow <simonmar@microsoft.com>**20070613102928
 When the con_desc field of an info table was made into a relative
 reference, this had the side effect of making the profiling fields
 (closure_desc and closure_type) also relative, but only when compiling
 via C, and the heap profiler was still treating them as absolute,
 leading to crashes when profiling with -hd or -hy.
 
 This patch fixes up the story to be consistent: these fields really
 should be relative (otherwise we couldn't make shared versions of the
 profiling libraries), so I've made them relative and fixed up the RTS
 to know about this.
] 
[should be using GET_CON_DESC() to get the constructor name
Simon Marlow <simonmar@microsoft.com>**20070613095201] 
[warning police
Simon Marlow <simonmar@microsoft.com>**20070613095144] 
[Use $(if...) to get lazy tests instead of if..endif in a few places
Simon Marlow <simonmar@microsoft.com>**20070613085138
 This means it should be possible to set GhcUnregisterised=YES in
 build.mk and the rest of the settings should follow automatically
 (GhcWithNativeCodeGen, SplitObjs, GhcWithSMP).
] 
[TAG 2007-06-12
Ian Lynagh <igloo@earth.li>**20070612213440] 
Patch bundle hash:
9dd4696c9d16dba08a25995603b2c1122fd28c87
