Thu Apr 22 08:54:36 BST 2010  <Denys Rtveliashvili> denys.rtveliashvili@absu.info
  * Substituted multiplications and divisions by bit shifts to improve performance.
  
  It seems that the Cmm compiler does not optimize away multiplications and divisions, so this is a manual fix for just one frequently occuring case.
  In addition to this, it would be useful to make Cmm compiler:
  1) convert multiplications to bit shifts if multiplier is 2^n
  2) convert divisions to bit shifts if divisor is 2^n. And if it is not, substitute the division with multiplication.

New patches:

[Substituted multiplications and divisions by bit shifts to improve performance.
<Denys Rtveliashvili> denys.rtveliashvili@absu.info**20100422075436
 Ignore-this: b25f7eb887b4c3b77033ed312f8920ab
 
 It seems that the Cmm compiler does not optimize away multiplications and divisions, so this is a manual fix for just one frequently occuring case.
 In addition to this, it would be useful to make Cmm compiler:
 1) convert multiplications to bit shifts if multiplier is 2^n
 2) convert divisions to bit shifts if divisor is 2^n. And if it is not, substitute the division with multiplication.
] {
hunk ./includes/Cmm.h 172
 #if SIZEOF_W == 4
 #define W_SHIFT 2
 #elif SIZEOF_W == 8
-#define W_SHIFT 4
+#define W_SHIFT 3
 #endif
 
 /* Converting quantities of words to bytes */
hunk ./includes/Cmm.h 176
-#define WDS(n) ((n)*SIZEOF_W)
+#define WDS(n) ((n) << W_SHIFT)
 
 /*
  * Converting quantities of bytes to words
hunk ./includes/Cmm.h 182
  * NB. these work on *unsigned* values only
  */
-#define BYTES_TO_WDS(n) ((n) / SIZEOF_W)
-#define ROUNDUP_BYTES_TO_WDS(n) (((n) + SIZEOF_W - 1) / SIZEOF_W)
+#define BYTES_TO_WDS(n) ((n) >> W_SHIFT)
+#define ROUNDUP_BYTES_TO_WDS(n) (((n) + SIZEOF_W - 1) >> W_SHIFT )
 
 /* TO_W_(n) converts n to W_ type from a smaller type */
 #if SIZEOF_W == 4
}

Context:

[Update ANNOUNCE, update version number and set RELEASE=YES
Ian Lynagh <igloo@earth.li>**20100409132351] 
[Handle IND_STATIC in isRetainer
Ian Lynagh <igloo@earth.li>**20100409102641
 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.
] 
[Fix boot-pkgs's sed usage to work with Solaris's sed
Ian Lynagh <igloo@earth.li>**20100401153441] 
[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.
] 
[Update release notes
Ian Lynagh <igloo@earth.li>**20100331145829] 
[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
] 
[Update to bytestring 0.9.1.6; fixes #3808
Ian Lynagh <igloo@earth.li>**20100330161647] 
[Update release notes
Ian Lynagh <igloo@earth.li>**20100330161100] 
[Avoid a non-portable use of tar reported by Roman Leshchinskiy
Ian Lynagh <igloo@earth.li>**20100330145802] 
[MERGED: Add a 'setKeepCAFs' external function (#3900)
Ian Lynagh <igloo@earth.li>**20100330145303
 Simon Marlow <marlowsd@gmail.com>**20100329110036
] 
[MERGED: libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
Ian Lynagh <igloo@earth.li>**20100330145054
 Simon Marlow <marlowsd@gmail.com>**20100329135734
] 
[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
] 
[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
] 
[MERGED: tidy up the end of the all_tasks list after forking
Ian Lynagh <igloo@earth.li>**20100329163050
 Simon Marlow <marlowsd@gmail.com>**20100329132253
] 
[avoid a fork deadlock (see comments)
Simon Marlow <marlowsd@gmail.com>**20100329132329
 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
] 
[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.
] 
[Add release notes for 6.12.2
Ian Lynagh <igloo@earth.li>**20100328224811] 
[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.
] 
[Add gcc-g++ to the inplace mingw installation; fixes #3893
Ian Lynagh <igloo@earth.li>**20100326154714] 
[Add a licence file for the Windows installer to use
Ian Lynagh <igloo@earth.li>**20100326155130] 
[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
Ian Lynagh <igloo@earth.li>**20100326155917] 
[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
] 
[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.
] 
[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] 
[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.
] 
[Change the default value of rtsOptsEnabled to True
Ian Lynagh <igloo@earth.li>**20100321204207
 This means that no hooks are needed to change it by default.
] 
[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] 
[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!
] 
[Simon Marlow <marlowsd@gmail.com>**20100316143103
Ian Lynagh <igloo@earth.li>**20100318013313
  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.
 MERGED: copy_tag_nolock(): fix write ordering and add a write_barrier()
] 
[Don't install the utf8-string package
Ian Lynagh <igloo@earth.li>**20100317212709] 
[MERGE: Split part of the Task struct into a separate struct InCall
Simon Marlow <marlowsd@gmail.com>**20100316134318
 Ignore-this: cdf6a47d0f6d0c6b539735c161c21e7b
 
 We had a lock ordering deadlock between 
 
   Schedule.c:checkBlackHoles(): holds sched_mutex, takes cap->lock
   RtsAPI.c:rts_unlock(): holds cap->lock, takes sched_mutex
 
 Rather than try to fix it, I've merged wthis patch from HEAD which
 avoids it by removing sched_lock from the rts_unlock() path.
 
 Later, we'll also be removing the other acquisition of sched_mutex as
 part of some changes to the way black holes work.
 
 See [http://www.haskell.org/pipermail/glasgow-haskell-users/2010-March/018565.html]
] 
[Fix a deadlock, and possibly other problems
Simon Marlow <marlowsd@gmail.com>**20100126150037
 Ignore-this: e461e2a5495850cb0a43544004bbe994
 After a bound thread had completed, its TSO remains in the heap until
 it has been GC'd, although the associated Task is returned to the
 caller where it is freed and possibly re-used.  
 
 The bug was that GC was following the pointer to the Task and updating
 the TSO field, meanwhile the Task had already been recycled (it was
 being used by exitScheduler()). Confusion ensued, leading to a very
 occasional deadlock at shutdown, but in principle it could result in
 other crashes too.
 
 The fix is to remove the link between the TSO and the Task when the
 TSO has completed and the call to schedule() has returned; see
 comments in Schedule.c.
] 
[When saying RTS options are disabled, also say how to enable them
Ian Lynagh <igloo@earth.li>**20100315173541] 
[Add a link-time flag to en/disable the RTS options
Ian Lynagh <igloo@earth.li>**20100313154555
 If RTS options are disabled then:
 * The ghc_rts_opts C code variable is processed as normal
 * The GHCRTS environment variable is ignored and, if it is defined, a
   warning is emitted
 * The +RTS flag gives an error and terminates the program
] 
[Two things to do with -dsuppress-uniques
simonpj@microsoft.com**20100304123822
 Ignore-this: ebe626cb50230f6d2da165dea7f4a1b3
 
 a) Even with -dsuppress-uniques, don't suppress them when outputing
    code, else the assembler falls over bleating
 
 b) Do suppress uniques in names generated by TH.  It's a bit grungy
    to do this: see Note [Suppressing uniques in OccNames].  But
    it's only needed for test de-wobblification so the grunge isn't
    really important.
] 
[disable a false assertion, add a comment to explain why
Simon Marlow <marlowsd@gmail.com>**20091123110416
 Ignore-this: 30f45e1cae917259248a2253630e2871
] 
[Fix Trac #1954: newtype deriving caused 'defined but not used' error
simonpj@microsoft.com**20100309173555
 Ignore-this: d403d3c8ae585f604c139d42d43270d
 
 We were getting a bogus claim that a newtype "data constructor" was
 unused.  The fix is easy, although I had to add a field to the constructor
 TcEnv.NewTypeDerived
 
 See Note [Newtype deriving and unused constructors] in TcDeriv
] 
[Fix a rare deadlock when the IO manager thread is slow to start up
Simon Marlow <marlowsd@gmail.com>**20100309095831
 Ignore-this: dc2377d587ac681b213fc3b26831958e
 This fixes occasional failures of ffi002(threaded1) on a loaded
 machine.
] 
[Merge the CASE_INSENSITIVE_SED workaround from the HEAD
Ian Lynagh <igloo@earth.li>**20100307164703] 
[fix the Windows build some more
Simon Marlow <marlowsd@gmail.com>**20100304092119
 Ignore-this: b6f0ef572f6c8f263a02bc802c9ff328
] 
[fix Windows build
Simon Marlow <marlowsd@gmail.com>**20100302144719
 Ignore-this: fac21f11a8bd010f7e3cb242b908146f
] 
[MERGED: Tweak the tracing flags slightly, and clean up error handling and diagnostics
Ian Lynagh <igloo@earth.li>**20100304151710
 The parts of that patch which removed code related to the "steps" GC
 feature were not merged.
 
 Simon Marlow <marlowsd@gmail.com>**20100226110608
  Ignore-this: c227b6b8d65c06f299c5588c84e0eef9
 
  Tracing flags are now:
 
     -l[flags]  Log events in binary format to the file <program>.eventlog
     -v[flags]  Log events to stderr
                where [flags] can contain:
                   s    scheduler events
                   t    add time stamps (only useful with -v)
 
  and there are more helpful error messages when using flags that are
  only available in particular variants of the RTS:
 
   the flag -v requires the program to be built with -debug
   the flag -Ds requires the program to be built with -debug
   the flag -p requires the program to be built with -prof
   the flag -N requires the program to be built with -threaded
   the flag -v requires the program to be built with -debug
 
  Also, I fixed the crash reported in #3874, with +RTS -ls -v.
] 
[Add -no-auto-link-packages docs to the user guide; fixes trac #3759
Ian Lynagh <igloo@earth.li>**20100228191837] 
[Whitespace only in docs/users_guide/packages.xml
Ian Lynagh <igloo@earth.li>**20100228182945] 
[Update directory tarball
Ian Lynagh <igloo@earth.li>**20100227213147
 Includes:
 
 Wed Feb  3 07:09:57 GMT 2010  benl@cse.unsw.edu.au
   * On Solaris, _FILE_OFFSET_BITS must be defined before including sys/stat.h
 
 Fri Feb 26 01:31:44 PST 2010  Simon Marlow <marlowsd@gmail.com>
   * Fix #3878: various directory tests were wrong on Unix systems
] 
[Add a LICENSE file to libraries/bin-package-db
Ian Lynagh <igloo@earth.li>**20100227205626
 Silences a (harmless) error from tar when making bindists
] 
[Fix trac #2578
Ian Lynagh <igloo@earth.li>**20100227173951
 We define empty datatypes as not being enumerations, which means the
 empty blocks aren't generated.
] 
[update the docs to reflect changes in the tracing flags
Simon Marlow <marlowsd@gmail.com>**20100226111205
 Ignore-this: 3396e95f52abbb4a022391ca8709085b
] 
[hack to make the docs build again in a lndir build tree (see comments)
Simon Marlow <marlowsd@gmail.com>**20100225131616
 Ignore-this: 4d9a66364222b51a750d33fbce5f8f36
] 
[Fix crash when using printf format specifiers in traceEvent (#3874)
Simon Marlow <marlowsd@gmail.com>**20100226093215
 Ignore-this: d21701cec90e9f5f2d9e7148490b9ced
] 
[Fix the build with GHC < 6.12
Ian Lynagh <igloo@earth.li>**20100226223931] 
[Force encoding to UTF-8 when writing individual .conf files
Simon Marlow <marlowsd@gmail.com>**20100224152519
 Ignore-this: 8707c55c74108570cd9d60a4cb43c561
] 
[Fix the link to the ghc docs in libraries/prologue.txt
Ian Lynagh <igloo@earth.li>**20100223181644] 
[Fix more library links in the user guide
Ian Lynagh <igloo@earth.li>**20100223164551] 
[Fix the links to the base docs from the user guide
Ian Lynagh <igloo@earth.li>**20100223150522] 
[don't constant fold division that would result in negative zero (#3676)
Simon Marlow <marlowsd@gmail.com>**20100211131543
 Ignore-this: 9ccba7389ec0de33ec7f376ae39f34fb
] 
[Fix #3875: Crash in parallel GC, wrong pointer was being tested.
Ben.Lippmeier@anu.edu.au**20100222031627] 
[Check for suitable versions of make in bindists; fixes trac #3860
Ian Lynagh <igloo@earth.li>**20100220211157
 We already had a check in configure of the actual build. This patch
 adds it to the configure of the bindists too.
] 
[Fix a recompilation checking bug when a package dependency changes
Simon Marlow <marlowsd@gmail.com>**20100217133250
 Ignore-this: afea726c69145f08ea66053230a85bff
 
 We weren't forcing enough recompilationg when package dependencies
 changed, with the result that bumping a package version could lead to
 linking failures or other problems later.
 
 The problem/solutation are described on the wiki:
 
 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance#Packageversionchanges
] 
[Write the binary cache file atomically
Simon Marlow <marlowsd@gmail.com>**20100216134841
 Ignore-this: 8b1a26beb04dbfcb15786461c8f35f12
 Should fix an occasional build error of the form 
  ghc-pkg: too few bytes. Failed reading at byte position 8
] 
[disable a false assertion, with a comment to explain why
Simon Marlow <marlowsd@gmail.com>**20100216123544
 Ignore-this: 2be07076eed3c203543025e61ec69838
] 
[Fix a bug that can lead to noDuplicate# not working sometimes.
Simon Marlow <marlowsd@gmail.com>**20100216123411
 Ignore-this: 1ff0b235d915ca4d0531df6326828901
 
 The symptom is that under some rare conditions when running in
 parallel, an unsafePerformIO or unsafeInterleaveIO computation might
 be duplicated, so e.g. lazy I/O might give the wrong answer (the
 stream might appear to have duplicate parts or parts missing).
 
 I have a program that demonstrates it -N3 or more, some lazy I/O, and
 a lot of shared mutable state.  See the comment with stg_noDuplicatezh
 in PrimOps.cmm that explains the problem and the fix.  This took me
 about a day to find :-(
] 
[fix lost context switches in GHCi (fixes test 3429(ghci))
Simon Marlow <marlowsd@gmail.com>**20100215093205
 Ignore-this: 5a2cf725a83da1067a299fccc63aeb9f
] 
[don't sanity check the whole stack when switching interp<->compiled
Simon Marlow <marlowsd@gmail.com>**20091202134121
 Ignore-this: 999b44d4dd096eceda81dda65f65a2df
] 
[Don't rely on tar supporting -z; trac #3841
Ian Lynagh <igloo@earth.li>**20100214220450] 
[Fix Trac #3850
simonpj@microsoft.com**20100208163751
 Ignore-this: ed77f179dafe3f2d32971364e604e518
 
 This patch simply avoids a needless difference in behaviour from 
 6.10, and one that happens to affect HList. See Note [Stupid theta].
] 
[--lazy overrides --partial too
Simon Marlow <marlowsd@gmail.com>**20100209093927
 Ignore-this: 5d67c45af67f0122d93965ea9d0cbb12
 At least until we switch to --lazy being the default
] 
[simplification/optimisation: update tso->bound->tso when scavenging the TSO
Simon Marlow <marlowsd@gmail.com>**20091208085739
 Ignore-this: 401e2c67e42de9671191ba9d18c3fcf7
] 
[Use bash to run boot-pkgs, the default Solaris shell doesn't support the -ot test flag
benl@cse.unsw.edu.au**20100203030748] 
[Disable -Wcast-align when building the rts
benl@cse.unsw.edu.au**20100203024605
 This flag seems buggy on GCC 4.1.2, which is the only GCC version we 
 have that can bootstrap the SPARC build. We end up with lots of supurious
 warnings of the form "cast increases required alignment of target type".
 Some legitimate warnings can be fixed by adding an intermediate cast to
 (void*), but we get others in rts/sm/GCUtils.c concerning the gct var
 that look innocuous to me. We could enable this again once we deprecate
 support for registerised builds on this arch.
] 
[Stifle warning about printf format strings
benl@cse.unsw.edu.au**20100203023124] 
[Cast to (void*) to stifle warning about signedness
benl@cse.unsw.edu.au**20100203023029] 
[Add missing import sm_mutex, which fixes the -fvia-c build
benl@cse.unsw.edu.au**20100202051451] 
[Fix typo in error message (#3848)
Simon Marlow <marlowsd@gmail.com>**20100130094628
 Ignore-this: f0713035828123805b2a237e8896315b
] 
[fix Windows build (GHC.Conc.runHandlers is Unix-only)
Simon Marlow <marlowsd@gmail.com>**20100127145718
 Ignore-this: 9e683bfbc236beb7aa6fc29cddea4e46
] 
[Add some missing getStablePtr()s for CAFs that the RTS refers to
Simon Marlow <marlowsd@gmail.com>**20100122143658
 Ignore-this: 7bf37917d5052a6feb3b8ffeaad0ab4c
 
 A recent patch ("Refactor CoreArity a bit") changed the arity of
 GHC.Conc.runSparks such that it became a CAF, and the RTS was not
 explicitly retaining it, which led to a crash when the CAF got GC'd.
 While fixing this I found a couple of other closures that the RTS
 refers to which weren't getting the correct CAF treatment.
] 
[Use DLL aware runIO_closure instead of base_GHCziTopHandler_runIO_closure directly
Ben.Lippmeier@anu.edu.au**20091114061559] 
[RTS also uses runSparks_closure from base
Ben.Lippmeier@anu.edu.au**20091114061445] 
[Win32 yieldThread(): use SwitchToThread() instead of Sleep(0)
Simon Marlow <marlowsd@gmail.com>**20100127133106
 Ignore-this: cbc8c00fd4b7de7d191dae8f21f4f012
] 
[fix warnings
Simon Marlow <marlowsd@gmail.com>**20100127133040
 Ignore-this: 1038f5f85bd3f795ad10380d7b78457f
] 
[locateOneObj: don't look for dynamic libs in static mode
Simon Marlow <marlowsd@gmail.com>**20100103223637
 Ignore-this: 47e5d5eb1b27073b9afa1d804c83c7cd
 also replace picIsOn with isDynamicGhcLib, as __PIC__ is not the
 correct test for whether the GHC library is dynamically linked.
] 
[Fix bugs in STG Lint
simonpj@microsoft.com**20100104214659
 Ignore-this: c10cbfdbbb9ea44d408cd5d2237b46b1
 
 The Stg Lint failure reported in Trac #3789 were bogus.
 This patch fixes STG Lint, which must have been unused
 for ages.
] 
[Update the filepath tarball
Ian Lynagh <igloo@earth.li>**20100130234045
 Now includes
 Wed Dec 16 21:34:21 GMT 2009  Sergei Trofimovich <slyfox@community.haskell.org>
   * lower base requirement down to base-2
] 
[Fix Trac #3813: unused variables in GHCi bindings
simonpj@microsoft.com**20100120094533
 Ignore-this: 22da9bc22ecde0056f7235b3cf86ba8e
 
 In a GHCi stmt we don't want to report unused variables, 
 because we don't know the scope of the binding, eg
 
 	Prelude> x <- blah
 
 Fixing this needed a little more info about the context of the stmt,
 thus the new constructor GhciStmt in the HsStmtContext type.
] 
[Fix Trac #3833,#3834: improve error messages for deriving
simonpj@microsoft.com**20100121113653
 Ignore-this: 211f5245a5cc7ee64e902d6663ef2bb2
 
 This patch, on the 6.12 branch only, does what the patch
     "Tidy up deriving error messages"
 did for the HEAD.  That patch fixed #3702, but it also
 fixes the problem in #3833,#3834
] 
[Don't Terminate the ticker thread (#3748)
Simon Marlow <marlowsd@gmail.com>**20100127135430
 Ignore-this: c4834d02397eb3404818142964f296e4
] 
[fix warning on Windows
Simon Marlow <marlowsd@gmail.com>**20100127162954
 Ignore-this: 9aeca7b0d6bfdf758ab9b2004c998b2b
] 
[catch SIGHUP and SIGTERM and raise an exception (#3656)
Simon Marlow <marlowsd@gmail.com>**20100127140438
 Ignore-this: a6163c4563d67daab632db2ab2cc7155
] 
[define INFINITY and NAN if they don't exist (#2929)
Simon Marlow <marlowsd@gmail.com>**20100127133632
 Ignore-this: 488fa62a65c0d8a2e0b9ca4c6dd844a
] 
[tweak the totally-bogus arbitrary stack-squeezing heuristic to fix #2797
Simon Marlow <marlowsd@gmail.com>**20100128124454
 Ignore-this: 330f39d1fc17280c6264443cba35538b
 In #2797, a program that ran in constant stack space when compiled
 needed linear stack space when interpreted.  It turned out to be
 nothing more than stack-squeezing not happening.  We have a heuristic
 to avoid stack-squeezing when it would be too expensive (shuffling a
 large amount of memory to save a few words), but in some cases even
 expensive stack-squeezing is necessary to avoid linear stack usage.
 One day we should implement stack chunks, which would make this less
 expensive.
] 
[Update to new versions of hpc and old-time
Ian Lynagh <igloo@earth.li>**20100127160307] 
[comment-out an incorrect assertion
Simon Marlow <marlowsd@gmail.com>**20100126150103
 Ignore-this: d4dcb06f5c4cbfd826033cd7f7170fc6
] 
[addCoverageTicksToBinds: tolerate a non-existent .hs file (#3803)
Simon Marlow <marlowsd@gmail.com>**20100127113205
 Ignore-this: c65cd3962a1e1bba7b7a5b6ff723dc9c
] 
[Fix signal segfaults on Solaris (#3790)
Simon Marlow <marlowsd@gmail.com>**20100126155449] 
[avoid using non-standard %zd format specifier (#3804)
Simon Marlow <marlowsd@gmail.com>**20100126163322
 Ignore-this: fc5f69ec8af42138f930177f8c48d3e6
] 
[When acquiring a spinlock, yieldThread() every 1000 spins (#3553, #3758)
Simon Marlow <marlowsd@gmail.com>**20100122164911
 Ignore-this: 2dc6a7affdb5081a4dc649bcac95c31d
 
 This helps when the thread holding the lock has been descheduled,
 which is the main cause of the "last-core slowdown" problem.  With
 this patch, I get much better results with -N8 on an 8-core box,
 although some benchmarks are still worse than with 7 cores.
 
 I also added a yieldThread() into the any_work() loop of the parallel
 GC when it has no work to do. Oddly, this seems to improve performance
 on the parallel GC benchmarks even when all the cores are busy.
 Perhaps it is due to reducing contention on the memory bus.
] 
[Use "rep; nop" inside a spin-lock loop on x86/x86-64
Simon Marlow <marlowsd@gmail.com>**20090929130722
 Ignore-this: 3fed098d63dc5ea576779f17afe4b6d9
 This helps on a hyperthreaded CPU by yielding to the other thread in a
 spinlock loop.
] 
['store' should be static (#3835)
Simon Marlow <marlowsd@gmail.com>**20100122164834
 Ignore-this: 65fab4644badc58ce284c3ca5c29f88a
] 
[MERGED: Fix build with Solaris sed
Ian Lynagh <igloo@earth.li>**20100126222844
 Ian Lynagh <igloo@earth.li>**20091216204354
  Rather than trying to handle tabs with sed portably, we just use tr to
  remove them before we start.
] 
[MERGED: Fix Trac #3823, plus warning police in TcRnDriver
Ian Lynagh <igloo@earth.li>**20100122140848
 simonpj@microsoft.com**20100120094221
  Ignore-this: 8856cf1ab48733180d0cfa800b535317
 
  The immediate reason for this patch is to fix #3823. This was
  rather easy: all the work was being done but I was returning
  type_env2 rather than type_env3.
 
  An unused-veriable warning would have shown this up, so I fixed all
  the other warnings in TcRnDriver.  Doing so showed up at least two
  genuine lurking bugs.  Hurrah.
] 
[Allow GNU-standard --host, --build, --target configure options (#3637)
Simon Marlow <marlowsd@gmail.com>**20100119102819
 Ignore-this: 3fd7c644658321f97c34e20305e9b458
 Patch contributed by asuffield@suffields.me.uk
] 
[Fix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
Simon Marlow <marlowsd@gmail.com>**20100119103825
 Ignore-this: c5b7c2edb30fb0917ec08e74f26e9b9e
 In 6.14.1 we'll switch these primops to return the exact byte size,
 but for 6.12.2 we need to fix the docs.
] 
[Change how RTS libraries get installed; fixes trac #3794
Ian Lynagh <igloo@earth.li>**20100119232623] 
[Fix #3741
Ian Lynagh <igloo@earth.li>**20100119195530
 This isn't exactly a merge of
     Thu Dec 10 16:09:09 GMT 2009  Simon Marlow <marlowsd@gmail.com>
       * Fix #3741, simplifying things in the process
 as it doesn't do any of the simplification, but it does fix the actual
 bug.
] 
[Allow spaces at either end of the C import spec (#3742)
Simon Marlow <marlowsd@gmail.com>**20091210124537
 Ignore-this: 840424ea49d5e81ab8f8ce3209d5eedf
] 
[Update to a newer version of filepath; fixes trac #3762
Ian Lynagh <igloo@earth.li>**20100119133232] 
[Update some comments about how autoconf/configure works
Ian Lynagh <igloo@earth.li>**20100118145959] 
[Rolling back: Make FastString thread-safe.
Simon Marlow <marlowsd@gmail.com>**20091231164651
 Ignore-this: 8f21b256b0c86d167f8f6984d2b27a87
     
 This patch was the cause of the compile-time performance regression in
 #3796.  My guess is that it is due to the use of unsafePerformIO which
 traverses the stack up to the first update frame, and perhaps we have
 a deep stack when reading the dictionary from a .hi file.  In any
 case, since we're not relying on thread safety for FastStrings, I
 think the safest thing to do is back this out until we can investigate
 further.
] 
[Reorder ALL_RTS_LIBS
Matthias Kilian <kili@outback.escape.de>**20091115175405
 Ignore-this: 795cfd5215ec73eea729aa2b3097817e
 
 ALL_RTS_LIBS is (ab)used for linking ghc when BootingFromHc=Yes,
 which needs libHSrtsmain.a before libHSrts.a.
 
] 
[Fix Trac #3792: check for qualified names in import items
simonpj@microsoft.com**20100104215950
 Ignore-this: 12ff8d232e1ecf02b56bb8c03265bc53
] 
[MERGED: Fix #650: use a card table to mark dirty sections of mutable arrays
Ian Lynagh <igloo@earth.li>**20100109133330
 Simon Marlow <marlowsd@gmail.com>**20091217224228
  Ignore-this: 75c354682c9ad1b71b68b5bc4cedd6de
  The card table is an array of bytes, placed directly following the
  actual array data.  This means that array reading is unaffected, but
  array writing needs to read the array size from the header in order to
  find the card table.
  
  We use a bytemap rather than a bitmap, because updating the card table
  must be multi-thread safe.  Each byte refers to 128 entries of the
  array, but this is tunable by changing the constant
  MUT_ARR_PTRS_CARD_BITS in includes/Constants.h.
] 
[Copying Simon M's fix for 650 to the new codegen
dias@cs.tufts.edu**20091222222017
 Ignore-this: 4bd46e6ef23debc39c7c10aea3dfdf5c
] 
[Fixes to account for the new layout of MUT_ARR_PTRS (see #650)
Simon Marlow <marlowsd@gmail.com>**20091221115249
 Ignore-this: ca4a58628707b362dccedb74e81ef052
] 
[MERGED: Patch for shared libraries support on FreeBSD
Ian Lynagh <igloo@earth.li>**20100109125752
 Ian Lynagh <igloo@earth.li>**20100106185321
  From Maxime Henrion <mhenrion@gmail.com>
] 
[Fix running in-place gen_contents_index; trac #3716
Ian Lynagh <igloo@earth.li>**20100108133416
 It was making incorrect URLs due to a shell script error.
] 
[Add comments to darcs-all
simonpj@microsoft.com**20091221160511
 Ignore-this: 5a369a030785aec6ef0169e36757bba4
 
 The comments explain how darcs-all decides what repo to use
] 
[Partial support for Haiku (#3727)
Simon Marlow <marlowsd@gmail.com>**20091221110250
 Ignore-this: 5d4a3104c1bd50b7eae64780cb73071d
] 
[Fix spelling in comment
simonpj@microsoft.com**20091211115744
 Ignore-this: bd02fc0eb67efc7404536f1ee96d4d1f
] 
[Fix Trac #3776
simonpj@microsoft.com**20091221155509
 Ignore-this: 69607bdc7208775a305a5f39a575f0e2
 
 An easy fix.  See Note [Usage for sub-bndrs] in RnEnv.
] 
[Fix #3751, also fix some lexical error SrcLocs
Simon Marlow <marlowsd@gmail.com>**20091217132658
 Ignore-this: 63e11a7a64bb0c98e793e4cc883f051d
] 
[Get a newer hpc tarball
Ian Lynagh <igloo@earth.li>**20091219211719
 Contains some testsuite improvements
] 
[Fix the FloatOut patch for the 6.12 branch
Ian Lynagh <igloo@earth.li>**20091218173357] 
[MERGED: Fix a nasty (and long-standing) FloatOut performance bug
Ian Lynagh <igloo@earth.li>**20091218163448
 Mon Dec  7 08:32:46 GMT 2009  simonpj@microsoft.
   Ignore-this: a64b98992fa4ced434d1edf0b89842ec
   
   The effect was that, in deeply-nested applications, FloatOut would
   take quadratic time.  A good example was compiling 
       programs/barton-mangler-bug/Expected.hs
   in which FloatOut had a visible pause of a couple of seconds!
   Profiling showed that 40% of the entire compile time was being
   consumbed by the single function partitionByMajorLevel.
   
   The bug was that the floating bindings (type FloatBinds) was kept
   as a list, which was partitioned at each binding site.  In programs
   with deeply nested lists, such as
          e1 : e2 : e3 : .... : e5000 : []
   this led to quadratic behaviour.
   
   The solution is to use a proper finite-map representation;
   see the new definition of FloatBinds near the bottom of FloatOut.
] 
[Fix a braino in a comment
Ian Lynagh <igloo@earth.li>**20091218213541] 
[Fix another sed problem on Solaris
Ian Lynagh <igloo@earth.li>**20091217000421] 
[Add lengthBag to Bag (using in forthcoming patch)
simonpj@microsoft.com**20091204155055
 Ignore-this: 5af0f45d6b51bc77e54c5cb0e2b1e607
] 
[Add splitUFM to UniqFM (used in a forthcoming patch)
simonpj@microsoft.com**20091204160820
 Ignore-this: 332aa029f25ec3f22e4f195ecd44b40b
 
 splitUFM :: Uniquable key => UniqFM elt -> key -> (UniqFM elt, Maybe elt, UniqFM elt)
    -- Splits a UFM into things less than, equal to, and greater than the key
] 
[Print the prog name in errorBelch() even if prog_argv is not set yet
Simon Marlow <marlowsd@gmail.com>**20091119135230
 Ignore-this: ec42e7a4f344ebc34befddfc3d74a946
 This means we get the prog name in error messages from the flag parser
] 
[define HS_WORD_MAX
Simon Marlow <marlowsd@gmail.com>**20091119140143
 Ignore-this: ed27e7c7ac0bd03cddcd745ae7053a74
] 
[Check whether the main function is actually exported (#414)
Simon Marlow <marlowsd@gmail.com>**20091130112327
 Ignore-this: 1afaa18d8c0c9e1d029531ac9d4865bb
] 
[#include <sys/select.h> if we have it (#3760)
Simon Marlow <marlowsd@gmail.com>**20091216095501
 Ignore-this: 7c00991a67ae6715e16c6458bf0b78af
] 
[fix up libm detection and use (#3724)
Simon Marlow <marlowsd@gmail.com>**20091216113652
 Ignore-this: 6bbdd7302b262ac3b8ddc5c852dc538
] 
[configure.ac: fix libm checks (Trac #3730)
Sergei Trofimovich <slyfox@inbox.ru>**20091204214012
 Ignore-this: f3372535a68f3833247f679b023745c8
 
 libbfd pulled libm as dependency and broke LIBM= detection.
 
 Patch moves libm in library tests as early as possible.
 Thanks to asuffield for suggesting such a simple fix.
 Thanks to Roie Kerstein and Renato Gallo for finding
 and tracking down the issue.
] 
[Barf on unhandled Mach-O relocations in the ghci linker
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20091111020712
 Ignore-this: 67cd1323420bf7139a7ee293b43e7be9
 
 - It might be worthwhile to MERGE this to 6.12, BUT somebody should validate
   it on PPC/Mac OS X first.
] 
[Check upper/lower bounds on various RTS flags (#3633)
Simon Marlow <marlowsd@gmail.com>**20091119142422
 Ignore-this: 8cbbb3f0f2c46711967491d5c028a410
 
 Also, make K mean 1024 rather than 1000, in RTS flags (similarly for M
 and G).  The main reason I want to change it is that otherwise this
 might be confusing:
   
 exp3_8: error in RTS option -H4k: size outside allowed range (4096 - 18446744073709551615)
 
 And I think the original reason for using 1000 instead of 1024,
 worries about direct-mapped caches, is not an issue in this context
 (even if you can find a direct-mapped cache these days).
] 
[TAG GHC 6.12.1 release
Ian Lynagh <igloo@earth.li>**20091215124607] 
[Set RELEASE back to NO
Ian Lynagh <igloo@earth.li>**20091211141350] 
[Put README and INSTALL into bindists
Ian Lynagh <igloo@earth.li>**20091209174305
 Also tidied up the way configure.ac gets into bindists
] 
[Fix the stage1 version number munging
Ian Lynagh <igloo@earth.li>**20091209151715
 It was munging 6.12.1 into 62
] 
[add a missing unlockTSO()
Simon Marlow <marlowsd@gmail.com>**20091209124113
 Ignore-this: 9ff0aedcb6d62e5b4bd2fab30bfce105
] 
[Correct the version number
Ian Lynagh <igloo@earth.li>**20091209124704] 
[Add an entry about deriving instances for GADTs to the release notes
Ian Lynagh <igloo@earth.li>**20091208114511] 
[add locking in mkWeakForeignEnv#
Simon Marlow <marlowsd@gmail.com>**20091208101229
 Ignore-this: 3902631687fc252c0e6794d58641371b
] 
[need locking around use of weak_ptr_list in mkWeak#
Simon Marlow <marlowsd@gmail.com>**20091207145213
 Ignore-this: 9c7d506c30652de4dd5c47d1989022c1
] 
[Set RELEASE to YES
Ian Lynagh <igloo@earth.li>**20091207160059] 
[threadStackOverflow: check whether stack squeezing released some stack (#3677)
Simon Marlow <marlowsd@gmail.com>**20091125125917
 Ignore-this: d35089eb93f5b367b7d1c445bda79232
 
 In a stack overflow situation, stack squeezing may reduce the stack
 size, but we don't know whether it has been reduced enough for the
 stack check to succeed if we try again.  Fortunately stack squeezing
 is idempotent, so all we need to do is record whether *any* squeezing
 happened.  If we are at the stack's absolute -K limit, and stack
 squeezing happened, then we try running the thread again.
 
 We also want to avoid enlarging the stack if squeezing has already
 released some of it.  However, we don't want to get into a
 pathalogical situation where a thread has a nearly full stack (near
 its current limit, but not near the absolute -K limit), keeps
 allocating a little bit, squeezing removes a little bit, and then it
 runs again.  So to avoid this, if we squeezed *and* there is still
 less than BLOCK_SIZE_W words free, then we enlarge the stack anyway.
] 
[Fix Trac #3102: pre-matching polytypes
simonpj@microsoft.com**20091130174441
 Ignore-this: 3e3fa97e0de28b005a1aabe9e5542b32
 
 When *pre-matching* two types
      forall a. C1 => t1  ~  forall a. C2 => t2
 we were matching t1~t2, but totally ignoring C1,C2
 That's utterly wrong when pre-matching
        (?p::Int) => String  ~  a
 because we emerge with a:=String!
 
 All this is part of the impredicative story, which is about
 to go away, but still.
 
 Worth merging this to 6.12
] 
[Fix Trac #3100: reifyType
simonpj@microsoft.com**20091130175204
 Ignore-this: ad1578c3d2e3da6128cd5052c8b64dc
 
 A type without any leading foralls may still have constraints
    eg:  ?x::Int => Int -> Int
 
 But reifyType was failing in this case.
 
 Merge to 6.12.
] 
[Add some missing exports back for GHC package users; fixes trac #3715
Ian Lynagh <igloo@earth.li>**20091205153532] 
[Add an entry fo the ghci command :run to the user guide
Ian Lynagh <igloo@earth.li>**20091201173339] 
[Add release highlights, from HCAR report, to ANNOUNCE and release notes
Ian Lynagh <igloo@earth.li>**20091201172408] 
[Tweak release notes
Ian Lynagh <igloo@earth.li>**20091201171603] 
[Fix typo in docs
Ian Lynagh <igloo@earth.li>**20091201170550] 
[Fix PS file generation
Simon Marlow <marlowsd@gmail.com>**20091201154254
 Ignore-this: 7b7122208e845b029a8b7215149fd203
 (the image doesn't work, but at least db2latex doesn't fall over)
] 
[Fix Commentary link in the HACKING file; trac #3706
Ian Lynagh <igloo@earth.li>**20091201150149] 
[document 'recache' command in the help output (#3684)
Simon Marlow <marlowsd@gmail.com>**20091130122040
 Ignore-this: 95a51f76e66055af27cdfc7b5ad7deb3
] 
[Fix the prof_scc.png image in the profiling section (#3694)
Simon Marlow <marlowsd@gmail.com>**20091130132703
 Ignore-this: 9774bad70187274e3dd283d66703004
] 
[Delay expansion of some makefile variables until they are available
Ian Lynagh <igloo@earth.li>**20091201133609] 
[Call $(SED) rather than sed
Ian Lynagh <igloo@earth.li>**20091201131031] 
[Look for sed as gsed first
Ian Lynagh <igloo@earth.li>**20091201130741
 Solaris's sed apparently doesn't understand [:space:]
] 
[Avoid running empty for loops; fixes trac #3683
Ian Lynagh <igloo@earth.li>**20091201125927
 Solaris's sh gives
     /bin/sh: syntax error at line 1: `;' unexpected
 when faced with something like
     for x in ; do ...; done
 Patch from Christian Maeder.
] 
[Use UTF-8 explicitly for InstalledPackageInfo
Simon Marlow <marlowsd@gmail.com>**20091125141730
 Ignore-this: 45be1506dd5c3339fb229a44aa958235
 So ghc-pkg register/update takes input in UTF-8, and ghc-pkg dump
 outputs in UTF-8.  Textual package config files in the package DB are
 assumed to be in UTF-8.
] 
[Install perl on Windows
Ian Lynagh <igloo@earth.li>**20091120223830] 
[Stop creating $(INPLACE_LIB)/perl.exe
Ian Lynagh <igloo@earth.li>**20091020215627
 We now use an msys/mingw perl tarball
] 
[Use the ghc-perl tarball on Windows, instead of the msys one
Ian Lynagh <igloo@earth.li>**20091120153953] 
[Add a rule to allow us to sdist libraries easily
Ian Lynagh <igloo@earth.li>**20091119160527] 
[Remove -fasm from mk/validate-settings.mk
Ian Lynagh <igloo@earth.li>**20091120125656
 Makes it easier to do unregisterised validate runs
] 
[Fix some dependencies in bindists
Ian Lynagh <igloo@earth.li>**20091120125342
 We can't depend on sources in a bindist, because we don't have the sources.
] 
[Update the containers library tarball
Ian Lynagh <igloo@earth.li>**20091119155218
 It now includes:
 Wed Oct 28 03:55:32 PDT 2009  Ross Paterson <ross@soi.city.ac.uk>
   * doc bugfix: correct description of index argument
] 
[Update the directory library tarball
Ian Lynagh <igloo@earth.li>**20091119155042
 This now includes the fix:
 Thu Nov 19 04:29:51 PST 2009  Ian Lynagh <igloo@earth.li>
   * Include sys/types.h in HsDirectory.h; fixes trac #3653
] 
[Add gnutar to the list of names we use when looking for GNU tar
Ian Lynagh <igloo@earth.li>**20091119144927] 
[Add support for the man page to the new build system
Ian Lynagh <igloo@earth.li>**20091119140811] 
[Add the msysCORE*.tar.gz tarball to the list of tarballs we unpack
Ian Lynagh <igloo@earth.li>**20091118195523] 
[Add an install-docs target that emits a helpful diagnostic (#3662)
Simon Marlow <marlowsd@gmail.com>**20091116120137
 Ignore-this: 1c5414730614b205c67919f3ea363c00
] 
[Merge patches
Ian Lynagh <igloo@earth.li>**20091118184150
 
 Mon Nov 16 11:56:30 GMT 2009  Simon Marlow <marlowsd@gmail.com>
   * fix install_docs dependencies, and add a missing $(INSTALL_DIR)
 
 Tue Nov 17 15:11:23 GMT 2009  Simon Marlow <marlowsd@gmail.com>
   * exclude some haddock-related rules during BINDIST
 
] 
[include the GHC package docs in a bindist
Simon Marlow <marlowsd@gmail.com>**20091117151133
 Ignore-this: c4a10221b1a2a4778494018bca7d2169
] 
[MERGED: Tweak to the directory-building rule
Ian Lynagh <igloo@earth.li>**20091118182145
 Fri Nov 13 12:57:19 GMT 2009  Simon Marlow <marlowsd@gmail.com>
   So we don't try to recreate directories just because they are older
   than mkdirhier, since mkdirhier won't touch them.
] 
[Put the libffi files to be installed into a dist directory
Ian Lynagh <igloo@earth.li>**20091118150508
 This meakes it easier to correctly clean libffi
] 
[Add a directory creation rule in the 6.12 branch
Ian Lynagh <igloo@earth.li>**20091118140621] 
[Add ghc-tarballs to the list of directories that go into an sdist
Ian Lynagh <igloo@earth.li>**20091118131047] 
[Remove the old libffi tarball
Ian Lynagh <igloo@earth.li>**20091118124004
 We now use the tarball in the ghc-tarballs repo
] 
[Fix gen_contents_index on MSYS
Ian Lynagh <igloo@earth.li>**20091117223556
 On MSYS
     sed 's/.*[ \t]//'
 wasn't matching
     version:<tab>1.0
 so I've switched to
     's/.*[[:space:]]//'
 which works on Linux, cygwin and MSYS.
] 
[Windows-specific fix for #1185 patch
Simon Marlow <marlowsd@gmail.com>**20091112125853
 Ignore-this: 911e48472b9d21624a20caeb28d53a63
] 
[Second attempt to fix #1185 (forkProcess and -threaded)
Simon Marlow <marlowsd@gmail.com>**20091111142822
 Ignore-this: d33740204660b3e6dd6d39e8f5f7b499
 
 Patch 1/2: second part of the patch is to libraries/base
 
 This time without dynamic linker hacks, instead I've expanded the
 existing rts/Globals.c to cache more CAFs, specifically those in
 GHC.Conc.  We were already using this trick for signal handlers, I
 should have realised before.
 
 It's still quite unsavoury, but we can do away with rts/Globals.c in
 the future when we switch to a dynamically-linked GHCi.
] 
[Add gen_contents_index and prologue.txt to bindists
Ian Lynagh <igloo@earth.li>**20091111192821] 
[Use relative paths for haddockHTMLs in the inplace package.conf
Ian Lynagh <igloo@earth.li>**20091110223632
 This means that the docs get built with the correct relative paths.
 When installing, the absolute path will still be used.
] 
[Put docs into versioned directory names; fixes trac #3532
Ian Lynagh <igloo@earth.li>**20091108210701
 You can now have multiple versions of a package installed, and
 gen_contents_index will do the right thing.
] 
[Fix formatting of module deprecation/warning messages
Duncan Coutts <duncan@well-typed.com>**20091115155617
 Ignore-this: a41444bdda003aee4412eb56a0e7d052
 It was accidentally using list syntax. Fixes #3303 again.
] 
[HC bootstrapping fix: add -I$(GHC_INCLUDE_DIR) to SRC_CC_OPTS
Simon Marlow <marlowsd@gmail.com>**20091112094514
 Ignore-this: 8d3f6aa515ab83abec08227e7d4c464a
 And add a comment explaining why these options are here
] 
[Support for DragonFly BSD
Simon Marlow <marlowsd@gmail.com>**20091111111821
 Ignore-this: 37f39eff3af0ce8f42cae581b1c2a17e
 Patches from Goetz Isenmann <info@goetz-isenmann.de>, slightly updated
 for HEAD (the method for configuring platforms in configure.ac has
 changed).
] 
[Don't try to rebuild compiler/primop-*.hs-incl when BootingFromHc
Simon Marlow <marlowsd@gmail.com>**20091109135159
 Ignore-this: 8901b86a5b7551b63c94d278109b3765
 Patch submitted by Matthias Kilian <kili@outback.escape.de>
] 
[The RTS needs hs-suffix-rules-srcdir for BootingFromHc
Simon Marlow <marlowsd@gmail.com>**20091111111225
 Ignore-this: 3b121df345191fb4328445c8be0c57e6
 Patch submitted by Matthias Kilian <kili@outback.escape.de>,
 re-recorded against HEAD by me, with a comment added.
] 
[Fix bug when the combined package DB has duplicate package IDs
Simon Marlow <marlowsd@gmail.com>**20091112135120
 Ignore-this: ed917f06ffbf873ca80a4cf92f270728
 Someone on IRC reported that they were encountering a strange missing
 module error from GHC, and it turned out that they had mtl-1.1.0.2
 installed in both the global and local DB, with the same
 InstalledPackageId.  The two packages should be interchangeable, but
 we were forgetting to eliminate duplicates in part of the
 package-processing phase in GHC.
 
 Really I should switch this code over to use the new PackageIndex data
 type in Cabal, which ought to make things simpler.
] 
[Apply a workaround for #3586
Simon Marlow <marlowsd@gmail.com>**20091112133807
 Ignore-this: ddfe66109a9b08a4bc6348b4d164ebbb
 This is a pretty severe performance bug in newArray and newArray_,
 fixed in HEAD, but needs a workaround in STABLE.  The workaround from
 the ticket didn't work, but a slight modification of it did: I had to
 disable the INLINE pragma on the newArray default method.
] 
[Tell ghc-cabal what strip program to use
Ian Lynagh <igloo@earth.li>**20091108120204] 
[Change a use of xargs to "$(XARGS)" $(XARGS_OPTS)
Ian Lynagh <igloo@earth.li>**20091107224328] 
[Split XARGS into XARGS and XARGS_OPTS
Ian Lynagh <igloo@earth.li>**20091107223715] 
[Define CONF_CC_OPTS/CONF_LD_OPTS in bindists
Ian Lynagh <igloo@earth.li>**20091107211747] 
[Tweak how shell wrappers are built
Ian Lynagh <igloo@earth.li>**20091107205042] 
[Remove unused distrib/Makefile-bin-vars.in file
Ian Lynagh <igloo@earth.li>**20091107211817] 
[ghc-stage2 is now renamed to ghc when it is installed
Ian Lynagh <igloo@earth.li>**20091107183614
 This means that we get the right program name in error messages etc.
] 
[Tweak the shell wrapper scripts
Ian Lynagh <igloo@earth.li>**20091107180502
 We now separate the executable path from the executable name.
 This will allow us to change one but not the other easily.
] 
[mkdirhier now just calls mkdir -p
Ian Lynagh <igloo@earth.li>**20091107120847
 The old shell code apparently didn't work properly with /bin/sh=dash
] 
[Update layout of error message slightly
simonpj@microsoft.com**20091105120443
 Ignore-this: 4761c9c79a6e200ab58f4d190eb4490e
] 
[Fix #3642: m GHC builds using the Haskell Platform
Simon Marlow <marlowsd@gmail.com>**20091105141310
 Ignore-this: a6b08420a01cfe8ac39c28898fa3c9b8
] 
[Fix some bugs to do with tools in paths containing spaces
Simon Marlow <marlowsd@gmail.com>**20091104164343
 Ignore-this: d3f00d3b1b14d59feccbb4585301c17a
 Not everything is fixed yet; see #3642
] 
[Always include libraries/dph/ghc.mk in top-level ghc.mk
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091104011908
 Ignore-this: bb519641dd797cc674da8dcd1ea9dcec
] 
[Accept any non-space characters in a header file (#3624)
Simon Marlow <marlowsd@gmail.com>**20091106102319
 Ignore-this: 1fc9156c2bcd767d6f231a56440cbeb4
 The FFI spec doesn't say exactly which characters may occur in a
 header file, so to be on the safe side we'll accept anything that
 isn't a space.
] 
[Fix the build
Ian Lynagh <igloo@earth.li>**20091106204927] 
[Refactor package installation
Ian Lynagh <igloo@earth.li>**20091103133322
 There is now less makefile code duplication.
 Also, stage2 packages are registered after GHC, which is important as
 they might depend on the ghc package (as dph now does).
] 
[Make installation on *nix work for paths with spaces in their name
Ian Lynagh <igloo@earth.li>**20091105162300
 This means we can remove some conditional stuff from the Makefiles,
 and means the testsuite doesn't have to work out whether or not it's
 on Windows.
] 
[add '-' to the chars allowed in C header file names
Simon Marlow <marlowsd@gmail.com>**20091104144032
 Ignore-this: 8832e49d56a75fae9f1651c07954fb0c
] 
[Fix non-portable regexp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091104011830
 Ignore-this: aa396bdd0ca904ec59969a2e8ba24d64
] 
[Fix Trac #3640, plus associated refactoring
simonpj@microsoft.com**20091105165525
 Ignore-this: cf1f4ea1e8b75b4909ab395907de9eb3
 
 In fixing this bug (to do with record puns), I had the usual rush of
 blood to the head, and I did quite a bit of refactoring in the way
 that duplicate/shadowed names are reported.
 
 I think the result is shorter as well as clearer.
 
 In one place I found it convenient for the renamer to use the ErrCtxt
 carried in the monad.  (The renamer used not to have such a context,
 but years ago the typechecker and renamer monads became one, so now it
 does.)   So now it's availble if you want it in future.
] 
[#3604: treat TH with -dynamic in the same way as -prof
Simon Marlow <marlowsd@gmail.com>**20091104163039
 Ignore-this: 2122ef7f452f4c3627fea8fe9d11a7f2
 That is, you have to build the library/program without -dynamic first,
 to get plain object files, and then build it again with -dynamic.
 
 I still need to check whether any changes to Cabal are required to
 make this work.
] 
[Update docs on ticky-ticky profiling
Simon Marlow <marlowsd@gmail.com>**20091105101503
 Ignore-this: 7cdcd80f83a1fa557b1b852f995b2d8a
] 
[Finish #3439: -ticky implies -debug at link time; the ticky "way" has gone
Simon Marlow <marlowsd@gmail.com>**20091104145507
 Ignore-this: 9ca68e63bbc34c8f6f216efe27e259eb
 
 To get ticky profiling you still have to compile with -ticky (for
 those modules that you want to profile), but you can link with either
 -debug or -ticky.
] 
[Allow -ticky and -prof together
simonpj@microsoft.com**20091020155201
 Ignore-this: cddba709acd29968e0517a398e99b49c
 
 The two used to be incompatible, but they aren't any longer.
 
 In fact, -ticky should not be a 'way' any more, and doing that
 is on Simon M's todo list, but this patch takes us a little
 step closer.
 
 I'm not sure this is worth merging to the 6.12 branch.
] 
[GhciMonad.resume should restore the program's argv and progname
Simon Marlow <marlowsd@gmail.com>**20091021125240
 Ignore-this: 2ced5594fe32c2e3bc39dcbdabf04551
 I discovered that single-stepping over getArgs gave the wrong answer
 sometimes, because we were forgetting to set the program's argv and
 progname when resuming at a breakpoint.
 
 Test is ghci.debugger/scripts/getargs.script.
] 
[Minor change to captalisation in error message only
simonpj@microsoft.com**20091102172236
 Ignore-this: 65cb215b313658ccdff6304360b33e62
] 
[Improve error message for malformed LANGUAGE pragma
simonpj@microsoft.com**20091030180114
 Ignore-this: 984eefd9c0978b837f79d0f1a72564b9
] 
[Improve documentation of 'rec' in do-notation
simonpj@microsoft.com**20091102172217
 Ignore-this: ab639f7fc2ec658edf2371797d669f36
 
 Merge to 6.12 along with the main DoRec patch
] 
[Document the fact that impredicative polymorphism is deprecated
simonpj@microsoft.com**20091103133344
 Ignore-this: a91b61dd99783d7ca9f823009667c23f
 
 Merge to 6.12
] 
[Drop unused import
simonpj@microsoft.com**20091028175902
 Ignore-this: e473d30a9844ae0a6d124c9352e6be4
] 
[Deprecate the ImpredicativeTypes feature
simonpj@microsoft.com**20091030095929
 Ignore-this: b5dadc6be7f0c7bcbbf3691079f41dfb
 
 GHC has had an experimental implementation of impredicative
 polymorphism for a year or two now (flag -XImpredicativeTypes). 
 But
 
   a) The implementation is ridiculously complicated, and the complexity
      is pervasive (in the type checker) rather than localized.
      I'm very unhappy about this, especially as we add more stuff to
      the type checker for type families.
 
   b) The specification (type system) is well-defined [1], but is also pretty
      complicated, and it's just too hard to predict which programs will
      typecheck and which will not.
 
 So it's time for a re-think.  I propose to deprecate it in 6.12, and
 remove it altogether in 6.14.  We may by then have something else to
 put in its place.  (There is no lack of candidates [2,3,4]!)
 
 [1] http://research.microsoft.com/en-us/um/people/simonpj/papers/boxy/
 [2] http://research.microsoft.com/en-us/um/people/crusso/qml/
 [3] http://research.microsoft.com/en-us/um/people/daan/pubs.html
 [4] http://gallium.inria.fr/~remy/mlf/
] 
[Fix formatting and wording in documentation of DoRec
simonpj@microsoft.com**20091029114726
 Ignore-this: ce528f2e73f38c244be4a38d83f52214
] 
[Add 'rec' to stmts in a 'do', and deprecate 'mdo'
simonpj@microsoft.com**20091028133554
 Ignore-this: 7b77848c6283828869783ed61510ee1c
 
 The change is this (see Trac #2798).  Instead of writing
 
   mdo { a <- getChar
       ; b <- f c
       ; c <- g b
       ; putChar c
       ; return b }
 
 you would write
 
   do { a <- getChar
      ; rec { b <- f c
            ; c <- g b }
      ; putChar c
      ; return b }
 
 That is, 
   * 'mdo' is eliminated 
   * 'rec' is added, which groups a bunch of statements
     into a single recursive statement
 
 This 'rec' thing is already present for the arrow notation, so it  
 makes the two more uniform.  Moreover, 'rec' lets you say more
 precisely where the recursion is (if you want to), whereas 'mdo' just
 says "there's recursion here somewhere".  Lastly, all this works with
 rebindable syntax (which mdo does not).
 
 Currently 'mdo' is enabled by -XRecursiveDo.  So we now deprecate this
 flag, with another flag -XDoRec to enable the 'rec' keyword.
 
 Implementation notes:
   * Some changes in Lexer.x
   * All uses of RecStmt now use record syntax
 
 I'm still not really happy with the "rec_ids" and "later_ids" in the
 RecStmt constructor, but I don't dare change it without consulting Ross
 about the consequences for arrow syntax.
] 
[Add flag -XExplicitForAll and document it
simonpj@microsoft.com**20091007155251
 Ignore-this: b61396beab4f6b47ce388c3aacf357ee
 
 This implements the Haskell Prime proposal
   http://hackage.haskell.org/trac/haskell-prime/wiki/ExplicitForall
 
 Flag is -XExplicitForAll
 
 Implied by Opt_RankNTypes, Opt_Rank2Types, Opt_ScopedTypeVariables, 
            Opt_LiberalTypeSynonyms, Opt_ExistentialQuantification, 
            Opt_PolymorphicComponents 
 
 
] 
[Define BootingFromHc in bindists; fixes #3617
Ian Lynagh <igloo@earth.li>**20091031084426
 This variable is tested when deciding whether or not to add debug to
 the list of RTS ways, so it needs to be correctly defined.
] 
[Add ghc-cabal dependencies; fixes #3494
Ian Lynagh <igloo@earth.li>**20091030211928] 
[Fix Trac #3626: TH should reject unboxed tuples
simonpj@microsoft.com**20091030091928
 Ignore-this: 409bacbcfb37b4d3dc75ecec71bcf484
 
 This was just a missing test in DsMeta
] 
[Fix a dynamic linker bug that killed ghci on Snow Leopard
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20091029124159
 Ignore-this: 67461b0969e3ff1b0d0c4f666ce473bc
] 
[Tidy up the parsing of comprehensions and improve locations
simonpj@microsoft.com**20091028133653
 Ignore-this: e9da5f8a60eaa23bc1c037f9c075a18f
 
 While I was dealing with 'rec' statements I did this tidy-up
] 
[Fix Trac #3591: very tricky specialiser bug
simonpj@microsoft.com**20091023161551
 Ignore-this: 705bf8d79fdf89b0a98f278de4303a8d
   
 There was a subtle bug in the interation of specialisation and floating,
 described in Note [Specialisation of dictionary functions]. 
   
 The net effect was to create a loop where none existed before; plain wrong.
   
 In fixing it, I did quite a bit of house-cleaning in the specialiser, and
 added a lot more comments.  It's tricky, alas.
] 
[Improvements to the gcc wrapper
Ian Lynagh <igloo@earth.li>**20091029115831
 Add some comments and better error reporting
] 
[Don't "set -e" in configure.ac
Ian Lynagh <igloo@earth.li>**20091029010031
 On some systems (bash 4?) configure fails because of it when
 "gcc -V" fails.
] 
[Add some &&s to configure
Ian Lynagh <igloo@earth.li>**20091029010125
 so if the "cd" fails we don't charge on regardless.
] 
[Wrap gcc on Windows, to provide the -B flags
Ian Lynagh <igloo@earth.li>**20091027202503] 
[Add restrictVarEnv :: VarEnv a -> VarSet -> VarEnv a
simonpj@microsoft.com**20091023161735
 Ignore-this: c32b91755afd1cce99817a251702ef08
 
 I needed it, and then didn't need it, so it's not currently
 called, but its generally useful kind of thing.
] 
[Use braces rather than angle-brackets in debug-printing for Bags
simonpj@microsoft.com**20091023161631
 Ignore-this: 687f858714593153362f0227f59b92f7
] 
[Fix Trac #3590: a nasty type-checker bug in left/right sections
simonpj@microsoft.com**20091020155540
 Ignore-this: ae831f2a7fe8416e2c549df7616f7139
 
 The bug related to the fact that boxyUnify (now) returns a coercion,
 which was simply being ignored.  (TcExpr is clearly not warning-free
 wrt the unused-monadic-bind thing!)
 
 Anyway, it's fine now.  I added a test case to the test suite.
 
 MERGE to 6.12 please.
] 
[Escape some $s in makefiles for consistency
Ian Lynagh <igloo@earth.li>**20091025132625] 
[Remove readline license info from OS X package
Ian Lynagh <igloo@earth.li>**20091024202858
 We no longer ship readline
] 
[Fix a buglet in exprIsConApp_maybe
Ian Lynagh <igloo@earth.li>**20091024114616
 Patch from Simon Peyton Jones. He write:
 
 exprIsConApp_maybe was returning 'Just' even for an unsaturated constructor
 application.  This bit me in an experiment; although it doesn't seem to
 have been causing problems elsewhere.
 
 Committing this change to the 6.12 branch only; the HEAD is different
 because of the upcoming INLINE patch
] 
[Document that lazy I/O now throws exceptions
Simon Marlow <marlowsd@gmail.com>**20091012154213
 Ignore-this: dbb7557e351694a988761cc51f4f8c8e
] 
[findSpark: exit if there's a returning foreign call
Simon Marlow <marlowsd@gmail.com>**20091009152920
 Ignore-this: cd018bff306760486037da5a28def34d
] 
[Tweak to the way per-source-file options are specified
Simon Marlow <marlowsd@gmail.com>**20091015122225
 Ignore-this: 851228ecab11c0c481f3eaca59a582ce
] 
[Fix cross-reference
simonpj@microsoft.com**20091020074213
 Ignore-this: 68c6a73d8298c3f4f74a44123b5ab39b
] 
[Add some manual dependencies, and -fforce-recomp for Constants and PrimOps
Simon Marlow <marlowsd@gmail.com>**20091015115120
 Ignore-this: fd82e37b27db6d4196a497674a20e92f
 GHC's recompilation checker doesn't take into account #included files,
 which is really a bug.  We work around it here by adding dependencies
 and using -fforce-recomp in a couple of places.
] 
[Fix several missing dependencies in ifFreeNames
simonpj@microsoft.com**20091015120159
 Ignore-this: bab527d292e384a9bfd3fce3a8325e8d
 
 These missing dependencies led to:
   ghc-stage1: panic! (the 'impossible' happened)
   (GHC version 6.13 for x86_64-unknown-linux):
 	urk! lookup local fingerprint ghc-6.13:CgBindery.CgBindings{tc r4Z}
 
 Simon and I don't quite understand why I've encountered these while
 no one else has, but they are certainly bugs, and this patch certainly 
 fixes them.
 
 Merge to 6.12 branch
 
] 
[Correct comment
simonpj@microsoft.com**20091015115546
 Ignore-this: e7da9f6067071c040bead3ce775eb33f
] 
[Fix FFI declaration checks
Simon Marlow <marlowsd@gmail.com>**20091014140128
 Ignore-this: 9e91f3bf8fddf7a59f9eacbfa96bb763
 For GHCi, foreign labels should be allowed, but foreign export should
 be disallowed; both were previously wrong.
] 
[Fixes for cross-compiling to a different word size
Simon Marlow <marlowsd@gmail.com>**20091014130612
 Ignore-this: f5f1769ae247a3eb735662ea90926f96
 This patch eliminates a couple of places where we were assuming that
 the host word size is the same as the target word size.
 
 Also a little refactoring: Constants now exports the types TargetInt
 and TargetWord corresponding to the Int/Word type on the target
 platform, and I moved the definitions of tARGET_INT_MAX and friends
 from Literal to Constants.
 
 Thanks to Barney Stratford <barney_stratford@fastmail.fm> for helping
 track down the problem and fix it.  We now know that GHC can
 successfully cross-compile from 32-bit to 64-bit.
] 
[Fix install when various DOC variables are empty
Ian Lynagh <igloo@earth.li>**20091013101530] 
[Fix install when INSTALL_LIBEXEC_SCRIPTS = ""
Ian Lynagh <igloo@earth.li>**20091013095243] 
[Fix install when INSTALL_LIBEXECS = ""
Ian Lynagh <igloo@earth.li>**20091013093917
 This is the case on Windows (as we have no shell wrappers), and mingw's
 shell doesn't like an empty list of things in a "for" command.
] 
[Fix Trac #3600: Template Haskell bug in Convert
simonpj@microsoft.com**20091020072616
 Ignore-this: 92992568a8380d7664318c506d78d09d
 
 This bug was introduced when I added an optimisation, described in
 Note [Converting strings] in Convert.lhs.  It was treating *all*
 empty lists as strings, not just string-typed ones!
 
 The fix is easy.  Pls MERGE to stable branch.
 
] 
[Fix Trac #3263: don't print Hpc tick stuff unless -dppr-debug is on
simonpj@microsoft.com**20091015114437
 Ignore-this: 404c58c21b023adc85b7d8e2d2c884f7
 
 In general, when pretty-printing HsSyn, we omit the extra info added by GHC
 (type appplications and abstractions, etc) when printing stuff for the user.
 But we weren't applying that guideline to the HsTick stuff for Hpc.  This
 patch adds the necessary tests.
 
] 
[Fix #3579: avoid clashing with names of implicit bindings
Simon Marlow <marlowsd@gmail.com>**20091014095153
 Ignore-this: c38978208ca629d63c311a86e6334ff9
] 
[micro-opt: replace stmGetEnclosingTRec() with a field access
Simon Marlow <marlowsd@gmail.com>**20091014131727
 Ignore-this: 5ca954541072cdd9e91656400db81d52
 While fixing #3578 I noticed that this function was just a field
 access to StgTRecHeader, so I inlined it manually.
] 
[Fix #3578: return a dummy result when an STM transaction is aborted
Simon Marlow <marlowsd@gmail.com>**20091014131619
 Ignore-this: f8c1d879a38a9eb7699cefb8d458770d
 (see comment for details)
] 
[Do "set -e" in configure.ac
Ian Lynagh <igloo@earth.li>**20091023134122
 So if something configure does fails, so does the whole configur script
] 
[Don't build PS/PDF docs when validating
Ian Lynagh <igloo@earth.li>**20091023143512
 dblatex with miktex under msys/mingw can't build the PS and PDF docs,
 and just building the HTML docs is sufficient to check that the
 markup is correct, so we turn off PS and PDF doc building when
 validating.
] 
[Add a test to the unpulled patches in darcs-all
Ian Lynagh <igloo@earth.li>**20091023181521] 
[Add a test in darcs-all for old bytestring repositories
Ian Lynagh <igloo@earth.li>**20091006203342] 
[Explain why we check for LICENSE, not _darcs, in boot
Ian Lynagh <igloo@earth.li>**20091023174748] 
[Make a mingw tree from mingw tarballs
Ian Lynagh <igloo@earth.li>**20091023174443] 
[Check for failure when running wget
Ian Lynagh <igloo@earth.li>**20091020202516] 
[Add tarball syncing to darcs-all
Ian Lynagh <igloo@earth.li>**20091014162948
 We now use it for libffi and the mingw tarballs
] 
[The -e flag now has a "SepArg" argument; fixes #3568
Ian Lynagh <igloo@earth.li>**20091012134923
 This means -e must be separated from its argument by a space.
 It therefore doesn't try to parse "-exclude-module" as
 "execute xclude-module".
] 
[Print warnings after doMkDependHS
Ian Lynagh <igloo@earth.li>**20091012132611
 We weren't printing any warning for a commandline like
     ghc -M Foo.hs -optdep--exclude-module=Bar -fffi
 but the last 2 flags are both deprecated.
] 
[remove duplicate entry for -fwarn-unused-do-bind (#3576)
Simon Marlow <marlowsd@gmail.com>**20091012110216
 Ignore-this: a7fa8f53b223fe5abe8885b634edeae1
] 
[fix markup
Simon Marlow <marlowsd@gmail.com>**20091012083656
 Ignore-this: 649ca712cbc361c1d6016d84d15e30d4
] 
[Install libHSffi_p.a
Ian Lynagh <igloo@earth.li>**20091012101952] 
[More README updates
Ian Lynagh <igloo@earth.li>**20091012095142] 
[Update the README instructions for getting the source
Ian Lynagh <igloo@earth.li>**20091012094325] 
[Make ghci work with libraries compiled with -ticky
simonpj@microsoft.com**20091008162752
 Ignore-this: 97d2d10fbc5fa21afb1076920c1aec66
 
 This is a follow up to the patch tha fixes Trac #3439.
 We had forgotten the dynamic linker, which needs to
 know all these ticky symbols too.
 
] 
[Only make the Windows installer if ISCC is set
Ian Lynagh <igloo@earth.li>**20091010160246
 Now that we make bindists during validate, we can't assume that ISCC
 is available.
] 
[Update the list of happy/alex-generated files put in sdists
Ian Lynagh <igloo@earth.li>**20091010021300] 
[Remove the windres configure check, now that we use an in-tree windres
Ian Lynagh <igloo@earth.li>**20091008153244] 
[Remove FP_MINGW_GCC now that we use an in-tree gcc
Ian Lynagh <igloo@earth.li>**20091008153412] 
[Add the include files to bindists
Ian Lynagh <igloo@earth.li>**20091009215604] 
[Tweak how bindistprep is created and cleaned
Ian Lynagh <igloo@earth.li>**20091009203803] 
[When validating, run the testsuite with the bindisttest compiler
Ian Lynagh <igloo@earth.li>**20091009203125] 
[Don't remake the bindist when validating with --testsuite-only
Ian Lynagh <igloo@earth.li>**20091009200955] 
[Fix dependencies for the RTS
Simon Marlow <marlowsd@gmail.com>**20091006155059
 Ignore-this: 627b7552fa8b84a78f85d16c05d99d20
 Evac_thr.c and Scav_thr.c had no dependencies
] 
[Packages are only shadowed if the InstalledPackageId is *different*
Simon Marlow <marlowsd@gmail.com>**20091006154940
 Ignore-this: dc1b9417bc4d75206a18e4ee979370ff
 If the two InstalledPackageIds are the same, then the packages are
 interchangeable and we don't need to explicitly remove one of them.
] 
[Make the Windows installer in bindistprep/
Ian Lynagh <igloo@earth.li>**20091007131839] 
[MERGED: Make the unpleasant sed one-liner less unpleasant
Ian Lynagh <igloo@earth.li>**20091007131648
 Matthias Kilian <kili@outback.escape.de>**20091007101239
] 
[Update bin-package-db's Cabal dep
Ian Lynagh <igloo@earth.li>**20091006160633] 
[follow changes in Distribution.Simple.PackageIndex API
Simon Marlow <marlowsd@gmail.com>**20091006131456
 Ignore-this: ae072de9e355b794a3a3222a34e0be48
] 
[Add --supported-languages support to dummy-ghc
Ian Lynagh <igloo@earth.li>**20091004211035
 We used to call the bootstrapping compiler to get its --supported-languages
 but that doesn't work when it doesn't support all the extensions that we
 need. In particular, compiling the new bytestring which needs NamedFieldPuns
 broken when building with 6.8.2.
 There's now a rather ugly sed script to extract the extensions from
 DynFlags.hs.
] 
[Update to the 0.9.1.5 bytestring release
Ian Lynagh <igloo@earth.li>**20091004184930] 
[Make the bindist AC_INIT line match the main configure script's
Ian Lynagh <igloo@earth.li>**20091004103908
 This means that PACKAGE_TARNAME gets set, so the default docdir is
 correct.
] 
[add missing id="ffi-prim"
Simon Marlow <marlowsd@gmail.com>**20091002151457
 Ignore-this: b3edbbee2de1c19440870e9ccf560bc7
] 
[Fix typo in comment
Ian Lynagh <igloo@earth.li>**20091002212605] 
[Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS if GhcWithInterpreter = NO
Matthias Kilian <kili@outback.escape.de>**20090920181319
 Ignore-this: 1268ae31d74e746b09287814ee435f65
 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.
] 
[Use INSTALL_DIR, not MKDIRHIER, when installing
Ian Lynagh <igloo@earth.li>**20091002152246] 
[Fix pretty-printing precedence for equality constraints
simonpj@microsoft.com**20091002111549
 Ignore-this: 9c5347975db3d23bf64057c64cd7856f
] 
[Document -XMonoLocalBinds
simonpj@microsoft.com**20091002111400
 Ignore-this: ed8b57fb02690d78fbee99961ed8ab1c
] 
[Combine treatment of vanialla/GADT data decls, and fix assert failure
simonpj@microsoft.com**20091002072109
 Ignore-this: 392c4b36a5fd43b1c93122683abc0321
] 
[Fix Trac #3540: malformed types
simonpj@microsoft.com**20090930104703
 Ignore-this: bbd5543b88e6beadd1a9ae9d0ebce15e
 
 Tidy up the way that predicates are handled inside types
 
] 
[System.Console.Terminfo isn't available when bootstrapping.
Matthias Kilian <kili@outback.escape.de>**20090930212629
 Ignore-this: 4793dc492b4b5b11019f96e2325be9d2
] 
[The Windows installer now needs to get its files from bindistprep/
Ian Lynagh <igloo@earth.li>**20090930224746] 
[We no longer need to specify the gcc and ld location when validating
Ian Lynagh <igloo@earth.li>**20090930210502
 on Windows, as they are now in-tree
] 
[Remove long rotted configure support for Windows DLLs
Ben.Lippmeier@anu.edu.au**20090926103610] 
[Follow renaming of binary to ghc-binary.
Matthias Kilian <kili@outback.escape.de>**20090929212110
 Ignore-this: f28a7deafa283ef1c9c57ed38a90dbbf
] 
[No need to use -split-objs with dynamic libraries
Simon Marlow <marlowsd@gmail.com>**20090929103811
 Ignore-this: ad0c08809191c99ff9d3bfce88b77aee
] 
[Fix some missing unfoldings (foldr in particular!)
Simon Marlow <marlowsd@gmail.com>**20090929102745
 Ignore-this: 39c9b075f523e210cf4a5fb9db438d05
 
 The changes I made to the tidier recently introduced a serious
 regression: the unfoldings for bindings in a recursive group were
 sometimes lost, because we were looking at Id occurrences rather than
 Id binders, and the occurrences of recursive Ids do not necessarily
 have unfoldings attached.
] 
[Don't put library tarballs etc in the GHC source tarballs
Ian Lynagh <igloo@earth.li>**20090929152952] 
[Switch to a released haskeline tarball
Ian Lynagh <igloo@earth.li>**20090929144953] 
[Don't install haskeline/mtl/terminfo, and hide ghc-binary
Ian Lynagh <igloo@earth.li>**20090929144324] 
[Rename binary to ghc-binary
Ian Lynagh <igloo@earth.li>**20090929124617] 
[Fix making Windows bindist and installer
Ian Lynagh <igloo@earth.li>**20090929012717] 
[emitRetUT: cope with arguments overlapping with results (#3546)
Simon Marlow <marlowsd@gmail.com>**20090928124455
 Ignore-this: 899c4be65a7c31d05bf5e79ea423147e
 
 In decodeFloat_Int# we have the C-- code:
 
     mp_tmp1  = Sp - WDS(1);
     mp_tmp_w = Sp - WDS(2);
     
     /* arguments: F1 = Float# */
     arg = F1;
     
     /* Perform the operation */
     foreign "C" __decodeFloat_Int(mp_tmp1 "ptr", mp_tmp_w "ptr", arg) [];
     
     /* returns: (Int# (mantissa), Int# (exponent)) */
     RET_NN(W_[mp_tmp1], W_[mp_tmp_w]);
 
 Which all looks quite reasonable.  The problem is that RET_NN() might
 assign the results to the stack (with an unregisterised back end), and
 in this case the arguments to RET_NN() refer to the same stack slots
 that will be assigned to.
 
 The code generator should do the right thing here, but it wasn't - it
 was assuming that it could assign the results sequentially.  A 1-line
 fix to use emitSimultaneously rather than emitStmts (plus comments).
] 
[fix cut-and-paste bugs in .cmm -> .hc/.s rules
Simon Marlow <marlowsd@gmail.com>**20090928115139
 Ignore-this: fe9a834cb94b53c7d4d6dc238c0d348d
] 
[Add a way to generate tracing events programmatically
Simon Marlow <marlowsd@gmail.com>**20090925150243
 Ignore-this: 7f17f3474b06a1fb4a527c62e003e7aa
 
 added:
 
  primop  TraceEventOp "traceEvent#" GenPrimOp
    Addr# -> State# s -> State# s
    { Emits an event via the RTS tracing framework.  The contents
      of the event is the zero-terminated byte string passed as the first
      argument.  The event will be emitted either to the .eventlog file,
      or to stderr, depending on the runtime RTS flags. }
 
 and added the required RTS functionality to support it.  Also a bit of
 refactoring in the RTS tracing code.
] 
[Run bindisttest when validating
Ian Lynagh <igloo@earth.li>**20090928173323] 
[Follow bindist changes in bindisttest
Ian Lynagh <igloo@earth.li>**20090927215031
 Also add support for testing the bindistprep tarball, for when we are
 validating.
] 
[More bindist tweaking
Ian Lynagh <igloo@earth.li>**20090927212114] 
[Add a $(MAKE_RESTARTS) check to ghc.mk
Ian Lynagh <igloo@earth.li>**20090927202603
 This should catch make going into an infinite loop.
] 
[Don't use absolute paths unnecessarily when making bindists
Ian Lynagh <igloo@earth.li>**20090927193528] 
[Change where bindists are made
Ian Lynagh <igloo@earth.li>**20090927191740
 We now do all the hard work in a bindistprep subdirectory, and just move
 the result to the root directory. This way we can delete anything in
 bindistprep/ without worrying about deleting anything important.
] 
[Fix building of the RTS with the NCG under Windows
Ben.Lippmeier@anu.edu.au**20090926075507] 
[Use $topdir in the RTS's package.conf file when doing a relocatable build
Ian Lynagh <igloo@earth.li>**20090927145309] 
[Fix invoking windres in a directory containing spaces
Ian Lynagh <igloo@earth.li>**20090927144119] 
[Add support for relocatable builds in the new build system
Ian Lynagh <igloo@earth.li>**20090927010605] 
[Update the OS X package build scripts
Ian Lynagh <igloo@earth.li>**20090925132151
 The docs are no longer built and installed separately.
] 
[Make some sed more portable: Use \{0,1\} instead of \?
Ian Lynagh <igloo@earth.li>**20090924171025] 
[We now tell the linker macosx_version_min is 10.5; trac #3521
Ian Lynagh <igloo@earth.li>**20090924162450
 We used to say 10.3, but this gives
     -rpath can only be used when targeting Mac OS X 10.5 or later 
 when building shared libraries.
 Patch from mwotton.
] 
[Errors talking about a left section should refer to the "first" argument
Ian Lynagh <igloo@earth.li>**20090924124128
 rather than the "second" argument. Fixes trac #3505.
] 
[Make count_lines work with the new directory layout
Ian Lynagh <igloo@earth.li>**20090923182251] 
[Add count_lines back into the repo
Ian Lynagh <igloo@earth.li>**20090923174945] 
[Remove a haskeline release note that doesn't apply to ghci
Ian Lynagh <igloo@earth.li>**20090923145130
 Spotted by Judah.
] 
[fix warnings
Simon Marlow <marlowsd@gmail.com>**20090923125059
 Ignore-this: 6cc0a727c7a55a5bf79b0190c47666de
] 
[Add erf, erfc, erfff, erfcf (#3536)
Simon Marlow <marlowsd@gmail.com>**20090923105240
 Ignore-this: 4c90186bf779bec6b9c72e2989a1876a
] 
[Various updates/additions
Simon Marlow <marlowsd@gmail.com>**20090923094647
 Ignore-this: 7551a50a3f7723f21bc8c17e4c827764
] 
[Document -package-id, and use the term "package ID" consistently
Simon Marlow <marlowsd@gmail.com>**20090923094639
 Ignore-this: 234a5a2840b7a9608c9a5d4bc475080f
] 
[Make it so that -Ds implies -ls
Simon Marlow <marlowsd@gmail.com>**20090923105119
 Ignore-this: 52662a8e69ff4b8e8d9a07e4ca3e181
] 
[remove "touch %_hsc.c" - what was it for?
Simon Marlow <marlowsd@gmail.com>**20090921155720
 Ignore-this: 48d5d7ad35e1f2bdcebf4e197d46c609
] 
[Set the version number to 6.12.0
Ian Lynagh <igloo@earth.li>**20090922105641] 
[TAG 6.12-branch created
Ian Lynagh <igloo@earth.li>**20090922104027] 
Patch bundle hash:
db9e1df7e77f5c08ee36c9657ee2a27547c6f056
