Wed Sep  1 19:01:53 EEST 2010  lykahb@gmail.com
  * Remove context completion
  Now completion suggests to remove only modules added to context before.

New patches:

[Remove context completion
lykahb@gmail.com**20100901160153
 Ignore-this: dc61b259dcb7063f0c76f56788b5d2af
 Now completion suggests to remove only modules added to context before.
] {
hunk ./ghc/InteractiveUI.hs 143
   ("kind",      keepGoing' kindOfType,          completeIdentifier),
   ("load",      keepGoingPaths loadModule_,     completeHomeModuleOrFile),
   ("list",      keepGoing' listCmd,             noCompletion),
-  ("module",    keepGoing setContext,           completeModule),
+  ("module",    keepGoing setContext,           completeSetModule),
   ("main",      keepGoing runMain,              completeFilename),
   ("print",     keepGoing printCmd,             completeExpression),
   ("quit",      quit,                           noCompletion),
hunk ./ghc/InteractiveUI.hs 1714
   return $ filter (w `isPrefixOf`)
         $ map (showSDoc.ppr) $ loaded_mods ++ pkg_mods
 
+completeSetModule = wrapIdentCompleterWithModifier "+-" $ \m w -> do
+  modules <- case m of
+    Just '-' -> do
+      (toplevs, exports) <- GHC.getContext
+      return $ map GHC.moduleName (nub (map fst exports) ++ toplevs)
+    otherwise -> do
+      dflags <- GHC.getSessionDynFlags
+      let pkg_mods = allExposedModules dflags
+      loaded_mods <- liftM (map GHC.ms_mod_name) getLoadedModules
+      return $ loaded_mods ++ pkg_mods
+  return $ filter (w `isPrefixOf`) $ map (showSDoc.ppr) modules
+
 completeHomeModule = wrapIdentCompleter listHomeModules
 
 listHomeModules :: String -> GHCi [String]
hunk ./ghc/InteractiveUI.hs 1763
 wrapIdentCompleter :: (String -> GHCi [String]) -> CompletionFunc GHCi
 wrapIdentCompleter = wrapCompleter word_break_chars
 
+wrapIdentCompleterWithModifier :: String -> (Maybe Char -> String -> GHCi [String]) -> CompletionFunc GHCi
+wrapIdentCompleterWithModifier modifChars fun = completeWordWithPrev Nothing word_break_chars
+    $ \rest -> fmap (map simpleCompletion) . fmap sort . fun (getModifier rest)
+ where
+  getModifier = find (`elem` modifChars)
+
 allExposedModules :: DynFlags -> [ModuleName]
 allExposedModules dflags 
  = concat (map exposedModules (filter exposed (eltsUFM pkg_db)))
}

Context:

[Finish breaking up VectBuiltIn and VectMonad, and add comments
benl@ouroborus.net**20100831100724
 Ignore-this: 65604f3d22d03433abc12f10be40050d
] 
[Fix warnings
benl@ouroborus.net**20100830083746
 Ignore-this: 2a0e000985f694582a6f9a9261ff2739
] 
[Break up vectoriser builtins module
benl@ouroborus.net**20100830070900
 Ignore-this: b86bd36a7875abdcf16763902ba2e637
] 
[Move VectCore to Vectorise tree
benl@ouroborus.net**20100830053415
 Ignore-this: d5763ca6424285b39a58c7792f4a84a1
] 
[Split out vectoriser environments into own module
benl@ouroborus.net**20100830050252
 Ignore-this: 5319111c74831394d2c29b9aedf5a766
] 
[Comments and formatting to vectoriser, and split out varish stuff into own module
benl@ouroborus.net**20100830042722
 Ignore-this: d3f0c98ed8124dd0fca9a2ccea3e15fd
] 
[Fix warnings
benl@ouroborus.net**20100830040340
 Ignore-this: d6cfad803ad4617e7fdaa62e4a895282
] 
[Fix warning about multiply exported name
benl@ouroborus.net**20100830035243
 Ignore-this: 27ce2c1d22d9f99929d16a426343044e
] 
[Vectorisation of method types
benl@ouroborus.net**20100830032941
 Ignore-this: 75614571d5c246a4906edb3b39ab1e0b
] 
[Comments and formatting to vectoriser
benl@ouroborus.net**20100830032516
 Ignore-this: fe665b77108501c7960d858be3290761
] 
[Implement -dsuppress-module-prefixes
benl@ouroborus.net**20100830032428
 Ignore-this: 2bb8bad9c60ef9044132bba118010687
] 
[Whitespace only
benl@ouroborus.net**20100527045629
 Ignore-this: 4c160dfa77727e659817b6af9c84684a
] 
[Disambiguate a function name
Ian Lynagh <igloo@earth.li>**20100828225827] 
[users_guide.xml is now generated
Ian Lynagh <igloo@earth.li>**20100828225751] 
[Pass more -pgm flags in the ghc wrapper; fixes #3863
Ian Lynagh <igloo@earth.li>**20100827204537] 
[Add a new-IO manager release note
Ian Lynagh <igloo@earth.li>**20100827171616] 
[Merge a duplicate release note
Ian Lynagh <igloo@earth.li>**20100827171511] 
[Typo, spotted by Johan Tibell
Ian Lynagh <igloo@earth.li>**20100827153914] 
[First pass at 6.14.1 release notes
Ian Lynagh <igloo@earth.li>**20100826220811] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20100824201330] 
[FIX BUILD: add rts_isProfiled to the symbol table
Simon Marlow <marlowsd@gmail.com>**20100826094319
 Ignore-this: 9536ddb0a94721c8dec03a2a981cfa83
] 
[Fix the DPH package cleaning/profiled mess even more (the build was broken)
Simon Marlow <marlowsd@gmail.com>**20100826084436
 Ignore-this: 49d7e4db2fb53b856c213c74c8969d82
] 
[Remove the debugging memory allocator - valgrind does a better job
Simon Marlow <marlowsd@gmail.com>**20100824113537
 Ignore-this: a3731a83dc18b0fd0de49452e695a7ca
 
 I got fed up with the constant bogus output from the debugging memory
 allocator in RtsUtils.c.  One problem is that we allocate memory in
 constructors that then isn't tracked, because the debugging allocator
 hasn't been initialised yet.
 
 The bigger problem is that for a given piece of leaking memory it's
 impossible to find out where it was allocated; however Valgrind gives
 output like this:
 
 ==6967== 8 bytes in 1 blocks are still reachable in loss record 1 of 7
 ==6967==    at 0x4C284A8: malloc (vg_replace_malloc.c:236)
 ==6967==    by 0x4C28522: realloc (vg_replace_malloc.c:525)
 ==6967==    by 0x6745E9: stgReallocBytes (RtsUtils.c:213)
 ==6967==    by 0x68D812: setHeapAlloced (MBlock.c:91)
 ==6967==    by 0x68D8E2: markHeapAlloced (MBlock.c:116)
 ==6967==    by 0x68DB56: getMBlocks (MBlock.c:240)
 ==6967==    by 0x684F55: alloc_mega_group (BlockAlloc.c:305)
 ==6967==    by 0x6850C8: allocGroup (BlockAlloc.c:358)
 ==6967==    by 0x69484F: allocNursery (Storage.c:390)
 ==6967==    by 0x694ABD: allocNurseries (Storage.c:436)
 ==6967==    by 0x6944F2: initStorage (Storage.c:217)
 ==6967==    by 0x673E3C: hs_init (RtsStartup.c:160)
 
 which tells us exactly what the leaking bit of memory is.  So I don't
 think we need our own debugging allocator.
] 
[free the entries in the thread label table on exit
Simon Marlow <marlowsd@gmail.com>**20100824112606
 Ignore-this: c9d577c06548cda80791e590e40d35b3
] 
[Panic in the right way
simonpj@microsoft.com**20100825091614
 Ignore-this: e6ea4f6dfd2aea088828ea7a945ddd5f
] 
[Fix the DPH/profiled make thing (again)
simonpj@microsoft.com**20100825091602
 Ignore-this: bc58fa48034ac40cf7be4170958ea29e
] 
[Don't test for gcc flags before we've found gcc
Ian Lynagh <igloo@earth.li>**20100824131401] 
[Change how the dblatex/lndir problem is worked around
Ian Lynagh <igloo@earth.li>**20100824130938
 Hack: dblatex normalises the name of the main input file using
 os.path.realpath, which means that if we're in a linked build tree,
 it find the real source files rather than the symlinks in our link
 tree. This is fine for the static sources, but it means it can't
 find the generated sources.
 
 We therefore also generate the main input file, so that it really
 is in the link tree, and thus dblatex can find everything.
] 
[Clean the generated userguide sources
Ian Lynagh <igloo@earth.li>**20100824105827
 Ignore-this: 39b4f9702c688c053ed3273b20969597
] 
[DPH should not even be built if GhcProfiled
simonpj@microsoft.com**20100823133439
 Ignore-this: 62acbf83de5b70ff6d27ab38ce9218ae
 
 It's not just when cleaning!
] 
[The templateHaskellOk check should only run in stage2
simonpj@microsoft.com**20100823133353
 Ignore-this: f6dc9292923a1ca201953c5f58c0af3c
 
 Because rtsIsProfiled is only available in stage2
] 
[Add a couple of missing tests for EAGER_BLACKHOLE
Simon Marlow <marlowsd@gmail.com>**20100823104654
 Ignore-this: 70c981b86370b0c7564b29b057650897
 This was leading to looping and excessive allocation, when the
 computation should have just blocked on the black hole.  
 
 Reported by Christian Höner zu Siederdissen <choener@tbi.univie.ac.at>
 on glasgow-haskell-users.
] 
[Don't check for swept blocks in -DS.
Marco Túlio Gontijo e Silva <marcot@marcot.eti.br>**20100718225526
 Ignore-this: ad5dcf3c247bc19fbef5122c1142f3b2
 
 The checkHeap function assumed the allocated part of the block contained only
 alive objects and slops.  This was not true for blocks that are collected using
 mark sweep.  The code in this patch skip the test for this kind of blocks.
] 
[Fix "darcs get"
Ian Lynagh <igloo@earth.li>**20100822183542] 
[Add "darcs-all upstreampull"
Ian Lynagh <igloo@earth.li>**20100822163419
 This pulls from the upstream repos, for those packages which have
 upstreams
] 
[Generate the bit in the user guide where we say what -fglasgow-exts does
Ian Lynagh <igloo@earth.li>**20100822155514
 Stops the docs going out of sync with the code.
] 
[Factor out the packages file parsing in darcs-all
Ian Lynagh <igloo@earth.li>**20100822154813] 
[Document --supported-extensions
Ian Lynagh <igloo@earth.li>**20100822134530] 
[fix extraction of command stack of arguments of arrow "forms" (fixes #4236)
Ross Paterson <ross@soi.city.ac.uk>**20100822090022
 Ignore-this: a93db04ec4f20540642a19cdc67d1666
 
 The command stack was being extracted (by unscramble) with the outermost
 type first, contrary to the comment on the function.
] 
[minor fix to comment
Ross Paterson <ross@soi.city.ac.uk>**20100822085838
 Ignore-this: 8d203ba2600eaf4cf21b043dcfa96cdc
] 
[Add the RTS library path to the library search path
Ian Lynagh <igloo@earth.li>**20100820155523
 In case the RTS is being explicitly linked in. For #3807.
] 
[Remove some duplication of C flags
Ian Lynagh <igloo@earth.li>**20100819233743
 We now use the CONF_CC_OPTS_STAGEn C flags in machdepCCOpts, rather than
 repeating them there.
] 
[Set -fno-stack-protector in CONF_CC_OPTS_STAGE* rathre than extra-gcc-opts
Ian Lynagh <igloo@earth.li>**20100819233031
 The latter is only used when compiling .hc files, whereas we need it for
 .c files too.
] 
[Give clearer errors for bad input in the packages file; suggested by pejo
Ian Lynagh <igloo@earth.li>**20100819232420] 
[Set -march=i686 on OS X x86 in the configure variables
Ian Lynagh <igloo@earth.li>**20100819230939
 We used to set it only in machdepCCOpts, so this is more consistent
] 
[Give each stage its own Config.hs
Ian Lynagh <igloo@earth.li>**20100819224709
 This also means the file is generated in a dist directory, not a
 source directory.
] 
[Fix cleaning when GhcProfiled = YES
Ian Lynagh <igloo@earth.li>**20100819131346
 We need to include the DPH cleaning rules, even though we don't build DPH
 when GhcProfiled = YES.
] 
[stgReallocBytes(DEBUG): don't fail when the ptr passed in is NULL
Simon Marlow <marlowsd@gmail.com>**20100817150836
 Ignore-this: 4b5063e65e01399f64a33f0d0555ff38
] 
[Use make-command in rules/bindist.mk
Ian Lynagh <igloo@earth.li>**20100818191243
 Rather than it having its own specialised version
] 
[Use make-command when installing packages
Ian Lynagh <igloo@earth.li>**20100818190600] 
[Add _DATA_FILES to package-data.mk files
Ian Lynagh <igloo@earth.li>**20100818185801] 
[Add a "make-command" utility Makefile function
Ian Lynagh <igloo@earth.li>**20100818183055] 
[LLVM: Nicer format for lack of shared lib warning
David Terei <davidterei@gmail.com>**20100817145207
 Ignore-this: 753d45762601d87761614937a1bb6716
] 
[fix FP_CHECK_ALIGNMENT for autoconf 2.66 (fixes #4252)
Ross Paterson <ross@soi.city.ac.uk>**20100816142442
 Ignore-this: cd784b8888d32b3b2cc2cc0969ec40f
 
 Recent versions of AS_LITERAL_IF don't like *'s.  Fix from
 
 http://blog.gmane.org/gmane.comp.sysutils.autoconf.general/month=20100701
] 
[Refactor the command-line argument parsing (again)
simonpj@microsoft.com**20100816074453
 Ignore-this: 26dc9e37a88660a887a2e316ed7a9803
 
 This change allows the client of CmdLineParser a bit more flexibility,
 by giving him an arbitrary computation (not just a deprecation
 message) for each flag.  
 
 There are several clients, so there are lots of boilerplate changes.
 
 Immediate motivation: if RTS is not profiled, we want to make 
 Template Haskell illegal.  That wasn't with the old setup.
] 
[Add upstream repo to the packages file
Ian Lynagh <igloo@earth.li>**20100815154741] 
[Make the "tag" column of the packages file always present
Ian Lynagh <igloo@earth.li>**20100815151657
 It makes the parsing simpler if we always have the same number of columns
] 
[Disable object splitting on OSX; works around #4013
Ian Lynagh <igloo@earth.li>**20100815134759] 
[Return memory to the OS; trac #698
Ian Lynagh <igloo@earth.li>**20100813170402] 
[Reduce the xargs -s value we use on Windows
Ian Lynagh <igloo@earth.li>**20100812223721
 With 30000 I was getting:
     xargs: value for -s option should be < 28153
] 
[LLVM: Enable shared lib support on Linux x64
David Terei <davidterei@gmail.com>**20100813191534
 Ignore-this: 642ed37af38e5f17d419bf4f09332671
] 
[Re-do the arity calculation mechanism again (fix Trac #3959)
simonpj@microsoft.com**20100813161151
 Ignore-this: d4a2aa48150b503b20c25351a79decfb
 
 After rumination, yet again, on the subject of arity calculation,
 I have redone what an ArityType is (it's purely internal to the
 CoreArity module), and documented it better.  The result should
 fix #3959, and I hope the related #3961, #3983.
 
 There is lots of new documentation: in particular
  * Note [ArityType]  
    describes the new datatype for arity info
 
  * Note [State hack and bottoming functions] 
    says how bottoming functions are dealt with, particularly
    covering catch# and Trac #3959
 
 I also found I had to be careful not to eta-expand single-method
 class constructors; see Note [Newtype classes and eta expansion].
 I think this part could be done better, but it works ok.
] 
[Comments only
simonpj@microsoft.com**20100813161019
 Ignore-this: baf68300d8bc630bf0b7ab27647b33a0
] 
[Modify FloatOut to fix Trac #4237
simonpj@microsoft.com**20100813163120
 Ignore-this: ffc8d00d4b7f0a8a785fcef312900413
 
 The problem was that a strict binding was getting floated
 out into a letrec. This only happened when profiling was
 on.  It exposed a fragility in the floating strategy.  This
 patch makes it more robust.  See
       Note [Avoiding unnecessary floating]
] 
[Fix egregious bug in SetLevels.notWorthFloating
simonpj@microsoft.com**20100813161429
 Ignore-this: d22865f48d417e6a6b732de3dfba378f
 
 This bug just led to stupid code, which would
 later be optimised away, but better not to generate
 stupid code in the first place.
] 
[Delete GhcLibProfiled
simonpj@microsoft.com**20100813140152
 Ignore-this: 2e1a3f677308be726bd022f45e2fd856
 
 Simon M and I looked at this, and we think GhcLibProfiled is
 (a) not needed (b) confusing.
 
 Ian should review.
 
 Really, if GhcProfiled is on we should also 
 check that 'p' is in the GhcLibWays
] 
[Do not build DPH when GhcProfiled (fixes #4172)
simonpj@microsoft.com**20100813140021
 Ignore-this: 9e20181643b456e841f845ae0cab0a9a
 
 Reason: DPH uses Template Haskell and TH doesn't work 
 in a profiled compiler
] 
[Fix Trac #4220
simonpj@microsoft.com**20100812131319
 Ignore-this: 33141cfd81627592150a9e5973411ff8
 
 For deriving Functor, Foldable, Traversable with empty 
 data cons I just generate a null equation
    f _ = error "urk"
 
 There are probably more lurking (eg Enum) but this will do for now.
] 
[Improve the Specialiser, fixing Trac #4203
simonpj@microsoft.com**20100812131133
 Ignore-this: 482afbf75165e24a80527a6e52080c07
 
 Simply fixing #4203 is a tiny fix: in case alterantives we should
 do dumpUDs *including* the case binder.  
 
 But I realised that we can do better and wasted far too much time
 implementing the idea.  It's described in
     Note [Floating dictionaries out of cases]
] 
[Comments
simonpj@microsoft.com**20100812101456
 Ignore-this: 6362fe887d25688c12ef2c3cf5554ce4
] 
[Comments only
simonpj@microsoft.com**20100812101439
 Ignore-this: 7ed2f5fc08811cbe9958c2309a9ed1fa
] 
[Fix bug in linting of shadowed case-alternative binders
simonpj@microsoft.com**20100812101413
 Ignore-this: 9212a5e2c03421749f5935b3944ecf53
] 
[Comments and spacing only
simonpj@microsoft.com**20100812101347
 Ignore-this: ed59a7dae7decb24470709dc1c118dbb
] 
[Add more info to more parse error messages (#3811)
Ian Lynagh <igloo@earth.li>**20100809233108] 
[Run finalizers *after* updating the stable pointer table (#4221)
Simon Marlow <marlowsd@gmail.com>**20100810133739
 Ignore-this: b0462f80dd64eac71e599d8a9f6dd665
 Silly bug really, we were running the C finalizers while the StablePtr
 table was still in a partially-updated state during GC, but finalizers
 are allowed to call freeStablePtr() (via hs_free_fun_ptr(), for
 example), and chaos ensues.
] 
[Do the dependency-omitting for 'make 1' in a slightly different way
Simon Marlow <marlowsd@gmail.com>**20100810093446
 Ignore-this: af15edd3a1492cbd93111316b57e02e4
 
 I encountered a couple of things that broke after Ian's previous
 patch: one was my nightly build scripts that use 'make stage=2' at the
 top level, and the other is 'make fast' in libraries/base, which uses
 'stage=0' to avoid building any compilers.
 
 So my version of this patch is more direct: it just turns off the
 appropriate dependencies using a variable set by 'make 1', 'make 2',
 etc.
] 
[Integrate new I/O manager, with signal support
Johan Tibell <johan.tibell@gmail.com>**20100724102355
 Ignore-this: eb092857a2a1b0ca966649caffe7ac2b
] 
[Add DoAndIfThenElse support
Ian Lynagh <igloo@earth.li>**20100808194625] 
[Make another parse error more informative
Ian Lynagh <igloo@earth.li>**20100808193340] 
[Make a parse error say what it is failing to parse; part of #3811
Ian Lynagh <igloo@earth.li>**20100808155732] 
[Send ghc progress output to stdout; fixes #3636
Ian Lynagh <igloo@earth.li>**20100808142542] 
[Fix the HsColour test in the build system
Ian Lynagh <igloo@earth.li>**20100805155319
 Ignore-this: ba2752b04801a253e891b31e1914485d
] 
[Fix the -lm configure test; fixes #4155
Ian Lynagh <igloo@earth.li>**20100805142508
 Ignore-this: 358b8b1074d2d22fb8d362ea6d8b80d6
] 
[Don't restrict filenames in line pragmas to printable characters; fixes #4207
Ian Lynagh <igloo@earth.li>**20100805135011
 Ignore-this: e3d32312127165e40e6eaa919193d60b
 "printable" is ASCII-only, whereas in other locales we can get things like
 # 1 "<línea-de-orden>"
] 
[Ensure extension flags are flattened in the Cmm phase
Ian Lynagh <igloo@earth.li>**20100805133614
 If we start with a .cmmcpp file then they don't get flattened in
 the CmmCpp phase, as we don't run that phase.
] 
[Add "cmmcpp" as a Haskellish source suffix
Ian Lynagh <igloo@earth.li>**20100805132555] 
[On amd64/OSX we don't need to be given memory in the first 31bits
Ian Lynagh <igloo@earth.li>**20100805120600
 Ignore-this: 42eb64e25ad4b66ae022884305e0297b
 as PIC is always on
] 
[NCG: Don't worry about trying to re-freeze missing coalescences
benl@ouroborus.net**20100702053319
 Ignore-this: ea05cbee19b6c5c410db41292cbb64b0
] 
[Make -rtsopts more flexible
Ian Lynagh <igloo@earth.li>**20100805011137
 The default is a new "some" state, which allows only known-safe flags
 that we want on by default. Currently this is only "--info".
] 
[Test for (fd < 0) before trying to FD_SET it
Ian Lynagh <igloo@earth.li>**20100804173636] 
[Remove "On by default" comments in DynFlags
Ian Lynagh <igloo@earth.li>**20100802110803
 Ignore-this: 2a51055277b5ce9f0e98e1438b212027
 These make less sense now we support multiple languges. The
 "languageExtensions" function gives the defaults.
] 
[Fix build: Add newline to end of ghc-pkg/Main.hs
Ian Lynagh <igloo@earth.li>**20100801183206] 
[Add a versions haddock binary for Windows
Ian Lynagh <igloo@earth.li>**20100801180917] 
[ghc-pkg: don't fail, if a file is already removed
ich@christoph-bauer.net**20100725162606
 Ignore-this: 5501d6812c31f4da525c7fb24f6dcaed
] 
[Remove push-all from file list in boot script (push-all no longer exists)
Ian Lynagh <igloo@earth.li>**20100801121841
 Ignore-this: eec130f06610d8728a57626682860a1a
] 
[Add error checking to boot-pkgs script
Ian Lynagh <igloo@earth.li>**20100801121432
 Ignore-this: 8afd6663db443c774bad45d75bbfe950
] 
[Add more error checking to the boot script
Ian Lynagh <igloo@earth.li>**20100801113628] 
[Remove libHSrtsmain.a before creating it
Ian Lynagh <igloo@earth.li>**20100801005432
 Otherwise it isn't updated properly if rts/Main.c changes
] 
[Expose the functions haddock needs even when haddock is disabled; #3558
Ian Lynagh <igloo@earth.li>**20100731115506] 
[Always haddock by default
Ian Lynagh <igloo@earth.li>**20100730235001
 Revert this patch:
     Matthias Kilian <kili@outback.escape.de>**20090920181319
     Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS
         if GhcWithInterpreter = NO
     Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
     GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
     and disable the haddock build if HADDOC_DOCS = NO.
] 
[Add a debugTrace for the phases that we run
Ian Lynagh <igloo@earth.li>**20100729201503] 
[* Add StringPrimL as a constructor for Template Haskell (Trac #4168)
simonpj@microsoft.com**20100730131922
 Ignore-this: 520d0a0a14b499b299e8b2be8d148ff0
   
 There are already constructors for IntPrim, FloatPrim etc,
 so this makes it more uniform.
   
 There's a corresponding patch for the TH library
] 
[Add thread affinity support for FreeBSD
Gabor Pali <pgj@FreeBSD.org>**20100720001409
 Ignore-this: 6c117b8219bfb45445089e82ee470410
 - Implement missing functions for setting thread affinity and getting real
   number of processors.
 - It is available starting from 7.1-RELEASE, which includes a native support
   for managing CPU sets.
 - Add __BSD_VISIBLE, since it is required for certain types to be visible in
   addition to POSIX & C99. 
] 
[Disable symbol visibility pragmas for FreeBSD
Ian Lynagh <igloo@earth.li>**20100729012507
 Do not use GCC pragmas for controlling visibility, because it causes
 "undefined reference" errors at link-time.  The true reasons are
 unknown, however FreeBSD 8.x includes GCC 4.2.1 in the base system,
 which might be buggy. 
] 
[Fix numeric escape sequences parsing
Anton Nikishaev <anton.nik@gmail.com>**20100721194208
 Ignore-this: dd71935b1866b5624f7975c45ad519a1
 This fixes trac bug #1344
] 
[Explicitly give the right path to perl when making the OS X installer; #4183
Ian Lynagh <igloo@earth.li>**20100728163030] 
[Set -fno-stack-protector in extra-gcc-opts; fixes #4206
Ian Lynagh <igloo@earth.li>**20100728161957
 We were using it only when building the RTS, and only on certain
 platforms. However, some versions of OS X need the flag, while others
 don't support it, so we now test for it properly.
] 
[Make PersistentLinkerState fields strict; fixes #4208
Ian Lynagh <igloo@earth.li>**20100727201911
 Ignore-this: fc5cfba48cd16624f6bb15a7a03a3b4
 We modify fields a lot, so we retain the old value if they aren't forced.
] 
[Don't rebuild dependency files unnecessarily when doing "make 1" etc
Ian Lynagh <igloo@earth.li>**20100726211512
 Ignore-this: d91a729e5113aa964cc67768e92e57ef
] 
[LLVM: If user specifies optlo, don't use '-O' levels
David Terei <davidterei@gmail.com>**20100726105650
 Ignore-this: e05e103b09d1de937540ffad7983f88e
] 
[Flatten flags for ghci's :show
Ian Lynagh <igloo@earth.li>**20100725135320] 
[Add support for Haskell98 and Haskell2010 "languages"
Ian Lynagh <igloo@earth.li>**20100724230121] 
[Rename "language" varibles etc to "extension", and add --supported-extensions
Ian Lynagh <igloo@earth.li>**20100724223624] 
[Separate language option handling into 2 phases
Ian Lynagh <igloo@earth.li>**20100724212013
 We now first collect the option instructions (from the commandline,
 from pragmas in source files, etc), and then later flatten them into
 the list of enabled options. This will enable us to use different
 standards (H98, H2010, etc) as a base upon which to apply the
 instructions, when we don't know what the base will be when we start
 collecting instructions.
] 
[Separate the language flags from the other DynFlag's
Ian Lynagh <igloo@earth.li>**20100724133103
 Ignore-this: 47bb8d42e621e47016b66c7472bd6cb5
] 
[Set stage-specific CC/LD opts in the bindist configure.ac
Ian Lynagh <igloo@earth.li>**20100724113748
 Ignore-this: f06926d185a35ddd05490ca4a257e992
] 
[Use different CC/LD options for different stages
Ian Lynagh <igloo@earth.li>**20100723223059] 
[Add some error belchs to the linker, when we find bad magic numbers
Ian Lynagh <igloo@earth.li>**20100723200822] 
[Add some more linker debugging prints
Ian Lynagh <igloo@earth.li>**20100723180237] 
[When (un)loading an object fails, say which object in teh panic
Ian Lynagh <igloo@earth.li>**20100723162649] 
[Add a release note: GHCi import syntax
Ian Lynagh <igloo@earth.li>**20100721193647] 
[Deprecate NewQualifiedOperators extension (rejected by H')
Ian Lynagh <igloo@earth.li>**20100719150909
 Ignore-this: 6e7e3bedc5360c5975f73497b3e6cba5
] 
[LLVM: Allow optlc and optlo to override default params for these systools
David Terei <davidterei@gmail.com>**20100722181631
 Ignore-this: e60af7941996f7170fb3bfb02a002082
] 
[LLVM: Code and speed improvement to dominateAllocs pass.
David Terei <davidterei@gmail.com>**20100721143654
 Ignore-this: 9fb7058c8a2afc005521298c7b8d0036
] 
[Comments only
simonpj@microsoft.com**20100721144257
 Ignore-this: b3091ddcd1df271eb85fe90978ab7adc
] 
[Fix inlining for default methods
simonpj@microsoft.com**20100721144248
 Ignore-this: 61a11a8f741f775000c6318aae4b3191
 
 This was discombobulated by a patch a week ago;
 now fixed, quite straightforwardly.  See
 Note [Default methods and instances]
] 
[Allow reification of existentials and GADTs 
simonpj@microsoft.com**20100721090437
 Ignore-this: 20f1ccd336cc25aff4d4d67a9ac2211a
 
 It turns out that TH.Syntax is rich enough to express even GADTs,
 provided we express them in equality-predicate form.  So for
 example
 
   data T a where
      MkT1 :: a -> T [a]
      MkT2 :: T Int
 
 will appear in TH syntax like this
 
   data T a = forall b. (a ~ [b]) => MkT1 b
            | (a ~ Int) => MkT2
 
 While I was at it I also improved the reification of types,
 so that we use TH.TupleT and TH.ListT when we can.
] 
[add numSparks# primop (#4167)
Simon Marlow <marlowsd@gmail.com>**20100720153746
 Ignore-this: f3f925e7de28f3f895213aefbdbe0b0f
] 
[LLVM: Decrease max opt level used under OSX to avoid bug
David Terei <davidterei@gmail.com>**20100720160938
 Ignore-this: 34b0b3550f00b27b00ad92f8232745e5
 
 Currently, many programs compiled with GHC at -O2 and LLVM
 set to -O3 will segfault (only under OSX). Until this issue
 is fixed I have simply 'solved' the segfault by lowering
 the max opt level for LLVM used to -O2 under OSX.
 
 All these recent changes to OSX should mean its finally as
 stable as Linux and Windows.
] 
[LLVM: Fix OSX to work again with TNTC disabled.
David Terei <davidterei@gmail.com>**20100720160845
 Ignore-this: 8dc98139cfa536b2a64aa364d040b581
] 
[LLVM: Fix printing of local vars so LLVM works with -fnew-codegen
David Terei <davidterei@gmail.com>**20100720160302
 Ignore-this: d883c433dfaed67921a8c5360e1f9f6a
] 
[Use a separate mutex to protect all_tasks, avoiding a lock-order-reversal
Simon Marlow <marlowsd@gmail.com>**20100716150832
 Ignore-this: ffbdb4ee502e0f724d57acb9bfbe9d92
 In GHC 6.12.x I found a rare deadlock caused by this
 lock-order-reversal:
 
 AQ cap->lock
   startWorkerTask
     newTask
       AQ sched_mutex
 
 scheduleCheckBlackHoles
   AQ sched_mutex
    unblockOne_
     wakeupThreadOnCapabilty
       AQ cap->lock
 
 so sched_mutex and cap->lock are taken in a different order in two
 places.
 
 This doesn't happen in the HEAD because we don't have
 scheduleCheckBlackHoles, but I thought it would be prudent to make
 this less likely to happen in the future by using a different mutex in
 newTask.  We can clearly see that the all_tasks mutex cannot be
 involved in a deadlock, becasue we never call anything else while
 holding it.
] 
['make fast' in a package does not build any compilers
Simon Marlow <marlowsd@gmail.com>**20100715125904
 Ignore-this: f27e70faf3944831dad16e89a4e273da
] 
[LLVM: Fix up botched last commit
David Terei <davidterei@gmail.com>**20100719104823
 Ignore-this: a32e0f6a38cb9e02527eb8ca69b3eb59
] 
[LLVM: Fix warning introduce in last commit.
David Terei <davidterei@gmail.com>**20100719103411
 Ignore-this: e9c92a9402aff50d60ab26e6ad441bfc
] 
[LLVM: Use mangler to fix up stack alignment issues on OSX
David Terei <davidterei@gmail.com>**20100718231000
 Ignore-this: 9f6e8cb855269cb3a5ac1a23480d0e71
] 
[Fix #4195 (isGadtSyntaxTyCon returns opposite result)
illissius@gmail.com**20100715134134
 Ignore-this: a90403f893030432b5c15d743647f350
] 
[Update to time 1.2.0.3
Ian Lynagh <igloo@earth.li>**20100717181810
 Ignore-this: 1ccb4801a73f399e6718ce556543ede1
] 
[Reorder RTS --info output
Ian Lynagh <igloo@earth.li>**20100717162356] 
[Fix unreg prof build: Define CCS_SYSTEM in stg/MiscClosures.h
Ian Lynagh <igloo@earth.li>**20100717142832
 Ignore-this: 9675f3f51b6dac40483155344e7f45b6
] 
[Make mkDerivedConstants as a stage 1 program
Ian Lynagh <igloo@earth.li>**20100717000827
 Ignore-this: 5357403461b209b8606f1d33defb51cf
 This way it gets the defines for the right platform when cross-compiling
] 
[Don't generate Haskell dependencies if we don't have any Haskell sources
Ian Lynagh <igloo@earth.li>**20100717000800
 Ignore-this: 454abd0358f535b7e789327125c9206c
] 
[Link programs that have no Haskell objects with gcc rather than ghc
Ian Lynagh <igloo@earth.li>**20100716235303
 Ignore-this: f65588b69675edea616cc434e769b0a4
] 
[Use gcc to build C programs for stages >= 1
Ian Lynagh <igloo@earth.li>**20100716223703
 Ignore-this: 9f843a4e17285cda582117504707f9e7
] 
[Add platform info to "ghc --info" output
Ian Lynagh <igloo@earth.li>**20100716141953] 
[Tidy up Config.hs generation
Ian Lynagh <igloo@earth.li>**20100716140630] 
[Fix HC porting test in makefiles
Ian Lynagh <igloo@earth.li>**20100716010808
 Ignore-this: 6052c1dd022a6108ab2236a299ee1d84
 Now that we are trying to support cross compilation, we can't use
     "$(TARGETPLATFORM)" != "$(HOSTPLATFORM)"
 as a test for HC-porting.
] 
[Change a BUILD var to a HOST var
Ian Lynagh <igloo@earth.li>**20100716002558] 
[Remove an unnecessary #include
Ian Lynagh <igloo@earth.li>**20100715233930
 Ignore-this: dcede249de6be7e3c9305c9279c2ca07
] 
[Split up some make commands, so that errors aren't overlooked
Ian Lynagh <igloo@earth.li>**20100715152237
 Ignore-this: fb69b0a25d9ca71dae5e75d38db675cd
 When we ask make to run "a | b", if a fails then the pipeline might
 still exit successfuly.
] 
[Remove an unnecessary #include
Ian Lynagh <igloo@earth.li>**20100715143000
 Ignore-this: 4e098cac5dda2dd595ca0a0f5121853c
] 
[Simplify some more CPP __GLASGOW_HASKELL__ tests
Ian Lynagh <igloo@earth.li>**20100715142500] 
[Remove some code only used with GHC 6.11.*
Ian Lynagh <igloo@earth.li>**20100715141720] 
[__GLASGOW_HASKELL__ >= 609 is now always true
Ian Lynagh <igloo@earth.li>**20100715141544] 
[Correct the values in ghc_boot_platform.h
Ian Lynagh <igloo@earth.li>**20100714223717
 Ignore-this: 4c99116f7ac73fadbd6d16807f57a693
] 
[Change some TARGET checks to HOST checks
Ian Lynagh <igloo@earth.li>**20100714184715] 
[LLVM: Add inline assembly to binding.
David Terei <davidterei@gmail.com>**20100714152530
 Ignore-this: 72a7b5460c128ed511e8901e5889fe2b
] 
[LLVM: Fix mistype in last commit which broke TNTC under win/linux.
David Terei <davidterei@gmail.com>**20100714153339
 Ignore-this: 302d7957e3dded80368ebade5312ab35
] 
[Remove unnecessary #include
Ian Lynagh <igloo@earth.li>**20100713153704
 Ignore-this: c37d3127b1dc68f59270c07173994c28
] 
[Change some TARGET tests to HOST tests in the RTS
Ian Lynagh <igloo@earth.li>**20100713141034
 Which was being used seemed to be random
] 
[LLVM: Add in new LLVM mangler for implementing TNTC on OSX
David Terei <davidterei@gmail.com>**20100713183243
 Ignore-this: 394fb74d7f9657d8b454bd0148d24bf7
] 
[Refactor where an error message is generated
simonpj@microsoft.com**20100713115733
 Ignore-this: f94467856238586fcbbe48537141cf78
] 
[Comments only
simonpj@microsoft.com**20100713115703
 Ignore-this: 5815442c4e69b9ec331b34242a596253
] 
[Comments on data type families
simonpj@microsoft.com**20100713115640
 Ignore-this: 90a333bb7f7d64a49fb7dd180d893f6b
] 
[Fix Trac #T4136: take care with nullary symbol constructors
simonpj@microsoft.com**20100707135945
 Ignore-this: 2a717a24fefcd593ea41c23dad351db0
 
 When a nullary constructor is a symbol eg (:=:) we need
 to take care.  Annoying.
] 
[Fix Trac #4127 (and hence #4173)
simonpj@microsoft.com**20100707123125
 Ignore-this: 98bb6d0f7182b59f8c93596c61f9785d
 
 The change involves a little refactoring, so that the default
 method Ids are brought into scope earlier, before the value
 declarations are compiled.  (Since a value decl may contain
 an instance decl in a quote.)
 
 See Note [Default method Ids and Template Haskell] in
 TcTyClsDcls.
] 
[Fix second bug in Trac #4127
simonpj@microsoft.com**20100701140124
 Ignore-this: c8d1cc27364fe9ee5a52acb1ecb5cdd9
 
 This bug concerned the awkward shadowing we do for 
 Template Haskell declaration brackets.  Lots of
 comments in 
 
   Note [Top-level Names in Template Haskell decl quotes]
] 
[ia64: switch handling of 'foreign import wrapper' (FIW) to libffi
Sergei Trofimovich <slyfox@community.haskell.org>**20100709213922
 Ignore-this: fd07687e0089aebabf62de85d2be693
 
 I tried to build darcs-2.4.4 with ghc-6.12.3 and got coredumps when darcs is used
 in interactive mode. I tried test from ticket #3516 and found out FIW code is broken.
 Instead of fixing it I just switched to libffi. Result built successfully, passed
 'foreign import wrapper' test from ticket #3516 and builds working darcs.
] 
[* storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
Sergei Trofimovich <slyfox@community.haskell.org>**20100709115917
 Ignore-this: 9f1958a19992091ddc2761c389ade940
 
 Patch does not touch amd64 as it's address lengts is 48 bits at most, so amd64 is unaffected.
 
 the issue: during ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
 got the failure on stage2 phase:
     "inplace/bin/ghc-stage2"   -H32m -O -H64m -O0 -w ...
     ghc-stage2: internal error: evacuate: strange closure type 15
         (GHC version 6.12.3 for ia64_unknown_linux)
         Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
     make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
 
 gdb backtrace (break on 'barf'):
 Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
 (gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
 Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
 [Thread debugging using libthread_db enabled]
 
 Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
 39        va_start(ap,s);
 (gdb) bt
 #0  barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
 #1  0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
 #2  0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
 ...
 
 > 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
 >                      is returning true for a FUN_STATIC closure
 > 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
 > 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
 > 17:19:12 < slyfox> $1 = 0
 > 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
 > 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
 >                      bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
 >                      mblock_cache.
 ...
 > 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
 > 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
 And it helped!
] 
[Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
Sergei Trofimovich <slyfox@community.haskell.org>**20100708180943
 Ignore-this: ced99785e1f870ee97e5bec658e2504f
 
     /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
                                   dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
     /usr/bin/ld: unrecognized option '-Wl,--relax'
 
 If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
 
 Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
 Removing ia64 specific path.
] 
[LLVM: Allow getelementptr to use LlvmVar for indexes.
David Terei <davidterei@gmail.com>**20100712152529
 Ignore-this: 9e158d9b89a86bca8abf11d082328278
] 
[Move all the warning workarounds to one place
Ian Lynagh <igloo@earth.li>**20100710161723] 
[xhtml is now warning-free
Ian Lynagh <igloo@earth.li>**20100710144635] 
[Move a bit of build system code
Ian Lynagh <igloo@earth.li>**20100709224534] 
[adapt to the new async exceptions API
Simon Marlow <marlowsd@gmail.com>**20100709125238
 Ignore-this: 55d845e40b9daed3575c1479d8dda1d5
] 
[quiet some new spewage
Simon Marlow <marlowsd@gmail.com>**20100709091521
 Ignore-this: de7f91976bbc9789e6fd7091f05c25c0
] 
[New asynchronous exception control API (ghc parts)
Simon Marlow <marlowsd@gmail.com>**20100708144851
 Ignore-this: 56320c5fc61ae3602d586609387aae22
 
 As discussed on the libraries/haskell-cafe mailing lists
   http://www.haskell.org/pipermail/libraries/2010-April/013420.html
 
 This is a replacement for block/unblock in the asychronous exceptions
 API to fix a problem whereby a function could unblock asynchronous
 exceptions even if called within a blocked context.
 
 The new terminology is "mask" rather than "block" (to avoid confusion
 due to overloaded meanings of the latter).
 
 In GHC, we changed the names of some primops:
 
   blockAsyncExceptions#   -> maskAsyncExceptions#
   unblockAsyncExceptions# -> unmaskAsyncExceptions#
   asyncExceptionsBlocked# -> getMaskingState#
 
 and added one new primop:
 
   maskUninterruptible#
 
 See the accompanying patch to libraries/base for the API changes.
] 
[remove outdated comment
Simon Marlow <marlowsd@gmail.com>**20100708100840
 Ignore-this: afb2e9f6fe1f1acda51b0cbdf2637176
] 
[remove 'mode: xml' emacs settings (#2208)
Simon Marlow <marlowsd@gmail.com>**20100708100817
 Ignore-this: 3a8d997fb90e01ca88dc47fb95feeba0
] 
[typo in comment
Simon Marlow <marlowsd@gmail.com>**20100616111359
 Ignore-this: d3ef9288d6d6b9ab3bacbe09e0d9801c
] 
[Win32 getProcessElapsedTime: use a higher-resolution time source
Simon Marlow <marlowsd@gmail.com>**20100708093223
 Ignore-this: 821989d4ff7ff2bff40cee71a881521c
 QueryPerformanceCounter() on Windows gives much better resolution than
 GetSystemTimeAsFileTime().
] 
[alpha: switch handling of 'foreign import wrapper' (FIW) to libffi
Sergei Trofimovich <slyfox@community.haskell.org>**20100708065318
 Ignore-this: ddee15876737a6aa7f6dabc8ff79ce0d
 
 I tried to build ghc-6.12.3 and found out FIW part of code
 does not compile anymore. It uses absent functions under #ifdef.
 Instead of fixing it I just switched to libffi. Result built successfully
 and passed 'foreign import wrapper' test I wrote for trac ticket #3516.
 
 I didn't try to build -HEAD yet, but this patch only removes code, so
 it should not make -HEAD worse.
] 
[Reorder the CPP flags so -optP can override the platform defines
Ian Lynagh <igloo@earth.li>**20100708203523] 
[Add docs for DatatypeContexts extension
Ian Lynagh <igloo@earth.li>**20100707230907
 Ignore-this: 8158f03b35a2d7442a75fe85d6f1b1c7
] 
[Make datatype contexts an extension (on by default) (DatatypeContexts)
Ian Lynagh <igloo@earth.li>**20100707212529
 Ignore-this: 6885ff510a0060610eeeba65122caef5
] 
[LLVM: Fix various typos in comments
David Terei <davidterei@gmail.com>**20100707220448
 Ignore-this: 1ba3e722f150492da2f9d485c5795e80
] 
[Handle haddock headers when looking for LANGUAGE/OPTIONS_GHC pragmas
Ian Lynagh <igloo@earth.li>**20100707120423
 Ignore-this: a75aa67690284a6cee3e62c943d4fd01
] 
[Make pragState call mkPState, rather than duplicating everything
Ian Lynagh <igloo@earth.li>**20100706173007
 Ignore-this: 61fe24b99dbe7a42efff1a9dd703a75c
 This also means that extsBitmap gets set, whereas is was just being set
 to 0 before.
] 
[LLVM: Add alias type defenitions to LlvmModule.
David Terei <davidterei@gmail.com>**20100707142053
 Ignore-this: eee6ad5385563ccf08e664d2634a03f2
] 
[LLVM: Use packed structure type instead of structure type
David Terei <davidterei@gmail.com>**20100707120320
 Ignore-this: a06e0359d182291b81cae56993ca385e
 
 The regular structure type adds padding to conform to the platform ABI,
 which causes problems with structures storing doubles under windows since
 we don't conform to the platform ABI there. So we use packed structures
 instead now that don't do any padding.
] 
[Make mkPState and pragState take their arguments in the same order
Ian Lynagh <igloo@earth.li>**20100706172611] 
[Remove an out-of-date comment
Ian Lynagh <igloo@earth.li>**20100706172217
 Ignore-this: 710ebd7d2dc01c1b0f1e58a5b6f85701
] 
[LLVM: Stop llvm saving stg caller-save regs across C calls
David Terei <davidterei@gmail.com>**20100705162629
 Ignore-this: 28b4877b31b9358e682e38fc54b88658
 
 This is already handled by the Cmm code generator so LLVM is simply
 duplicating work. LLVM also doesn't know which ones are actually live
 so saves them all which causes a fair performance overhead for C calls
 on x64. We stop llvm saving them across the call by storing undef to
 them just before the call.
] 
[LLVM: Add in literal undefined value to binding
David Terei <davidterei@gmail.com>**20100705161544
 Ignore-this: 95d8361b11584aaeec44c30e76916470
] 
[LLVM: Add a literal NULL value to binding
David Terei <davidterei@gmail.com>**20100705161308
 Ignore-this: 9507b4b12c1157498704a9d1e5860f12
 
 Patch from Erik de Castro Lopo <erikd@mega-nerd.com>.
] 
[refactor import declaration support (#2362)
Simon Marlow <marlowsd@gmail.com>**20100705104557
 Ignore-this: ee034ac377078a7e92bfada1907c86a0
] 
[Disable dynamic linking optimisations on OS X
Simon Marlow <marlowsd@gmail.com>**20100705103014
 Ignore-this: b04420d3705c51112797758d17b2e40c
 To improve performance of the RTS when dynamically linked on x86, I
 previously disabled -fPIC for certain critical modules (the GC, and a
 few others).  However, build reports suggest that the dynamic linker
 on OS X doesn't like this, so I'm disabling this optimsation on that
 platform.
] 
[trac #2362 (full import syntax in ghci)
amsay@amsay.net**20100625032632
 Ignore-this: a9d0859d84956beb74e27b797431bf9c
 'import' syntax is seperate from ':module' syntax
] 
[Simplify ghc-pkg's Cabal dependencies
Ian Lynagh <igloo@earth.li>**20100704184155
 We no longer support building with a compiler that doesn't come with
 base 4.
] 
[Use Cabal to configure the dist-install ghc-pkg; fixes trac #4156
Ian Lynagh <igloo@earth.li>**20100704132612] 
[Remove dead code (standalone deriving flag no longer used in parser)
Ian Lynagh <igloo@earth.li>**20100701162058] 
[LLVM: Use the inbounds keyword for getelementptr instructions.
David Terei <davidterei@gmail.com>**20100702160511
 Ignore-this: 3708e658a4c82b78b1402393f4405541
] 
[threadPaused: fix pointer arithmetic
Simon Marlow <marlowsd@gmail.com>**20100701085046
 Ignore-this: b78210e5d978f18ffd235f1c78a55a23
 Noticed by Henrique Ferreiro <hferreiro@udc.es>, thanks!
] 
[LLVM: Change more operations to use getelementptr
David Terei <davidterei@gmail.com>**20100701161856
 Ignore-this: fb24eb124e203f50680c6fec3ff9fe7d
] 
[Add the haskell2010 package
Simon Marlow <marlowsd@gmail.com>**20100630125532
 Ignore-this: e9b011313f283a8ff2fcda7d029a01f
] 
[LLVM: Use getelementptr instruction for a lot of situations
David Terei <davidterei@gmail.com>**20100630181157
 Ignore-this: 34d314dd8dffad9bdcffdc525261a49d
 
 LLVM supports creating pointers in two ways, firstly through
 pointer arithmetic (by casting between pointers and ints)
 and secondly using the getelementptr instruction. The second way
 is preferable as it gives LLVM more information to work with.
 
 This patch changes a lot of pointer related code from the first
 method to the getelementptr method.
] 
[remove out of date comments; point to the wiki
Simon Marlow <marlowsd@gmail.com>**20100625100313
 Ignore-this: 95f363a373534b9471b1818102ec592d
] 
[NCG: allocatableRegs is only giving us 8 SSE regs to allocate to
benl@ouroborus.net**20100629054321
 Ignore-this: b3e0fa0b4ce988a0258dc12261989ee0
] 
[LLVM: Use intrinsic functions for pow, sqrt, sin, cos
David Terei <davidterei@gmail.com>**20100628182949
 Ignore-this: 98a0befaca3fe2b36d710d8ff9f062c4
 
 Instead of calling the C library for these Cmm functions
 we use intrinsic functions provided by llvm. LLVM will
 then either create a compile time constant if possible, or
 use a cpu instruction or as a last resort call the C
 library.
] 
[LLVM: Fix test '2047' under linux-x64
David Terei <davidterei@gmail.com>**20100628165256
 Ignore-this: 41735d4f431a430db636621650ccd71e
] 
[LLVM: Fix test 'ffi005' under linux-x64
David Terei <davidterei@gmail.com>**20100628155355
 Ignore-this: 841f3142c63cc898ac4c3f89698a837e
] 
[LLVM: Update to use new fp ops introduced in 2.7
David Terei <davidterei@gmail.com>**20100628144037
 Ignore-this: 5dd2e5964e3c039d297ed586841e706b
] 
[Add noalias and nocapture attributes to pointer stg registers
David Terei <davidterei@gmail.com>**20100628115120
 Ignore-this: 492a1e723cb3a62498d240d7de92dd7
 
 At the moment this gives a very slight performance boost of around 1 - 2%.
 Future changes to the generated code though so that pointers are kept as
 pointers more often instead of being cast to integer types straight away
 should hopefully improve the benefit this brings.
 
] 
[during shutdown, only free the heap if we waited for foreign calls to exit
Simon Marlow <marlowsd@gmail.com>**20100628090536
 Ignore-this: d545384a4f641d701455d08ef1217479
] 
[Fix typo in -ddump-pass's document.
shelarcy <shelarcy@gmail.com>**20100620070759
 Ignore-this: f4f1ddb53f147949e948147d89190c37
] 
[Add #undefs for posix source symbols when including papi.h
dmp@rice.edu**20100624163514
 Ignore-this: 8a1cba21b880d12a75a75f7e96882053
 
 Validation fails when validating with PAPI support (i.e. GhcRtsWithPapi  = YES
 in validate.mk).  The problem is that the posix symbols are defined by a header
 included from papi.h. Compilation then fails because these symbols are
 redefined in PosixSource.h. 
 
 This patch adds an undefine for the posix symbols after including papi.h and
 before including PosixSource.h. The #undefines are localized to Papi.c since
 that is the only case where they are getting defined twice.
] 
[Use machdepCCOpts in runPhase_MoveBinary; fixes trac #3952
Ian Lynagh <igloo@earth.li>**20100625220953] 
[LLVM: Fix bug with calling tail with empty list
David Terei <davidterei@gmail.com>**20100625115729
 Ignore-this: 46b4b32c8d92372a2d49794a96fe1613
] 
[Fix warnings
benl@ouroborus.net**20100624091339
 Ignore-this: 5ba4bbd6abb9c9d1fb8c5d21ab73f218
] 
[NCG: Comments and formatting only
benl@ouroborus.net**20100624083121
 Ignore-this: 86002e72c30d06bcc876d8c49f4caa5a
] 
[NCG: Do the actual reversing of SCCs
benl@ouroborus.net**20100624082717
 Ignore-this: 12d2027ea118e751fbb48b27126150ef
] 
[NCG: Fix dumping of graphs in regalloc stats for graph allocator
benl@ouroborus.net**20100624082625
 Ignore-this: 2b971bc9e0318099a9afb0e0db135730
] 
[NCG: Reverse SCCs after each round in the graph allocator
benl@ouroborus.net**20100624082437
 Ignore-this: f0152e4039d6f16f7b5a99b286538116
] 
[NCG: Don't actually complain on unreachable code blocks
benl@ouroborus.net**20100624081445
 Ignore-this: e7335ae6120917cb858c38c7c6da8e24
] 
[NCG: Do explicit check for precondition of computeLiveness
benl@ouroborus.net**20100624080747
 Ignore-this: e7053c4e5e4c3c746b5ebf016913424a
 
  computeLiveness requires the SCCs of blocks to be in reverse dependent
  order, and if they're not it was silently giving bad liveness info, 
  yielding a bad allocation.
 
  Now it complains, loudly.
] 
[NCG: Fix off-by-one error in realRegSqueeze
benl@ouroborus.net**20100623095813
 Ignore-this: ab0698686d4c250da8e207f734f8252d
] 
[NCG: Handle stripping of liveness info from procs with no blocks (like stg_split_marker)
benl@ouroborus.net**20100623091209
 Ignore-this: c0319b6cc62ec713afe4eb03790406e3
] 
[NCG: Emit a warning on unreachable code block instead of panicing
benl@ouroborus.net**20100623085002
 Ignore-this: d20314b79e3c31e764ed4cd97290c696
] 
[NCG: Remember to keep the entry block first when erasing liveness info
Ben.Lippmeier@anu.edu.au**20090917104429
 Ignore-this: 1b0c1df19d622858d50ffb6a01f2cef0
] 
[NCG: Refactor representation of code with liveness info
Ben.Lippmeier@anu.edu.au**20090917090730
 Ignore-this: 2aebb3b02ebd92e547c5abad9feb0f0d
 
  * I've pushed the SPILL and RELOAD instrs down into the
    LiveInstr type to make them easier to work with. 
 
  * When the graph allocator does a spill cycle it now just
    re-annotates the LiveCmmTops instead of converting them 
    to NatCmmTops and back. 
 
  * This saves working out the SCCS again, and avoids rewriting
    the SPILL and RELOAD meta instructions into real machine
    instructions.
] 
[NCG: Add sanity checking to linear allocator
Ben.Lippmeier@anu.edu.au**20090917090335
 Ignore-this: 5a442be8b5087d04bc8b58dffa9ea080
 If there are are unreachable basic blocks in the native code then the 
 linear allocator might loop. Detect this case and panic instead.
] 
[NCG: Refactor LiveCmmTop to hold a list of SCCs instead of abusing ListGraph
Ben.Lippmeier@anu.edu.au**20090917060332
 Ignore-this: 3fec8d69ed0f760e53a202f873d5d9cb
] 
[NCG: Allow the liveness map in a LiveInfo to be Nothing
Ben.Lippmeier@anu.edu.au**20090917043937
 Ignore-this: 5f82422d54d1b0ffc0589eb7e82fb7a4
] 
[NCG: Also show the result of applying coalesings with -ddump-asm-regalloc-stages
Ben.Lippmeier.anu.edu.au**20090917034427
 Ignore-this: 76bd6d5ca43adb2167cb25832cbaa80b
] 
[Fix panic when running "ghc -H"; trac #3364
Ian Lynagh <igloo@earth.li>**20100624234011
 The problem is that showing SDoc's looks at the static flags global
 variables, but those are panics while we are parsing the static flags.
 We work around this by explicitly using a fixed prettyprinter style.
] 
[Allow for stg registers to have pointer type in llvm BE.
David Terei <davidterei@gmail.com>**20100621175839
 Ignore-this: fc09b1a8314aef0bde945c77af1124fb
 
 Before all the stg registers were simply a bit type or
 floating point type but now they can be declared to have
 a pointer type to one of these. This will allow various
 optimisations in the future in llvm since the type is
 more accurate.
] 
[Add support for parameter attributes to the llvm BE binding
David Terei <davidterei@gmail.com>**20100624111744
 Ignore-this: 77f3c0c7bf8f81c4a154dc835ae7bcba
 
 These allow annotations of the code produced by the backend
 which should bring some perforamnce gains. At the moment
 the attributes aren't being used though.
] 
[Cast some more nats to StgWord to be on the safe side
Simon Marlow <marlowsd@gmail.com>**20100624105700
 Ignore-this: e6176683856f9872fdeb2358bb065bb8
 And add a comment about the dangers of int overflow
] 
[comments only
Simon Marlow <marlowsd@gmail.com>**20100624105105
 Ignore-this: fc8f762f4c3a5ffca2f8da2bc63ac2a4
] 
[Fix an arithmetic overflow bug causing crashes with multi-GB heaps
Simon Marlow <marlowsd@gmail.com>**20100624104654
 Ignore-this: 67210755aa098740ff5230347be0fd5d
] 
[Add support for collecting PAPI native events
dmp@rice.edu**20100622195953
 Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
 
 This patch extends the PAPI support in the RTS to allow collection of native
 events. PAPI can collect data for native events that are exposed by the
 hardware beyond the PAPI present events. The native events supported on your
 hardware can found by using the papi_native_avail tool.
 
 The RTS already allows users to specify PAPI preset events from the command
 line. This patch extends that support to allow users to specify native events.
 The changes needed are:
 
 1) New option (#) for the RTS PAPI flag for native events. For example, to
    collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
 
 2) Update the PAPI_FLAGS struct to store whether the user specified event is a
    papi preset or a native event
 
 3) Update init_countable_events function to add the native events after parsing
    the event code and decoding the name using PAPI_event_code_to_name
 
] 
[Don't warn about unused bindings with parents in .hs-boot files; trac #3449
Ian Lynagh <igloo@earth.li>**20100624110351] 
[fix the home_imps filter to allow for 'import "this" <module>'
Simon Marlow <marlowsd@gmail.com>**20100621125535
 Ignore-this: da4e605b0513afc32a4e7caa921a2c76
 In the PackageImports extension, import "this" means "import from the
 current package".
] 
[Use the standard C wrapper code for the ghc-$version.exe wrapper
Ian Lynagh <igloo@earth.li>**20100622202859
 Ignore-this: 60cd3e6db3afb63e6ba9e2db3b033580
] 
[Don't rely on "-packagefoo" working; use "-package foo" instead
Ian Lynagh <igloo@earth.li>**20100622202547] 
[Remove unnecessary C #includes
Ian Lynagh <igloo@earth.li>**20100622172919] 
[Make the ghci.exe wrapper call the right ghc.exe
Ian Lynagh <igloo@earth.li>**20100622172247] 
[More updates to datalayout description in llvm BE
David Terei <davidterei@gmail.com>**20100622165339
 Ignore-this: b0c604fe7673b0aa7c7064694d574437
] 
[Remove LlvmAs phase as the llvm opt tool now handles this phase
David Terei <davidterei@gmail.com>**20100622144044
 Ignore-this: b9fd8f959702b6af014e2fa654bede3
 
 This phase originally invoked the llvm-as tool that turns a textual
 llvm assembly file into a bit code file for the rest of llvm to deal
 with. Now the llvm opt tool can do this itself, so we don't need to
 use llvm-as anymore.
] 
[Update datalayout info in llvm BE
David Terei <davidterei@gmail.com>**20100622123457
 Ignore-this: 89b043d211225dcd819f30549afe1840
] 
[Fix handling of float literals in llvm BE
David Terei <davidterei@gmail.com>**20100622121642
 Ignore-this: a3b5f382ad4b5a426ad4b581664506fa
] 
[Declare some top level globals to be constant when appropriate
David Terei <davidterei@gmail.com>**20100621174954
 Ignore-this: 44832f65550d4f995d11c01cc1affef5
 
 This involved removing the old constant handling mechanism
 which was fairly hard to use. Now being constant or not is
 simply a property of a global variable instead of a separate
 type.
] 
[Reduce the number of passes over the cmm in llvm BE
David Terei <davidterei@gmail.com>**20100621125220
 Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
] 
[Fix negate op not working for -0 in llvm backend
David Terei <davidterei@gmail.com>**20100621123606
 Ignore-this: c5d76e5cffa781fed074137851b1347f
] 
[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
Simon Marlow <marlowsd@gmail.com>**20100621100409
 Ignore-this: f2fac7df33d3919199befc59bd455414
 and add a comment to explain why it was wrong.  This fixes the dyn
 test failures that sprang up recently.
] 
[Check files are really created in libffi
Ian Lynagh <igloo@earth.li>**20100620163724
 when we think that the libffi build creates them, so they just depend
 on the libffi build stamp.
] 
[Improve the missing-import-list warning
Ian Lynagh <igloo@earth.li>**20100620124320
 Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
] 
[Tweak missing-import-list warning
Ian Lynagh <igloo@earth.li>**20100620122622
 Ignore-this: 360cdf59ae13d66ded181129325506c4
] 
[trac #1789 (warnings for missing import lists)
amsay@amsay.net**20100618150649
 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
] 
[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
Ian Lynagh <igloo@earth.li>**20100620103749] 
[Remove some old commented out code
Ian Lynagh <igloo@earth.li>**20100620000459] 
[SET_ARR_HDR's last argument is now a number of bytes, rather than words
Ian Lynagh <igloo@earth.li>**20100619235214
 This avoids unnecessary work and potential loss of information
] 
[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
Ian Lynagh <igloo@earth.li>**20100619234310] 
[FIX #38000 Store StgArrWords payload size in bytes
Antoine Latter <aslatter@gmail.com>**20100101183346
 Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
] 
[Add win32 datalayout support to llvm backend
David Terei <davidterei@gmail.com>**20100618131733
 Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
] 
[Remove unused 'ddump-opt-llvm' flag
David Terei <davidterei@gmail.com>**20100618101237
 Ignore-this: f78467496d986897e49d82646ee2907e
] 
[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
Simon Marlow <marlowsd@gmail.com>**20100618082258
 Ignore-this: a25567ebff9f575303ddc8f2deafebbf
] 
[joinToTargets: fix a case of panic "handleComponent cyclic"
Simon Marlow <marlowsd@gmail.com>**20100618082147
 Ignore-this: 765baeefbb5a41724004acd92405cecc
] 
[comment typo
Simon Marlow <marlowsd@gmail.com>**20100618082102
 Ignore-this: e495610b7dd5ec30b02938638b56cb7
] 
[Add support of TNTC to llvm backend
David Terei <davidterei@gmail.com>**20100618093205
 Ignore-this: 2c27d21668374a5b0d5e844882c69439
 
 We do this through a gnu as feature called subsections,
 where you can put data/code into a numbered subsection
 and those subsections will be joined together in descending
 order by gas at compile time.
] 
[Don't automatically insert a -fvia-C flag in an unregisterised compiler
Ian Lynagh <igloo@earth.li>**20100617190901
 Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
 The default object mode is already HscC, so it's unnecessary, and
 -fvia-C generates a deprecated flag warning now.
] 
[In PosixSource.h, conditionally define things based on platform
Ian Lynagh <igloo@earth.li>**20100617174912
 This may not be ideal, but it should get GHC building on all platforms
 again.
] 
[disable -fPIC for the GC for performance reasons
Simon Marlow <marlowsd@gmail.com>**20100617140025
 Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
 see comment for details
] 
[picCCOpts: -dynamic should not entail -optc-fPIC
Simon Marlow <marlowsd@gmail.com>**20100617115259
 Ignore-this: d71e42bd56e4bd107d2c431b801855e5
] 
[Make getAllocations() visible
Simon Marlow <marlowsd@gmail.com>**20100617113259
 Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
] 
[Fix the symbol visibility pragmas
Simon Marlow <marlowsd@gmail.com>**20100617105758
 Ignore-this: 76552500865473a1dbebbc1cc2def9f0
] 
[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
Simon Marlow <marlowsd@gmail.com>**20100616124718
 Ignore-this: afb56d5560c813051285607fefb15493
] 
[Fix bindisttest Makefile
Ian Lynagh <igloo@earth.li>**20100616205611
 Ignore-this: 39cd352152422f378572fc3859c5a377
] 
[Remove some more unused make variables
Ian Lynagh <igloo@earth.li>**20100616180519] 
[Convert some more variable names to FOO_CMD, for consistency
Ian Lynagh <igloo@earth.li>**20100616175916] 
[Rename some variables from FOO to FOO_CMD
Ian Lynagh <igloo@earth.li>**20100616161108
 This fixes a problem with commands like gzip, where if $GZIP is exported
 in the environment, then when make runs a command it'll put the Makefile
 variable's value in the environment. But gzip treats $GZIP as arguments
 for itself, so when we run gzip it thinks we're giving it "gzip" as an
 argument.
] 
[Make the "show" target work anywhere in the build tree
Ian Lynagh <igloo@earth.li>**20100616122910
 Ignore-this: 299d40cbe16112accd9f14e56fa12158
] 
[Change ghc-pwd's license to a string Cabal recognises
Ian Lynagh <igloo@earth.li>**20100615204015
 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
] 
[fix warning
Simon Marlow <marlowsd@gmail.com>**20100604205933
 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
] 
[--install-signal-handles=no does not affect the timer signal (#1908)
Simon Marlow <marlowsd@gmail.com>**20100527214627
 Ignore-this: b0c51f1abdb159dc360662485095a11a
] 
[Small optimisation: allocate nursery blocks contiguously
Simon Marlow <marlowsd@gmail.com>**20100509194928
 Ignore-this: e650e99e9ea9493d2efb245d565beef4
 This lets automatic prefetching work better, for a tiny performance boost
] 
[fix -fforce-recomp setting: module is PrimOp, not PrimOps
Simon Marlow <marlowsd@gmail.com>**20100507084507
 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
] 
[it should be an error to use relative directories (#4134)
Simon Marlow <marlowsd@gmail.com>**20100615151740
 Ignore-this: 2068021701832e018ca41b22877921d5
] 
[missing include-dirs or library-dirs is only a warning now (#4104)
Simon Marlow <marlowsd@gmail.com>**20100615151702
 Ignore-this: e3114123cef147bbd28ccb64581a1afb
] 
[fix #3822: desugaring case command in arrow notation
Ross Paterson <ross@soi.city.ac.uk>**20100615225110
 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
 
 Get the set of free variables from the generated case expression:
 includes variables in the guards and decls that were missed before,
 and is also a bit simpler.
] 
[Deprecate the -fvia-C flag; trac #3232
Ian Lynagh <igloo@earth.li>**20100615151836
 Ignore-this: c2452b2648bf7e44546465c1b964fce
] 
[Avoid using the new ~~ perl operator in the mangler
Ian Lynagh <igloo@earth.li>**20100615151236
 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
] 
[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
Simon Marlow <marlowsd@gmail.com>**20100615123643
 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
] 
[Add new LLVM code generator to GHC. (Version 2)
David Terei <davidterei@gmail.com>**20100615094714
 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
 
 This was done as part of an honours thesis at UNSW, the paper describing the
 work and results can be found at:
 
 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
 
 A Homepage for the backend can be found at:
 
 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
 
 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
 are within 5% slower than the NCG and generally better than the C code
 generator.  For some code though, such as the DPH projects benchmark, the LLVM
 code generator outperforms the NCG and C code generator by about a 25%
 reduction in run times.
 
] 
[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
simonpj@microsoft.com**20100615070626
 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
 
 GHCi was building its GlobalRdrEnv wrongly, so that the
 gre_par field was bogus.  That in turn fooled the renamer.
 The fix is easy: use the right function!  Namely, call
 RnNames.gresFromAvail rather than availsToNameSet.
] 
[Comments, and improvement to pretty-printing of HsGroup
simonpj@microsoft.com**20100615070409
 Ignore-this: ec8358f2485370b20226a97ec84e9024
] 
[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
simonpj@microsoft.com**20100614163935
 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
] 
[Fix Trac #4120: generate a proper coercion when unifying forall types
simonpj@microsoft.com**20100614134311
 Ignore-this: 601592bb505305f1954cbe730f168da4
 
 This was just a blatant omission, which hasn't come up before.
 Easily fixed, happily.
] 
[Use mkFunTy to ensure that invariants are respected
simonpj@microsoft.com**20100614134159
 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
] 
[Remove redundant debug code
simonpj@microsoft.com**20100601154151
 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
] 
[Fix Trac #4099: better error message for type functions
simonpj@microsoft.com**20100531140413
 Ignore-this: 3f53ca98cf770577818b9c0937482577
 
 Now we only want about "T is a type function and might not be
 injective" when matchin (T x) against (T y), which is the case
 that is really confusing.
] 
[Gruesome fix in CorePrep to fix embarassing Trac #4121
simonpj@microsoft.com**20100614132726
 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
 
 This is a long-lurking bug that has been flushed into
 the open by other arity-related changes.  There's a
 long comment
 
      Note [CafInfo and floating]
 
 to explain.  
 
 I really hate the contortions we have to do through to keep correct
 CafRef information on top-level binders.  The Right Thing, I believe,
 is to compute CAF and arity information later, and merge it into the
 interface-file information when the latter is generated.
 
 But for now, this hackily fixes the problem.
] 
[Fix a bug in CorePrep that meant output invariants not satisfied
simonpj@microsoft.com**20100531150013
 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
 
 In cpePair I did things in the wrong order so that something that
 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
 Fix is easy, and I added more informative type signatures too.
] 
[Robustify the treatement of DFunUnfolding
simonpj@microsoft.com**20100531145332
 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
 
 See Note [DFun unfoldings] in CoreSyn.  The issue here is that 
 you can't tell how many dictionary arguments a DFun needs just
 from looking at the Arity of the DFun Id: if the dictionary is
 represented by a newtype the arity might include the dictionary
 and value arguments of the (single) method.
 
 So we need to record the number of arguments need by the DFun
 in the DFunUnfolding itself.  Details in 
    Note [DFun unfoldings] in CoreSyn
] 
[Fix spelling in comment
simonpj@microsoft.com**20100614132259
 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
] 
[Update docs on view patterns
simonpj@microsoft.com**20100614074801
 Ignore-this: 8617b9078800d4942d71f142a5b6c831
] 
[Fix printing of splices; part of #4124
Ian Lynagh <igloo@earth.li>**20100613154838
 Just putting parens around non-atomic expressions isn't sufficient
 for splices, as only the $x and $(e) forms are valid input.
] 
[In ghci, catch IO exceptions when calling canonicalizePath
Ian Lynagh <igloo@earth.li>**20100613134627
 We now get an exception if the path doesn't exist
] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20100612213119] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20100612165450] 
[Update ghci example output in user guide; patch from YitzGale in #4111
Ian Lynagh <igloo@earth.li>**20100612162250] 
[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
benl@ouroborus.net**20100611044614] 
[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
Simon Marlow <marlowsd@gmail.com>**20100610080636
 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
] 
[Pass --no-tmp-comp-dir to Haddock (see comment)
Simon Marlow <marlowsd@gmail.com>**20100604083214
 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
] 
[Track changes to DPH libs
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
] 
[Track changes to DPH libs
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
] 
[In ghc-pkg, send warnings to stderr
Ian Lynagh <igloo@earth.li>**20100606161726
 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
] 
[Re-add newlines to enable layout for multi-line input.
Ian Lynagh <igloo@earth.li>**20100602180737
 Patch from Adam Vogt <vogt.adam@gmail.com>
 Partial fix for #3984
] 
[Don't use unnecessary parens when printing types (Fix Trac 4107)
simonpj@microsoft.com**20100604110143
 Ignore-this: a833714ab13013c4345b222f4e87db1d
 
    f :: Eq a => a -> a
 rather than
    f :: (Eq a) => a -> a
] 
[Track DPH library changes
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
] 
[fix --source-entity option passed to Haddock: we needed to escape a #
Simon Marlow <marlowsd@gmail.com>**20100603125459
 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
] 
[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
Simon Marlow <marlowsd@gmail.com>**20100602091419
 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
] 
[Add xhtml package (a new dependency of Haddock; not installed/shipped)
Simon Marlow <marlowsd@gmail.com>**20100602090101
 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
] 
[Use UserInterrupt rather than our own Interrupted exception (#4100)
Simon Marlow <marlowsd@gmail.com>**20100602082345
 Ignore-this: 1909acf2f452593138b9f85024711714
] 
[Add the global package DB to ghc --info (#4103)
Simon Marlow <marlowsd@gmail.com>**20100602082233
 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
] 
[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
 Ignore-this: 6f1bea62917c01c7adac636146132c97
 
 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
 > 1, so testing this again is redundant, assuming the number of generations
 won't change during program execution.
] 
[rts/sm/BlockAlloc.c: Small comment correction.
Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
] 
[rts/sm/GC.c: Annotate constants.
Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
 Ignore-this: f232edb89383564d759ed890a18f602f
] 
[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
 Ignore-this: f5d5feefa8f7b552303978f1804fea23
] 
[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
Ian Lynagh <igloo@earth.li>**20100601204211
 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
] 
[powerpc-apple-darwin now supports shared libs
Ian Lynagh <igloo@earth.li>**20100601173325] 
[PIC support for PowerPC
pho@cielonegro.org**20100508143900
 Ignore-this: 3673859a305398c4acae3f4d7c997615
 
 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
 It seems working with this patch, but I'm not sure this change is correct.
] 
[Vectoriser: only treat a function as scalar if it actually computes something
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
 Ignore-this: e5d99a6ddb62052e3520094a5af47552
] 
[Add a release notes file for 6.14.1
Ian Lynagh <igloo@earth.li>**20100530171117
 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
] 
[Check dblatex actually creates the files we tell it to
Ian Lynagh <igloo@earth.li>**20100530171043
 Ignore-this: ccc72caea2313be05cbac59bb54c0603
 If it fails, it still exits successfully.
] 
[Add darwin to the list of OSes for which we use mmap
Ian Lynagh <igloo@earth.li>**20100529145016
 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
 Patch from Barney Stratford
] 
[Simplify the CPP logic in rts/Linker.c
Ian Lynagh <igloo@earth.li>**20100529144929
 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
] 
[Fix validate on OS X
Ian Lynagh <igloo@earth.li>**20100529154726] 
[OS X x86_64 fix from Barney Stratford
Ian Lynagh <igloo@earth.li>**20100529122440] 
[OS X 64 installer fixes from Barney Stratford
Ian Lynagh <igloo@earth.li>**20100528234935] 
[fix warning
Simon Marlow <marlowsd@gmail.com>**20100525155812
 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
] 
[Fix doc bugs (#4071)
Simon Marlow <marlowsd@gmail.com>**20100525155728
 Ignore-this: aa25be196de567de360075022a1942f7
] 
[Make sparks into weak pointers (#2185)
Simon Marlow <marlowsd@gmail.com>**20100525150435
 Ignore-this: feea0bb5006007b82c932bc3006124d7
 The new strategies library (parallel-2.0+, preferably 2.2+) is now
 required for parallel programming, otherwise parallelism will be lost.
] 
[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
Simon Marlow <marlowsd@gmail.com>**20100525085301
 Ignore-this: 78b740337aa460915c812cbbcdae5321
] 
[Another attempt to get these #defines right
Simon Marlow <marlowsd@gmail.com>**20100525154313
 Ignore-this: 460ca0c47d81cd25eae6542114f67899
 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
 _POSIX_C_SOURCE==200112L.
] 
[Add configure flags for the location of GMP includes/library; fixes #4022
Ian Lynagh <igloo@earth.li>**20100525221616
 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
] 
[Refactor pretty printing of TyThings to fix Trac #4015
simonpj@microsoft.com**20100525153126
 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
] 
[When haddocking, we need the dependencies to have been built
Ian Lynagh <igloo@earth.li>**20100525145830
 as haddock loads the .hi files with the GHC API.
] 
[Fix profiling output; spotted by jlouis
Ian Lynagh <igloo@earth.li>**20100525111217
 We were outputing the number of words allocated in a column titled "bytes".
] 
[Improve printing of TyThings; fixes Trac #4087
simonpj@microsoft.com**20100525114045
 Ignore-this: da2a757a533454bba80b9b77cc5a771
] 
[Spelling in comments
simonpj@microsoft.com**20100525114001
 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
] 
[Refactor (again) the handling of default methods
simonpj@microsoft.com**20100525113910
 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
 
 This patch fixes Trac #4056, by 
 
  a) tidying up the treatment of default method names
  b) removing the 'module' argument to newTopSrcBinder
 
 The details aren't that interesting, but the result
 is much tidier. The original bug was a 'nameModule' panic,
 caused by trying to find the module of a top-level name.
 But TH quotes generate Internal top-level names that don't
 have a module, and that is generally a good thing.  
 
 Fixing that in turn led to the default-method refactoring,
 which also makes the Name for a default method be handled
 in the same way as other derived names, generated in BuildTyCl
 via a call newImplicitBinder.  Hurrah.
] 
[Don't do SpecConstr on NOINLINE things (Trac #4064)
simonpj@microsoft.com**20100525112807
 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
 
 Since the RULE from specialising gets the same Activation as
 the inlining for the Id itself there's no point in specialising
 a NOINLINE thing, because the rule will be permanently switched
 off.
 
 See Note [Transfer activation] in SpecConstr
 and Note [Auto-specialisation and RULES] in Specialise.
] 
[Change our #defines to work on FreeBSD too
Simon Marlow <marlowsd@gmail.com>**20100524105828
 Ignore-this: b23ede46211e67859206c0ec57d6a86f
 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
 additive, but on FreeBSD they are mutually exclusive.  However, it
 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
 get all the C99 stuff we need too, so there's no need for any #ifdefs.
 
 Submitted by: Gabor PALI <pgj@FreeBSD.org>
] 
[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
Simon Marlow <marlowsd@gmail.com>**20100524105547
 Ignore-this: a590b5391d6f05d50c8c088456c3c166
 We just about got away with this on x86 which isn't
 alignment-sensitive.  The result of the memory load is compared
 against a few different values, but there is a fallback case that
 happened to be the right thing when the pointer was tagged.  A good
 bug to find, nonetheless.
] 
[Add wiki links
Simon Marlow <marlowsd@gmail.com>**20100520095953
 Ignore-this: c22f126cde166e6207922b2eb51d29e3
] 
[the 'stage=0' trick to disable all compiler builds stopped working; fix it
Simon Marlow <marlowsd@gmail.com>**20100520104455
 Ignore-this: bb6fae9056471612c8dbf06916188c33
] 
[Comments and formatting only
benl@ouroborus.net**20100524014021
 Ignore-this: 64579c38154728b632e358bec751cc0b
] 
[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
Ian Lynagh <igloo@earth.li>**20100522225048] 
[Correct install-name for dynamic Darwin rts
pho@cielonegro.org**20100508151155
 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
] 
[Fix the RTS debug_p build
Ian Lynagh <igloo@earth.li>**20100522163127] 
[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
Ian Lynagh <igloo@earth.li>**20100521165005
 With gcc 4.4 we get
     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
 when running gcc with the -g flag. To work around this we unset
 CFLAGS when running the test.
] 
[Don't run "set -o igncr" before configuring libffi
Ian Lynagh <igloo@earth.li>**20100520162918
 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
 It used to make the build work on cygwin, but now it breaks it instead:
     config.status: creating include/Makefile
     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
     config.status: error: could not create include/Makefile
     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
     make[1]: *** [all] Error 2
] 
[Stop passing -Wl,-macosx_version_min to gcc
Ian Lynagh <igloo@earth.li>**20100520154003
 Fixes a build failure on OS X 10.6. When linking
     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
 we got
     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
     collect2: ld returned 1 exit status
] 
[Fix build on FreeBSD; patch from Gabor PALI
Ian Lynagh <igloo@earth.li>**20100519140552] 
[Fix package shadowing order (#4072)
Simon Marlow <marlowsd@gmail.com>**20100519104617
 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
 
 Later packages are supposed to shadow earlier ones in the stack,
 unless the ordering is overriden with -package-id flags.
 Unfortunately an earlier fix for something else had sorted the list of
 packages so that it was in lexicographic order by installedPackageId,
 and sadly our test (cabal/shadow) didn't pick this up because the
 lexicographic ordering happened to work for the test.  I've now fixed
 the test so it tries both orderings.
] 
[Set more env variables when configuring libffi
Ian Lynagh <igloo@earth.li>**20100518185014
 We now tell it where to find ld, nm and ar
] 
[Set the location of ar to be the in-tree ar on Windows
Ian Lynagh <igloo@earth.li>**20100518181556] 
[Change another / to </> to avoid building paths containing \/
Ian Lynagh <igloo@earth.li>**20100518172015
 This will hopefully fix #2889.
] 
[Fix #4074 (I hope).
Simon Marlow <marlowsd@gmail.com>**20100518113214
 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
 
 1. allow multiple threads to call startTimer()/stopTimer() pairs
 2. disable the timer around fork() in forkProcess()
 
 A corresponding change to the process package is required.
] 
[we don't have a gcc-lib in LIB_DIR any more
Simon Marlow <marlowsd@gmail.com>**20100401102351
 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
] 
[In validate, use gmake if available; based on a patch from Gabor PALI
Ian Lynagh <igloo@earth.li>**20100517200654] 
[Remove duplicate "./configure --help" output; fixes #4075
Ian Lynagh <igloo@earth.li>**20100516141206] 
[Update various 'sh boot's to 'perl boot'
Ian Lynagh <igloo@earth.li>**20100516122609
 Spotted by Marco Túlio Gontijo e Silva
] 
[add missing initialisation for eventBufMutex
Simon Marlow <marlowsd@gmail.com>**20100514094943
 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
] 
[Undo part of #4003 patch
Simon Marlow <marlowsd@gmail.com>**20100513142017
 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
 We still need the workaround for when compiling HEAD with 6.12.2
 
] 
[Fix makefile loop (#4050)
pho@cielonegro.org**20100507140707
 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
 
 The libtool creates "libffi.dylib" and "libffi.5.dylib" but not "libffi.5.0.9.dylib". Having it in libffi_DYNAMIC_LIBS causes an infinite makefile loop. 
] 
[fix !TABLES_NEXT_TO_CODE
Simon Marlow <marlowsd@gmail.com>**20100510151934
 Ignore-this: fccb859b114bef1c3122c98e60af51
] 
[looksLikeModuleName: allow apostrophe in module names (#4051)
Simon Marlow <marlowsd@gmail.com>**20100510094741
 Ignore-this: df9348f3ba90608bec57257b47672985
] 
[add the proper library dependencies for GhcProfiled=YES
Simon Marlow <marlowsd@gmail.com>**20100506122118
 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
] 
[Fix Trac #4003: fix the knot-tying in checkHiBootIface
simonpj@microsoft.com**20100511075026
 Ignore-this: a9ce2a318386fdc8782848df84592002
 
 I had incorrectly "optimised" checkHiBootIface so that it forgot
 to update the "knot-tied" type environment. 
 
 This patch fixes the HEAD
] 
[Re-engineer the derived Ord instance generation code (fix Trac #4019)
simonpj@microsoft.com**20100510133333
 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
   
 As well as fixing #4019, I rejigged the way that Ord instances are
 generated, which should make them faster in general.  See the 
 Note [Generating Ord instances].
 
 I tried to measure the performance difference from this change, but
 the #4019 fix only removes one conditional branch per iteration, and
 I couldn't measure a consistent improvement.  But still, tihs is
 better than before.
] 
[Make arity of INLINE things consistent
simonpj@microsoft.com**20100510133005
 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
 
 We eta-expand things with INLINE pragmas; 
 see Note [Eta-expanding INLINE things].
 
 But I eta-expanded it the wrong amount when the function
 was overloaded.  Ooops.
] 
[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
Simon Marlow <marlowsd@gmail.com>**20100510082325
 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
] 
[Add version constraints for the boot packages; fixes trac #3852
Ian Lynagh <igloo@earth.li>**20100509175051
 When using the bootstrapping compiler, we now explicitly constrain
 the version of boot packages (Cabal, extensible-exceptions, etc) to the
 in-tree version, so that the build system is less fragile should the
 user have a newer version installed for the bootstrapping compiler.
] 
[Don't include inter-package dependencies when compiling with stage 0; #4031
Ian Lynagh <igloo@earth.li>**20100509130511
 This fixes a problem when building with GHC 6.12 on Windows, where
 dependencies on stage 0 (bootstrapping compiler) packages have absolute
 paths c:/ghc/..., and make gets confused by the colon.
] 
[Add a ghc.mk for bindisttest/
Ian Lynagh <igloo@earth.li>**20100508223911] 
[Move some make variables around so they are available when cleaning
Ian Lynagh <igloo@earth.li>**20100508212405] 
[Optimise checkremove a bit
Ian Lynagh <igloo@earth.li>**20100508202006] 
[Improve the bindisttest Makefile
Ian Lynagh <igloo@earth.li>**20100508195450] 
[Add tools to test that cleaning works properly
Ian Lynagh <igloo@earth.li>**20100508194105] 
[Tweak the ghc-pkg finding code
Ian Lynagh <igloo@earth.li>**20100508125815
 It now understand the ghc-stage[123] names we use in-tree, and it won't
 go looking for any old ghc-pkg if it can't find the one that matches
 ghc.
] 
[Add a way to show what cleaning would be done, without actually doing it
Ian Lynagh <igloo@earth.li>**20100508122438] 
[Tidy up the "rm" flags in the build system
Ian Lynagh <igloo@earth.li>**20100508115745] 
[Fix crash in nested callbacks (#4038)
Simon Marlow <marlowsd@gmail.com>**20100507093222
 Ignore-this: cade85e361534ce711865a4820276388
 Broken by "Split part of the Task struct into a separate struct
 InCall".
] 
[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
Simon Marlow <marlowsd@gmail.com>**20100428205241
 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
 Default currently NO.
 
 Validate passed with GhcDynamic=YES on x86/Linux here.
 
 The compiler is currently slower on x86 when linked -dynamic,
 because the GC inner loop has been adversely affected by -fPIC, I'm
 looking into how to fix it.
] 
[omit "dyn" from the way appended to the __stginit label
Simon Marlow <marlowsd@gmail.com>**20100428204914
 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
 When GHCi is linked dynamically, we still want to be able to load
 non-dynamic object files.
] 
[improvements to findPtr(), a neat hack for browsing the heap in gdb
Simon Marlow <marlowsd@gmail.com>**20100506115427
 Ignore-this: ac57785bb3e13b97a5945f753f068738
] 
[Fix +RTS -G1
Simon Marlow <marlowsd@gmail.com>**20100506110739
 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
] 
[Enable the "redundant specialise pragmas" warning; fixes trac #3855
Ian Lynagh <igloo@earth.li>**20100506175351] 
[Find the correct external ids when there's a wrapper
simonpj@microsoft.com**20100506164135
 Ignore-this: 636266407b174b05b2b8646cc73062c0
 
 We were failing to externalise the wrapper id for a function
 that had one.
] 
[Add a comment about pattern coercions
simonpj@microsoft.com**20100506164027
 Ignore-this: 17428089f3df439f65d892e23e8ed61a
] 
[Comments only
simonpj@microsoft.com**20100506163829
 Ignore-this: 169167b6463873ab173cc5750c5be469
] 
[Make a missing name in mkUsageInfo into a panic
simonpj@microsoft.com**20100506163813
 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
 
 We really want to know about this!
] 
[Refactoring of hsXxxBinders
simonpj@microsoft.com**20100506163737
 Ignore-this: 97c6667625262b160f9746f7bea1c980
 
 This patch moves various functions that extract the binders
 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
 them consistent names.
] 
[Fix Trac #3966: warn about useless UNPACK pragmas
simonpj@microsoft.com**20100506163337
 Ignore-this: 5beb24b686eda6113b614dfac8490df1
 
 Warning about useless UNPACK pragmas wasn't as easy as I thought.
 I did quite a bit of refactoring, which improved the code by refining
 the types somewhat.  In particular notice that in DataCon, we have
 
     dcStrictMarks   :: [HsBang]
     dcRepStrictness :: [StrictnessMarks]
 
 The former relates to the *source-code* annotation, the latter to
 GHC's representation choice.
] 
[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
simonpj@microsoft.com**20100506162719
 Ignore-this: d000bca15b0e127e297378ded1bfb81b
 
 The tcg_dus field used to contain *uses* of type and class decls,
 but not *defs*.  That was inconsistent, and it really went wrong
 for Template Haskell bracket.  What happened was that
  foo = [d| data A = A
        	   f :: A -> A
        	   f x = x |]
 would find a "use" of A when processing the top level of the module,
 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
 the fact that the tcg_dus for the nested quote didn't have defs for
 A.
] 
[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
simonpj@microsoft.com**20100506161523
 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
 
 The issue here is that 
 
     g :: A -> A
     f
     data A = A
 
 is treated as if you'd written $(f); that is the call of
 f is a top-level Template Haskell splice.  This patch 
 makes sure that we *first* check the -XTemplateHaskellFlag
 and bleat about a parse error if it's off.  Othewise we
 get strange seeing "A is out of scope" errors.
] 
[Change an assert to a warn
simonpj@microsoft.com**20100506161111
 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
 
 This is in the constraint simplifier which I'm about
 to rewrite, so I'm hoping the assert isn't fatal!
] 
[Tidy up debug print a little
simonpj@microsoft.com**20100506161027
 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
] 
[Remove useless UNPACK pragmas
simonpj@microsoft.com**20100506161012
 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
] 
[Add WARNM2 macro, plus some refactoring
simonpj@microsoft.com**20100506160808
 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
] 
[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
simonpj@microsoft.com**20100506160750
 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
] 
[Fix Trac #3966: warn about unused UNPACK pragmas
simonpj@microsoft.com**20100409201812
 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
] 
[Fix Trac #3953: fail earlier when using a bogus quasiquoter
simonpj@microsoft.com**20100409201748
 Ignore-this: ef48e39aa932caed538643985234f043
] 
[Fix Trac #3965: tighten conditions when deriving Data
simonpj@microsoft.com**20100409184420
 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
 
 It's tricky to set up the context for a Data instance.  I got it wrong
 once, and fixed it -- hence the "extra_constraints" in
 TcDeriv.inferConstraints.  
 
 But it still wasn't right!  The tricky bit is that dataCast1 is only
 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
 the code in TcGenDeriv for dataCastX.
] 
[Fix Trac #3964: view patterns in DsArrows
simonpj@microsoft.com**20100409165557
 Ignore-this: d823c182831d5e2e592e995b16180e2f
 
 Just a missing case; I've eliminated the catch-all so 
 that we get a warning next time we extend HsPat
] 
[Fix Trac #3955: renamer and type variables
simonpj@microsoft.com**20100409163710
 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
 
 The renamer wasn't computing the free variables of a type declaration
 properly.  This patch refactors a bit, and makes it more robust,
 fixing #3955 and several other closely-related bugs.  (We were
 omitting some free variables and that could just possibly lead to a
 usage-version tracking error.
] 
[Layout only
simonpj@microsoft.com**20100409163506
 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
] 
[Give a better deprecated message for INCLUDE pragmas; fixes #3933
Ian Lynagh <igloo@earth.li>**20100506130910
 We now have a DeprecatedFullText constructor, so we can override the
 "-#include is deprecated: " part of the warning.
] 
[De-haddock a comment that confuses haddock
Ian Lynagh <igloo@earth.li>**20100506123607] 
[Fix comment to not confuse haddock
Ian Lynagh <igloo@earth.li>**20100506113642] 
[Detect EOF when trying to parse a string in hp2ps
Ian Lynagh <igloo@earth.li>**20100506000830] 
[Make the demand analyser sdd demands for strict constructors
simonpj@microsoft.com**20100505200936
 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
 
 This opportunity was spotted by Roman, and is documented in 
 Note [Add demands for strict constructors] in DmdAnal.
] 
[Fix interaction of exprIsCheap and the lone-variable inlining check
simonpj@microsoft.com**20100505200723
 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
 
 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
 
 This buglet meant that a nullary definition with an INLINE pragma
 counter-intuitively didn't get inlined at all.  Roman identified
 the bug.
] 
[Matching cases in SpecConstr and Rules
simonpj@microsoft.com**20100505200543
 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
 
 This patch has zero effect.  It includes comments,
 a bit of refactoring, and a tiny bit of commment-out
 code go implement the "matching cases" idea below.
 
 In the end I've left it disabled because while I think
 it does no harm I don't think it'll do any good either.
 But I didn't want to lose the idea totally. There's
 a thread called "Storable and constant memory" on
 the libraries@haskell.org list (Apr 2010) about it.
 
 Note [Matching cases]
 ~~~~~~~~~~~~~~~~~~~~~
 {- NOTE: This idea is currently disabled.  It really only works if
          the primops involved are OkForSpeculation, and, since
 	 they have side effects readIntOfAddr and touch are not.
 	 Maybe we'll get back to this later .  -}
   
 Consider
    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
       case touch# fp s# of { _ -> 
       I# n# } } )
 This happened in a tight loop generated by stream fusion that 
 Roman encountered.  We'd like to treat this just like the let 
 case, because the primops concerned are ok-for-speculation.
 That is, we'd like to behave as if it had been
    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
    case touch# fp s# of { _ -> 
    f (I# n# } } )
] 
[Comments only
simonpj@microsoft.com**20100504163629
 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
] 
[Comments only
simonpj@microsoft.com**20100504163529
 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
] 
[Comments only
simonpj@microsoft.com**20100504163457
 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
] 
[Comments only (about type families)
simonpj@microsoft.com**20100417145032
 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
] 
[Fix hp2ps when the .hp file has large string literals
Ian Lynagh <igloo@earth.li>**20100505191921] 
[In build system, call package-config after including package data
Ian Lynagh <igloo@earth.li>**20100504225035
 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
] 
[runghc: flush stdout/stderr on an exception (#3890)
Simon Marlow <marlowsd@gmail.com>**20100505133848
 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
] 
[Remove the Unicode alternative for ".." (#3894)
Simon Marlow <marlowsd@gmail.com>**20100505121202
 Ignore-this: 2452cd67281667106f9169747b6d784f
] 
[tidyup; no functional changes
Simon Marlow <marlowsd@gmail.com>**20100505115015
 Ignore-this: d0787e5cdeef1dee628682fa0a46019
] 
[Make the running_finalizers flag task-local
Simon Marlow <marlowsd@gmail.com>**20100505114947
 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
 Fixes a bug reported by Lennart Augustsson, whereby we could get an
 incorrect error from the RTS about re-entry from a finalizer,
] 
[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
Simon Marlow <marlowsd@gmail.com>**20100505114746
 Ignore-this: efea04991d6feed04683a42232fc85da
] 
[Allow filepath-1.2.*
Simon Marlow <marlowsd@gmail.com>**20100505101139
 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
] 
[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
Simon Marlow <marlowsd@gmail.com>**20100505094534
 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
] 
[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
Simon Marlow <marlowsd@gmail.com>**20100505094506
 Ignore-this: 302616931f61667030d77ddfbb02374e
] 
[Fix build with GHC 6.10
Ian Lynagh <igloo@earth.li>**20100504180302
 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
 so we need to jump through some hoops to get the more general type.
] 
[The libffi patches are no longer needed
Ian Lynagh <igloo@earth.li>**20100504171603] 
[Use the in-tree windres; fixes trac #4032
Ian Lynagh <igloo@earth.li>**20100504170941] 
[Print unfoldings on lambda-bound variables
Simon PJ <simonpj@microsoft.com>**20100503181822
 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
 
 ...in the unusual case where they have one; 
 see Note [Case binders and join points] in Simplify.lhs
] 
[Replace FiniteMap and UniqFM with counterparts from containers.
Milan Straka <fox@ucw.cz>**20100503171315
 Ignore-this: a021972239163dbf728284b19928cebb
 
 The original interfaces are kept. There is small performance improvement:
 - when compiling for five nofib, we get following speedups:
     Average                -----           -2.5%
     Average                -----           -0.6%
     Average                -----           -0.5%
     Average                -----           -5.5%
     Average                -----          -10.3%
 - when compiling HPC ten times, we get:
     switches                          oldmaps   newmaps
     -O -fasm                          117.402s  116.081s (98.87%)
     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
] 
[Make the demand analyser take account of lambda-bound unfoldings
Simon PJ <simonpj@microsoft.com>**20100503151630
 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
 
 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
 in DmdAnal.
 
 I'm still not really happy with this lambda-bound-unfolding stuff.
] 
[Fix dynamic libs on OS X, and enable them by default
Ian Lynagh <igloo@earth.li>**20100503150302] 
[Switch back to using bytestring from the darcs repo; partially fixes #3855
Ian Lynagh <igloo@earth.li>**20100502113458] 
[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
Ian Lynagh <igloo@earth.li>**20100428150700] 
[Fix "make 2"
Ian Lynagh <igloo@earth.li>**20100427162212
 The new Makefile logic was enabling the stage 1 rules when stage=2,
 so "make 2" was rebuilding stage 1.
] 
[Inplace programs depend on their shell wrappers
Ian Lynagh <igloo@earth.li>**20100427160038] 
[--make is now the default (#3515), and -fno-code works with --make (#3783)
Simon Marlow <marlowsd@gmail.com>**20100427122851
 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
 If the command line contains any Haskell source files, then we behave
 as if --make had been given.
 
 The meaning of the -c flag has changed (back): -c now selects one-shot
 compilation, but stops before linking.  However, to retain backwards
 compatibility, -c is still allowed with --make, and means the same as
 --make -no-link.  The -no-link flag has been un-deprecated.
 
 -fno-code is now allowed with --make (#3783); the fact that it was
 disabled before was largely accidental, it seems.  We also had some
 regressions in this area: it seems that -fno-code was causing a .hc
 file to be emitted in certain cases.  I've tidied up the code, there
 was no need for -fno-code to be a "mode" flag, as far as I can tell.
 
 -fno-code does not emit interface files, nor does it do recompilation
 checking, as suggested in #3783.  This would make Haddock emit
 interface files, for example, and I'm fairly sure we don't want to do
 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
 get away without recompilation checking.
] 
[remove duplicate docs for -e in --help output (#4010)
Simon Marlow <marlowsd@gmail.com>**20100426140642
 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
] 
[workaround for #4003, fixes HEAD build with 6.12.2
Simon Marlow <marlowsd@gmail.com>**20100426103428
 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
] 
[Make sure all the clean rules are always included
Ian Lynagh <igloo@earth.li>**20100424181823
 In particular, this fixes a problem where stage3 bits weren't being cleaned
] 
[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
Ian Lynagh <igloo@earth.li>**20100424132830
 We weren't getting sharedlibs on amd64/FreeBSD because of this
] 
[Include DPH docs in bindists
Ian Lynagh <igloo@earth.li>**20100424123101] 
[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
Simon Marlow <marlowsd@gmail.com>**20100423124853
 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
] 
[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
Simon Marlow <marlowsd@gmail.com>**20100422213605
 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
] 
[Add missing constant folding and optimisation for unsigned division
Simon Marlow <marlowsd@gmail.com>**20100422213443
 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
] 
[Fix the GHC API link in the main doc index.html
Ian Lynagh <igloo@earth.li>**20100422213226] 
[Give the right exit code in darcs-all
Ian Lynagh <igloo@earth.li>**20100421171339
 Our END block was calling system, which alters $?. So now we save and
 restore it.
] 
[Use StgWord64 instead of ullong
Ian Lynagh <igloo@earth.li>**20100421162336
 This patch also fixes ullong_format_string (renamed to showStgWord64)
 so that it works with values outside the 32bit range (trac #3979), and
 simplifies the without-commas case.
] 
[Implement try10Times in Makefile
Ian Lynagh <igloo@earth.li>**20100420165909
 Avoid using seq, as FreeBSD has jot instead.
] 
[Fix crash in non-threaded RTS on Windows
Simon Marlow <marlowsd@gmail.com>**20100420122125
 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
 The tso->block_info field is now overwritten by pushOnRunQueue(), but
 stg_block_async_info was assuming that it still held a pointer to the
 StgAsyncIOResult.  We must therefore save this value somewhere safe
 before putting the TSO on the run queue.
] 
[Expand the scope of the event_buf_mutex to cover io_manager_event
Simon Marlow <marlowsd@gmail.com>**20100420122026
 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
 I once saw a failure that I think was due to a race on
 io_manager_event, this should fix it.
] 
[Flags -auto and -auto-all operate only on functions not marked INLINE.
Milan Straka <fox@ucw.cz>**20100331191050
 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
] 
[Spelling correction for LANGUAGE pragmas
Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
] 
[Update the user guide so it talks about the newer "do rec" notation everywhere
Ian Lynagh <igloo@earth.li>**20100416205416
 Some of the problems highlighted in trac #3968.
] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20100416205412] 
[Fix Trac #3950: unifying types of different kinds
simonpj@microsoft.com**20100412151845
 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
 
 I was assuming that the unifer only unified types of the 
 same kind, but now we can "defer" unsolved constraints that
 invariant no longer holds.  Or at least is's more complicated
 to ensure.  
 
 This patch takes the path of not assuming the invariant, which
 is simpler and more robust.  See
 Note [Mismatched type lists and application decomposition]
] 
[Fix Trac #3943: incorrect unused-variable warning
simonpj@microsoft.com**20100412151630
 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
 
 In fixing this I did the usual little bit of refactoring
] 
[Convert boot and boot-pkgs to perl
Ian Lynagh <igloo@earth.li>**20100415143919
 This stops us having to worry about sh/sed/... portability.
] 
[Use $(MAKE), not make, when recursively calling make
Ian Lynagh <igloo@earth.li>**20100415121453] 
[Remove the ghc_ge_609 makefile variables
Ian Lynagh <igloo@earth.li>**20100412235658
 They are now guaranteed to be YES
] 
[Increase the minimum version number required to 6.10 in configure.ac
Ian Lynagh <igloo@earth.li>**20100412235313] 
[The bootstrapping compiler is now required to be > 609
Ian Lynagh <igloo@earth.li>**20100409161046] 
[Handle IND_STATIC in isRetainer
Ian Lynagh <igloo@earth.li>**20100409104207
 IND_STATIC used to be an error, but at the moment it can happen
 as isAlive doesn't look through IND_STATIC as it ignores static
 closures. See trac #3956 for a program that hit this error.
] 
[Add Data and Typeable instances to HsSyn
David Waern <david.waern@gmail.com>**20100330011020
 Ignore-this: c3f2717207b15539fea267c36b686e6a
 
 The instances (and deriving declarations) have been taken from the ghc-syb
 package.
] 
[Fix for derefing ThreadRelocated TSOs in MVar operations
Simon Marlow <marlowsd@gmail.com>**20100407092824
 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
] 
[sanity check fix
Simon Marlow <marlowsd@gmail.com>**20100407092746
 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
] 
[get the reg liveness right in the putMVar# heap check
Simon Marlow <marlowsd@gmail.com>**20100407092724
 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
] 
[initialise the headers of MSG_BLACKHOLE objects properly
Simon Marlow <marlowsd@gmail.com>**20100407081712
 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
] 
[initialise the headers of MVAR_TSO_QUEUE objects properly
Simon Marlow <marlowsd@gmail.com>**20100407081514
 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
] 
[undo debugging code
Simon Marlow <marlowsd@gmail.com>**20100406142740
 Ignore-this: 323c2248f817b6717c19180482fc4b00
] 
[putMVar#: fix reg liveness in the heap check
Simon Marlow <marlowsd@gmail.com>**20100406135832
 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
] 
[account for the new BLACKHOLEs in the GHCi debugger
Simon Marlow <marlowsd@gmail.com>**20100406133406
 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
] 
[don't forget to deRefTSO() in tryWakeupThread()
Simon Marlow <marlowsd@gmail.com>**20100406130411
 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
] 
[Fix bug in popRunQueue
Simon Marlow <marlowsd@gmail.com>**20100406091453
 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
] 
[fix bug in migrateThread()
Simon Marlow <marlowsd@gmail.com>**20100401105840
 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
] 
[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
Simon Marlow <marlowsd@gmail.com>**20100401093519
 Ignore-this: 95f2480c8a45139835eaf5610217780b
 These are no longer used: once upon a time they used to have different
 layout from IND and IND_PERM respectively, but that is no longer the
 case since we changed the remembered set to be an array of addresses
 instead of a linked list of closures.
] 
[Change the representation of the MVar blocked queue
Simon Marlow <marlowsd@gmail.com>**20100401091605
 Ignore-this: 20a35bfabacef2674df362905d7834fa
 
 The list of threads blocked on an MVar is now represented as a list of
 separately allocated objects rather than being linked through the TSOs
 themselves.  This lets us remove a TSO from the list in O(1) time
 rather than O(n) time, by marking the list object.  Removing this
 linear component fixes some pathalogical performance cases where many
 threads were blocked on an MVar and became unreachable simultaneously
 (nofib/smp/threads007), or when sending an asynchronous exception to a
 TSO in a long list of thread blocked on an MVar.
 
 MVar performance has actually improved by a few percent as a result of
 this change, slightly to my surprise.
 
 This is the final cleanup in the sequence, which let me remove the old
 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
 is now the case that only the Capability that owns a TSO may modify
 its state (well, almost), and this simplifies various things.  More of
 the RTS is based on message-passing between Capabilities now.
] 
[eliminate some duplication with a bit of CPP
Simon Marlow <marlowsd@gmail.com>**20100330154355
 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
] 
[Make ioManagerDie() idempotent
Simon Marlow <marlowsd@gmail.com>**20100401100705
 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
 Avoids screeds of "event buffer overflowed; event dropped" in
 conc059(threaded1).
] 
[Move a thread to the front of the run queue when another thread blocks on it
Simon Marlow <marlowsd@gmail.com>**20100329144521
 Ignore-this: c518ff0d41154680edc811d891826a29
 This fixes #3838, and was made possible by the new BLACKHOLE
 infrastructure.  To allow reording of the run queue I had to make it
 doubly-linked, which entails some extra trickiness with regard to
 GC write barriers and suchlike.
] 
[remove non-existent MUT_CONS symbols
Simon Marlow <marlowsd@gmail.com>**20100330152600
 Ignore-this: 885628257a9d03f2ece2a754d993014a
] 
[change throwTo to use tryWakeupThread rather than unblockOne
Simon Marlow <marlowsd@gmail.com>**20100329144613
 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
] 
[tiny GC optimisation
Simon Marlow <marlowsd@gmail.com>**20100329144551
 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
] 
[New implementation of BLACKHOLEs
Simon Marlow <marlowsd@gmail.com>**20100329144456
 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
 
 This replaces the global blackhole_queue with a clever scheme that
 enables us to queue up blocked threads on the closure that they are
 blocked on, while still avoiding atomic instructions in the common
 case.
 
 Advantages:
 
  - gets rid of a locked global data structure and some tricky GC code
    (replacing it with some per-thread data structures and different
    tricky GC code :)
 
  - wakeups are more prompt: parallel/concurrent performance should
    benefit.  I haven't seen anything dramatic in the parallel
    benchmarks so far, but a couple of threading benchmarks do improve
    a bit.
 
  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
    it is the target of throwTo).
 
  - less sharing and better separation of Capabilities: communication
    is done with messages, the data structures are strictly owned by a
    Capability and cannot be modified except by sending messages.
 
  - this change will utlimately enable us to do more intelligent
    scheduling when threads block on each other.  This is what started
    off the whole thing, but it isn't done yet (#3838).
 
 I'll be documenting all this on the wiki in due course.
 
] 
[Fix warnings (allow pushOnRunQueue() to not be inlined)
Simon Marlow <marlowsd@gmail.com>**20100401114559
 Ignore-this: f40bfbfad70a5165a946d11371605b7d
] 
[remove out of date comment
Simon Marlow <marlowsd@gmail.com>**20100401105853
 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
] 
[tidy up spacing in stderr traces
Simon Marlow <marlowsd@gmail.com>**20100326163122
 Ignore-this: 16558b0433a274be217d4bf39aa4946
] 
[Fix an assertion that was not safe when running in parallel
Simon Marlow <marlowsd@gmail.com>**20100325143656
 Ignore-this: cad08fb8900eb3a475547af0189fcc47
] 
[Never jump directly to a thunk's entry code, even if it is single-entry
Simon Marlow <marlowsd@gmail.com>**20100325114847
 Ignore-this: 938da172c06a97762ef605c8fccfedf1
 I don't think this fixes any bugs as we don't have single-entry thunks
 at the moment, but it could cause problems for parallel execution if
 we ever did re-introduce update avoidance.
] 
[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
Milan Straka <fox@ucw.cz>**20100331153626
 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
] 
[Add -pa and -V to the documentation of time profiling options.
Milan Straka <fox@ucw.cz>**20100329191121
 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
] 
[Keep gcc 4.5 happy
Simon Marlow <marlowsd@gmail.com>**20100330120425
 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
] 
[Fix warning compiling Linker.c for PPC Mac
naur@post11.tele.dk**20100403182355
 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
 The warning message eliminated is:
 > rts/Linker.c:4756:0:
 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
] 
[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
naur@post11.tele.dk**20100403181656
 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
 The error messages eliminated are:
 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
 >     Not in scope: `mkRtsCodeLabel'
 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
 >     Not in scope: `mkRtsCodeLabel'
 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
 >     Not in scope: `mkRtsCodeLabel'
] 
[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
naur@post11.tele.dk**20100403180643
 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
 The error message eliminated is:
 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
 >     Not in scope: data constructor `DestBlockId'
] 
[Fix boot-pkgs's sed usage to work with Solaris's sed
Ian Lynagh <igloo@earth.li>**20100401153441] 
[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
Ian Lynagh <igloo@earth.li>**20100331144707
 This seems to fix this failure:
 [...]
 ** BUILD SUCCEEDED **
 rm -f -f GHC-system.pmdoc/*-contents.xml
 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
     2511962091,
     2447007291,
     2511961547,
     2511961610,
     2432803204,
     453371,
     447720,
     436209,
     435510,
     9986,
     9918
 )
 make[1]: *** [framework-pkg] Trace/BPT trap
 make: *** [framework-pkg] Error 2
] 
[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
Ian Lynagh <igloo@earth.li>**20100331161302
 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
] 
[Avoid a non-portable use of tar reported by Roman Leshchinskiy
Ian Lynagh <igloo@earth.li>**20100330145802] 
[Don't install EXTRA_PACKAGES by default
Simon Marlow <marlowsd@gmail.com>**20100330142714
 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
] 
[fix a non-portable printf format
Simon Marlow <marlowsd@gmail.com>**20100330134437
 Ignore-this: d41c23c54ec29654cb2049de1e588570
] 
[avoid single quote in #error
Simon Marlow <marlowsd@gmail.com>**20100330120346
 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
] 
[use FMT_Word64 instead of locally-defined version
Simon Marlow <marlowsd@gmail.com>**20100330114650
 Ignore-this: 82697b8095dffb3a8e196c687006ece0
] 
[remove old/unused DotnetSupport and GhcLibsWithUnix
Simon Marlow <marlowsd@gmail.com>**20100330123732
 Ignore-this: c68814868b3671abdc369105bbeafe6c
] 
[fix return type cast in f.i.wrapper when using libffi (#3516)
Simon Marlow <marlowsd@gmail.com>**20100329154220
 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
 
 Original fix submitted by 
   Sergei Trofimovich <slyfox@community.haskell.org>
 modified by me:
  - exclude 64-bit types
  - compare uniques, not strings
  - #include "ffi.h" is conditional
] 
[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
Simon Marlow <marlowsd@gmail.com>**20100329135734
 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
 Re-recorded against HEAD.
] 
[avoid a fork deadlock (see comments)
Simon Marlow <marlowsd@gmail.com>**20100329132329
 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
] 
[tidy up the end of the all_tasks list after forking
Simon Marlow <marlowsd@gmail.com>**20100329132253
 Ignore-this: 819d679875be5f344e816210274d1c29
] 
[Add a 'setKeepCAFs' external function (#3900)
Simon Marlow <marlowsd@gmail.com>**20100329110036
 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
] 
[Explicitly check whether ar supports the @file syntax
Ian Lynagh <igloo@earth.li>**20100329123325
 rather than assuming that all GNU ar's do.
 Apparently OpenBSD's older version doesn't.
] 
[Fix the format specifier for Int64/Word64 on Windows
Ian Lynagh <igloo@earth.li>**20100327182126
 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
 than 64-bit. We use %I64u/%I64d instead.
] 
[Fix the ghci startmenu item
Ian Lynagh <igloo@earth.li>**20100326235934
 I'm not sure what changed, but it now doesn't work for me without
 the "Start in" field being set.
] 
[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
Ian Lynagh <igloo@earth.li>**20100326155917] 
[Add a licence file for the Windows installer to use
Ian Lynagh <igloo@earth.li>**20100326155130] 
[Add gcc-g++ to the inplace mingw installation; fixes #3893
Ian Lynagh <igloo@earth.li>**20100326154714] 
[Add the licence file to the Windows installer. Fixes #3934
Ian Lynagh <igloo@earth.li>**20100326152449] 
[Quote the paths to alex and happy in configure
Ian Lynagh <igloo@earth.li>**20100325143449
 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
] 
[Use </> rather than ++ "/"
Ian Lynagh <igloo@earth.li>**20100325133237
 This stops us generating paths like
     c:\foo\/ghc460_0/ghc460_0.o
 which windres doesn't understand.
] 
[Append $(exeext) to utils/ghc-pkg_dist_PROG
Ian Lynagh <igloo@earth.li>**20100324233447
 Fixes bindist creation
] 
[A sanity check
Simon Marlow <marlowsd@gmail.com>**20100325110500
 Ignore-this: 3b3b76d898c822456857e506b7531e65
] 
[do_checks: do not set HpAlloc if the stack check fails
Simon Marlow <marlowsd@gmail.com>**20100325110328
 Ignore-this: 899ac8c29ca975d03952dbf4608d758
 
 This fixes a very rare heap corruption bug, whereby
 
  - a context switch is requested, which sets HpLim to zero
    (contextSwitchCapability(), called by the timer signal or
    another Capability).
 
  - simultaneously a stack check fails, in a code fragment that has
    both a stack and a heap check.
 
 The RTS then assumes that a heap-check failure has occurred and
 subtracts HpAlloc from Hp, although in fact it was a stack-check
 failure and retreating Hp will overwrite valid heap objects.  The bug
 is that HpAlloc should only be set when Hp has been incremented by the
 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
 
 This bug is probably incredibly rare in practice, but I happened to be
 working on a test that triggers it reliably:
 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
 300 +RTS -N2, run repeatedly in a loop.
] 
[comments and formatting only
Simon Marlow <marlowsd@gmail.com>**20100325104617
 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
] 
[Change how perl scripts get installed; partially fixes #3863
Ian Lynagh <igloo@earth.li>**20100324171422
 We now regenerate them when installing, which means the path for perl
 doesn't get baked in
] 
[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
Ian Lynagh <igloo@earth.li>**20100324171408
 This means we don't rely on baking a path to gcc into the executable
] 
[Quote the ar path in configure
Ian Lynagh <igloo@earth.li>**20100324162043] 
[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
Ian Lynagh <igloo@earth.li>**20100324145048] 
[Remove unused cCONTEXT_DIFF
Ian Lynagh <igloo@earth.li>**20100324145013] 
[Remove unused cEnableWin32DLLs
Ian Lynagh <igloo@earth.li>**20100324144841] 
[Remove unused cGHC_CP
Ian Lynagh <igloo@earth.li>**20100324144656] 
[Fix the build for non-GNU-ar
Ian Lynagh <igloo@earth.li>**20100324132907] 
[Tweak the Makefile code for making .a libs; fixes trac #3642
Ian Lynagh <igloo@earth.li>**20100323221325
 The main change is that, rather than using "xargs ar" we now put
 all the filenames into a file, and do "ar @file". This means that
 ar adds all the files at once, which works around a problem where
 files with the same basename in a later invocation were overwriting
 the existing file in the .a archive.
] 
[Enable shared libraries on Windows; fixes trac #3879
Ian Lynagh <igloo@earth.li>**20100320231414
 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
] 
[Add the external core PDF to the new build system
Ian Lynagh <igloo@earth.li>**20100321161909] 
[Allow specifying $threads directly when validating
Ian Lynagh <igloo@earth.li>**20100321112835] 
[Remove LazyUniqFM; fixes trac #3880
Ian Lynagh <igloo@earth.li>**20100320213837] 
[UNDO: slight improvement to scavenging ...
Simon Marlow <marlowsd@gmail.com>**20100319153413
 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
 
 Accidnetally pushed this patch which, while it validates, isn't
 correct.
 
 rolling back:
 
 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
   * slight improvement to scavenging of update frames when a collision has occurred
 
     M ./rts/sm/Scav.c -19 +15
] 
[slight improvement to scavenging of update frames when a collision has occurred
Simon Marlow <marlowsd@gmail.com>**20100319112127
 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
] 
[Don't install the utf8-string package
Ian Lynagh <igloo@earth.li>**20100317212709] 
[Don't use -Bsymbolic when linking the RTS
Ian Lynagh <igloo@earth.li>**20100316233357
 This makes the RTS hooks work when doing dynamic linking
] 
[Fix Trac #3920: Template Haskell kinds
simonpj@microsoft.com**20100317123519
 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
 
 Fix two places where we were doing foldl instead of foldr
 after decomposing a Kind.  Strange that the same bug appears
 in two quite different places!
] 
[copy_tag_nolock(): fix write ordering and add a write_barrier()
Simon Marlow <marlowsd@gmail.com>**20100316143103
 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
 
 Fixes a rare crash in the parallel GC.
 
 If we copy a closure non-atomically during GC, as we do for all
 immutable values, then before writing the forwarding pointer we better
 make sure that the closure itself is visible to other threads that
 might follow the forwarding pointer.  I imagine this doesn't happen
 very often, but I just found one case of it: in scavenge_stack, the
 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
 up the info pointer.
] 
[Add sliceP mapping to vectoriser builtins
benl@ouroborus.net**20100316060517
 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
] 
[Comments only
benl@ouroborus.net**20100311064518
 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
] 
[TAG 2010-03-16
Ian Lynagh <igloo@earth.li>**20100316005137
 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
] 
Patch bundle hash:
47eae2e8876492b9f8d6422cd9e20a3df05229db
