Tue Aug  5 14:35:44 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Add -XPackageImports, new syntax for package-qualified imports
  
  Now you can say
    
    import "network" Network.Socket
  
  and get Network.Socket from package "network", even if there are
  multiple Network.Socket modules in scope from different packages
  and/or the current package.
  
  This is not really intended for general use, it's mainly so that we
  can build backwards-compatible versions of packages, where we need to
  be able to do
  
  module GHC.Base (module New.GHC.Base) where
  import "base" GHC.Base as New.GHC.Base

Tue Aug  5 14:37:02 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Don't warn if 'import Prelude' doesn't import anything
  ... even if Prelude doesn't come from the base package (it might come from
  a old backwards-compatible version of base, for example).

Tue Aug  5 16:33:26 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * build base3-compat

New patches:

[Add -XPackageImports, new syntax for package-qualified imports
Simon Marlow <marlowsd@gmail.com>**20080805133544
 
 Now you can say
   
   import "network" Network.Socket
 
 and get Network.Socket from package "network", even if there are
 multiple Network.Socket modules in scope from different packages
 and/or the current package.
 
 This is not really intended for general use, it's mainly so that we
 can build backwards-compatible versions of packages, where we need to
 be able to do
 
 module GHC.Base (module New.GHC.Base) where
 import "base" GHC.Base as New.GHC.Base
] {
hunk ./compiler/hsSyn/HsImpExp.lhs 38
+                  (Maybe FastString)            -- package qualifier
hunk ./compiler/hsSyn/HsImpExp.lhs 47
-    ppr (ImportDecl mod from qual as spec)
+    ppr (ImportDecl mod pkg from qual as spec)
hunk ./compiler/hsSyn/HsImpExp.lhs 49
-                    pp_qual qual, ppr mod, pp_as as])
+                    pp_qual qual, pp_pkg pkg, ppr mod, pp_as as])
hunk ./compiler/hsSyn/HsImpExp.lhs 52
+        pp_pkg Nothing  = empty
+        pp_pkg (Just p) = doubleQuotes (ftext p)
+
hunk ./compiler/hsSyn/HsImpExp.lhs 71
-ideclName (ImportDecl mod_nm _ _ _ _) = mod_nm
+ideclName (ImportDecl mod_nm _ _ _ _ _) = mod_nm
hunk ./compiler/iface/LoadIface.lhs 73
-loadSrcInterface :: SDoc -> ModuleName -> IsBootInterface -> RnM ModIface
-loadSrcInterface doc mod want_boot  = do 	
+loadSrcInterface :: SDoc
+                 -> ModuleName
+                 -> IsBootInterface     -- {-# SOURCE #-} ?
+                 -> Maybe FastString    -- "package", if any
+                 -> RnM ModIface
+
+loadSrcInterface doc mod want_boot maybe_pkg  = do
hunk ./compiler/iface/LoadIface.lhs 86
-  res <- liftIO $ findImportedModule hsc_env mod Nothing
+  res <- liftIO $ findImportedModule hsc_env mod maybe_pkg
hunk ./compiler/main/DynFlags.hs 232
+   | Opt_PackageImports
hunk ./compiler/main/DynFlags.hs 1606
-  ( "IncoherentInstances",              Opt_IncoherentInstances, const Supported )
+  ( "IncoherentInstances",              Opt_IncoherentInstances, const Supported ),
+  ( "PackageImports",                   Opt_PackageImports, const Supported )
hunk ./compiler/main/Finder.lhs 40
+import Distribution.Package
hunk ./compiler/main/Finder.lhs 117
-findImportedModule :: HscEnv -> ModuleName -> Maybe PackageId -> IO FindResult
-findImportedModule hsc_env mod_name mb_pkgid =
-  case mb_pkgid of
-	Nothing		    	   -> unqual_import
-	Just pkg | pkg == this_pkg -> home_import
-	         | otherwise	   -> pkg_import pkg
+findImportedModule :: HscEnv -> ModuleName -> Maybe FastString -> IO FindResult
+findImportedModule hsc_env mod_name mb_pkg =
+  case mb_pkg of
+	Nothing                        -> unqual_import
+	Just pkg | pkg == fsLit "this" -> home_import -- "this" is special
+	         | otherwise           -> pkg_import
hunk ./compiler/main/Finder.lhs 124
-    dflags = hsc_dflags hsc_env
-    this_pkg = thisPackage dflags
+    home_import   = findHomeModule hsc_env mod_name
hunk ./compiler/main/Finder.lhs 126
-    home_import     = findHomeModule hsc_env mod_name
+    pkg_import    = findExposedPackageModule hsc_env mod_name mb_pkg
hunk ./compiler/main/Finder.lhs 128
-    pkg_import pkg  = findPackageModule hsc_env (mkModule pkg mod_name)
-			-- ToDo: this isn't quite right, the module we want
-			-- might actually be in another package, but re-exposed
-			-- ToDo: should return NotFoundInPackage if
-			-- the module isn't exposed by the package.
-
-    unqual_import   = home_import 
+    unqual_import = home_import 
hunk ./compiler/main/Finder.lhs 130
-		      findExposedPackageModule hsc_env mod_name
+		      findExposedPackageModule hsc_env mod_name Nothing
hunk ./compiler/main/Finder.lhs 173
-findExposedPackageModule :: HscEnv -> ModuleName -> IO FindResult
-findExposedPackageModule hsc_env mod_name
+findExposedPackageModule :: HscEnv -> ModuleName -> Maybe FastString
+                         -> IO FindResult
+findExposedPackageModule hsc_env mod_name mb_pkg
hunk ./compiler/main/Finder.lhs 193
-        found_exposed = filter is_exposed found
+
+        found_exposed = [ (pkg_conf,exposed_mod) 
+                        | x@(pkg_conf,exposed_mod) <- found,
+                          is_exposed x,
+                          pkg_conf `matches` mb_pkg ]
+
hunk ./compiler/main/Finder.lhs 201
+        _pkg_conf `matches` Nothing  = True
+        pkg_conf  `matches` Just pkg =
+           case packageName pkg_conf of 
+              PackageName n -> pkg == mkFastString n
+
hunk ./compiler/main/GHC.hs 2263
-findModule :: Session -> ModuleName -> Maybe PackageId -> IO Module
+findModule :: Session -> ModuleName -> Maybe FastString -> IO Module
hunk ./compiler/main/HeaderInfo.hs 64
-	        (src_idecls, ord_idecls) = partition isSourceIdecl (map unLoc imps)
-		source_imps   = map getImpMod src_idecls	
+                imps' = filter isHomeImp (map unLoc imps)
+	        (src_idecls, ord_idecls) = partition isSourceIdecl imps'
+		source_imps   = map getImpMod src_idecls
hunk ./compiler/main/HeaderInfo.hs 76
+-- we aren't interested in package imports here, filter them out
+isHomeImp :: ImportDecl name -> Bool
+isHomeImp (ImportDecl _ (Just p) _ _ _ _) = p == fsLit "this"
+isHomeImp (ImportDecl _ Nothing  _ _ _ _) = True
+
hunk ./compiler/main/HeaderInfo.hs 82
-isSourceIdecl (ImportDecl _ s _ _ _) = s
+isSourceIdecl (ImportDecl _ _ s _ _ _) = s
hunk ./compiler/main/HeaderInfo.hs 85
-getImpMod (ImportDecl located_mod _ _ _ _) = located_mod
+getImpMod (ImportDecl located_mod _ _ _ _ _) = located_mod
hunk ./compiler/main/HscStats.lhs 122
-    import_info (L _ (ImportDecl _ _ qual as spec))
+    import_info (L _ (ImportDecl _ _ _ qual as spec))
hunk ./compiler/main/Packages.lhs 413
-	   case filter exposed all_ps of
-		[] -> case all_ps of
-                        []   -> notfound
-                        many -> pick (head (sortByVersion many))
-		many  -> pick (head (sortByVersion many))
+	   case all_ps of
+		[]   -> notfound
+		many -> pick (head (sortByVersion many))
hunk ./compiler/main/Packages.lhs 442
-	deleteOtherWiredInPackages pkgs = filterOut bad pkgs
-	  where bad p = any (p `matches`) wired_in_pkgids
-                     && package p `notElem` map fst wired_in_ids
+        -- this is old: we used to assume that if there were
+        -- multiple versions of wired-in packages installed that
+        -- they were mutually exclusive.  Now we're assuming that
+        -- you have one "main" version of each wired-in package
+        -- (the latest version), and the others are backward-compat
+        -- wrappers that depend on this one.  e.g. base-4.0 is the
+        -- latest, base-3.0 is a compat wrapper depending on base-4.0.
+        {-
+ 	deleteOtherWiredInPackages pkgs = filterOut bad pkgs
+ 	  where bad p = any (p `matches`) wired_in_pkgids
+                      && package p `notElem` map fst wired_in_ids
+        -}
hunk ./compiler/main/Packages.lhs 464
-        pkgs1 = deleteOtherWiredInPackages pkgs
+        -- pkgs1 = deleteOtherWiredInPackages pkgs
hunk ./compiler/main/Packages.lhs 466
-        pkgs2 = updateWiredInDependencies pkgs1
+        pkgs2 = updateWiredInDependencies pkgs
hunk ./compiler/parser/Parser.y.pp 498
-	: 'import' maybe_src optqualified modid maybeas maybeimpspec 
-		{ L (comb4 $1 $4 $5 $6) (ImportDecl $4 $2 $3 (unLoc $5) (unLoc $6)) }
+	: 'import' maybe_src optqualified maybe_pkg modid maybeas maybeimpspec 
+		{ L (comb4 $1 $5 $6 $7) (ImportDecl $5 $4 $2 $3 (unLoc $6) (unLoc $7)) }
hunk ./compiler/parser/Parser.y.pp 505
+maybe_pkg :: { Maybe FastString }
+        : STRING                                { Just (getSTRING $1) }
+        | {- empty -}                           { Nothing }
+
hunk ./compiler/rename/RnEnv.lhs 469
-   = loadSrcInterface doc mod False	`thenM` \ iface ->
+   = loadSrcInterface doc mod False Nothing	`thenM` \ iface ->
hunk ./compiler/rename/RnNames.lhs 66
-             is_source_import (L _ (ImportDecl _ is_boot _ _ _)) = is_boot
+             is_source_import (L _ (ImportDecl _ _ is_boot _ _ _)) = is_boot
hunk ./compiler/rename/RnNames.lhs 102
-       = notNull [ () | L _ (ImportDecl mod _ _ _ _) <- import_decls, 
+       = notNull [ () | L _ (ImportDecl mod Nothing _ _ _ _) <- import_decls, 
hunk ./compiler/rename/RnNames.lhs 109
+               Nothing {- no specific package -}
hunk ./compiler/rename/RnNames.lhs 122
-rnImportDecl this_mod (L loc (ImportDecl loc_imp_mod_name want_boot
+rnImportDecl this_mod (L loc (ImportDecl loc_imp_mod_name mb_pkg want_boot
hunk ./compiler/rename/RnNames.lhs 127
+    when (isJust mb_pkg) $ do
+        pkg_imports <- doptM Opt_PackageImports
+        when (not pkg_imports) $ addErr packageImportErr
+
hunk ./compiler/rename/RnNames.lhs 137
-    iface <- loadSrcInterface doc imp_mod_name want_boot
+    iface <- loadSrcInterface doc imp_mod_name want_boot mb_pkg
hunk ./compiler/rename/RnNames.lhs 247
-    let new_imp_decl = L loc (ImportDecl loc_imp_mod_name want_boot
+    let new_imp_decl = L loc (ImportDecl loc_imp_mod_name mb_pkg want_boot
hunk ./compiler/rename/RnNames.lhs 1451
+
+packageImportErr :: SDoc
+packageImportErr
+  = ptext (sLit "Package-qualified imports are not enabled; use -XPackageImports")
hunk ./docs/users_guide/flags.xml 955
+	    <row>
+	      <entry><option>-XPackageImports</option></entry>
+	      <entry>Enable <link linkend="package-imports">package-qualified imports</link>.</entry>
+	      <entry>dynamic</entry>
+	      <entry><option>-XNoPackageImports</option></entry>
+	    </row>
hunk ./docs/users_guide/glasgow_exts.xml 1571
+<sect2 id="package-imports">
+  <title>Package-qualified imports</title>
+
+  <para>With the <option>-XPackageImports</option> flag, GHC allows
+  import declarations to be qualified by the package name that the
+    module is intended to be imported from.  For example:</para>
+
+<programlisting>
+import "network" Network.Socket
+</programlisting>
+  
+  <para>would import the module <literal>Network.Socket</literal> from
+    the package <literal>network</literal> (any version).  This may
+    be used to disambiguate an import when the same module is
+    available from multiple packages, or is present in both the
+    current package being built and an external package.</para>
+
+  <para>Note: you probably don't need to use this feature, it was
+    added mainly so that we can build backwards-compatible versions of
+    packages when APIs change.  It can lead to fragile dependencies in
+    the common case: modules occasionally move from one package to
+    another, rendering any package-qualified imports broken.</para>
+</sect2>
}

[Don't warn if 'import Prelude' doesn't import anything
Simon Marlow <marlowsd@gmail.com>**20080805133702
 ... even if Prelude doesn't come from the base package (it might come from
 a old backwards-compatible version of base, for example).
] hunk ./compiler/rename/RnNames.lhs 1201
-    		       mod /= pRELUDE,
+    		       moduleName mod /= pRELUDE_NAME,
+                             -- XXX not really correct, but we don't want
+                             -- to generate warnings when compiling against
+                             -- a compat version of base.

[build base3-compat
Simon Marlow <marlowsd@gmail.com>**20080805153326] {
hunk ./compiler/ghc.cabal 39
-        Build-Depends: base       >= 3   && < 4,
+        Build-Depends: base       >= 3   && < 5,
hunk ./compiler/ghci/InteractiveUI.hs 340
-   prel_mod <- GHC.findModule session (GHC.mkModuleName "Prelude") 
-                                      (Just basePackageId)
+   prel_mod <- GHC.findModule session (GHC.mkModuleName "Prelude") Nothing
hunk ./libraries/Makefile 44
-SUBDIRS  = ghc-prim $(INTEGER_LIBRARY) base array packedstring
+SUBDIRS  = ghc-prim $(INTEGER_LIBRARY) base base3-compat array packedstring
hunk ./libraries/Makefile 286
-doc: $(foreach SUBDIR,$(SUBDIRS),doc.library.$(SUBDIR))
+# No docs for compat libraries for now.
+DOC_SUBDIRS = $(filter-out %-compat, $(SUBDIRS))
+
+doc: $(foreach SUBDIR,$(DOC_SUBDIRS),doc.library.$(SUBDIR))
hunk ./libraries/Makefile 297
-$(foreach SUBDIR,$(SUBDIRS),doc.library.$(SUBDIR)):\
+$(foreach SUBDIR,$(DOC_SUBDIRS),doc.library.$(SUBDIR)):\
hunk ./packages 7
+libraries/base3-compat                  packages/base3-compat
hunk ./utils/ghc-pkg/ghc-pkg.cabal 23
-        Build-Depends: base       >= 3   && < 4,
+        Build-Depends: base       >= 3   && < 5,
}

Context:

[Fix Trac #2467: decent warnings for orphan instances
simonpj@microsoft.com**20080804162129
 
 This patch makes
   * Orphan instances and rules obey -Werror
   * They look nicer when printed
 
] 
[Fix the bug part of Trac #1930
simonpj@microsoft.com**20080804161039] 
[Fix Trac #2433 (deriving Typeable)
simonpj@microsoft.com**20080804141503] 
[Fix Trac #2478
simonpj@microsoft.com**20080801122223
 
 A minor glitch that shows up only when a data constructor has *both* a
 "stupid theta" in the data type decl, *and* an existential type variable.
 
] 
[Improve docs for GADTs
simonpj@microsoft.com**20080729145313] 
[Document -dsuppress-uniques
simonpj@microsoft.com**20080729145247] 
[haddock fixes
Ian Lynagh <igloo@earth.li>**20080803180330] 
[Follow the move of assertError from Control.Exception to GHC.IOBase
Ian Lynagh <igloo@earth.li>**20080803141146] 
[Document PackageConfig
Max Bolingbroke <batterseapower@hotmail.com>**20080731012345] 
[Document CoreSubst
Max Bolingbroke <batterseapower@hotmail.com>**20080731012338] 
[Document CoreFVs
Max Bolingbroke <batterseapower@hotmail.com>**20080731012337] 
[Document CmmZipUtil
Max Bolingbroke <batterseapower@hotmail.com>**20080731012335] 
[Document VarSet
Max Bolingbroke <batterseapower@hotmail.com>**20080731012335] 
[Document VarEnv
Max Bolingbroke <batterseapower@hotmail.com>**20080731012335] 
[Document Unique
Max Bolingbroke <batterseapower@hotmail.com>**20080731012334] 
[Document LazyUniqFM
Max Bolingbroke <batterseapower@hotmail.com>**20080731012354] 
[Document FastTypes
Max Bolingbroke <batterseapower@hotmail.com>**20080731012353] 
[Add some type signatures to RnNames
Max Bolingbroke <batterseapower@hotmail.com>**20080731012348] 
[Comment only in IfaceENv
Max Bolingbroke <batterseapower@hotmail.com>**20080731012343] 
[Document ZipCfg
Max Bolingbroke <batterseapower@hotmail.com>**20080731012336] 
[Document MachOp
Max Bolingbroke <batterseapower@hotmail.com>**20080731012336] 
[Document Dataflow
Max Bolingbroke <batterseapower@hotmail.com>**20080731012336] 
[Document DFMonad
Max Bolingbroke <batterseapower@hotmail.com>**20080731012336] 
[Document NameSet
Max Bolingbroke <batterseapower@hotmail.com>**20080731012333] 
[Document NameEnv
Max Bolingbroke <batterseapower@hotmail.com>**20080731012333] 
[Document Module
Max Bolingbroke <batterseapower@hotmail.com>**20080731012332] 
[Document DataCon
Max Bolingbroke <batterseapower@hotmail.com>**20080731012316] 
[Document BasicTypes
Max Bolingbroke <batterseapower@hotmail.com>**20080731012306] 
[Rename maybeTyConSingleCon to tyConSingleDataCon_maybe
Max Bolingbroke <batterseapower@hotmail.com>**20080731010537] 
[Ignore git files
Max Bolingbroke <batterseapower@hotmail.com>**20080731010509] 
[Fix ifBuildable
Ian Lynagh <igloo@earth.li>**20080801141731] 
[Update assertErrorName; assertError has moved to Control.Exception
Ian Lynagh <igloo@earth.li>**20080801011028] 
[Fix the catching of "IOEnv failure" with extensible extensions
Ian Lynagh <igloo@earth.li>**20080731194252] 
[Follow changes in the base library
Ian Lynagh <igloo@earth.li>**20080731173354
 TopHandler now uses the new extensible exceptions module, so we
 need to interact with it using the new types.
] 
[Add the Exception module to ghc.cabal
Ian Lynagh <igloo@earth.li>**20080730213419] 
[Fix building with extensible exceptions
Ian Lynagh <igloo@earth.li>**20080730194508] 
[Mark the ghc package as not exposed
Ian Lynagh <igloo@earth.li>**20080730172124] 
[Follow extensible exception changes
Ian Lynagh <igloo@earth.li>**20080730120134] 
[When raising NonTermination with the RTS, build the right value
Ian Lynagh <igloo@earth.li>**20080621144528
 We now use a nonTermination value in the base library to take take of
 constructing the SomeException value, with the dictionaries etc, for us.
 We'll probably need to do the same for some other exceptions too
] 
[Fix the way we pass GMP_INCLUDE_DIRS to hsc2hs; spotted by Andres Loh
Ian Lynagh <igloo@earth.li>**20080730114713
 We were still building the flags in Haskell list syntax, but we now pass
 the arguments directly rather than constructing a Haskell program with
 them.
] 
[UNDO:  FIX #2375: remove oc->lochash completely, it apparently isn't used
Simon Marlow <marlowsd@gmail.com>**20080804111801] 
[workaround #2277: turn off the RTS timer when calling into editline
Simon Marlow <marlowsd@gmail.com>**20080730135918] 
[Fix a typo in powerpc/Linux-only code; spotted by Jeroen Pulles
Ian Lynagh <igloo@earth.li>**20080729214007] 
[Add the runghc wrapper script
Ian Lynagh <igloo@earth.li>**20080729211852] 
[Make cabal-bin not do any building, even of Setup.hs, when it is asked to clean
Ian Lynagh <igloo@earth.li>**20080729202410] 
[Update the test in Makefile that we have all the boot libs
Ian Lynagh <igloo@earth.li>**20080729201640] 
[Update boot's test that we have all of the bootlibs
Ian Lynagh <igloo@earth.li>**20080729201032] 
[Make the push-all script complain about bad lines
Ian Lynagh <igloo@earth.li>**20080729200613] 
[Add some comments to packages/darcs-all
Ian Lynagh <igloo@earth.li>**20080729151934] 
[Remove ndp from libraries/Makefile. We now use dph instead.
Ian Lynagh <igloo@earth.li>**20080729141917] 
[Add dph to ./packages and darcs-all
Ian Lynagh <igloo@earth.li>**20080729141850] 
[Remove cabal-install from ./packages; we've decided not to build it
Ian Lynagh <igloo@earth.li>**20080729141824] 
[FIX #2388: check that the operand fits before using the 'test' opcode
Simon Marlow <marlowsd@gmail.com>**20080730105231] 
[oops, fix a small pessimisation made in previous refactoring
Simon Marlow <marlowsd@gmail.com>**20080730105203] 
[FIX #2375: remove oc->lochash completely, it apparently isn't used
Simon Marlow <marlowsd@gmail.com>**20080730101252] 
[FIX #2327: a fault in the thunk-selector machinery (again)
Simon Marlow <marlowsd@gmail.com>**20080729150518
 This program contains an expression of the form
 
    let x = snd (_, snd (_, snd (_, x)))
 
 (probably not explicitly, but that's what appears in the heap at
 runtime).  Obviously the program should deadlock if it ever enters
 this thing, but apparently the test program in #2327 never does.
 
 The GC tries to evaluate the snd closures, and gets confused due to
 the loop.  In particular the earlier fix for #1038 was to blame.
] 
[FIX #2332: avoid overflow on 64-bit machines in the memory allocator
Simon Marlow <marlowsd@gmail.com>**20080729150459] 
[understand absolute pathnames on Windows too
Simon Marlow <marlowsd@gmail.com>**20080728102243] 
[change where we put gcc-lib/ld.exe to keep Cabal happy
Simon Marlow <marlowsd@gmail.com>**20080728100852] 
[move an inline function to keep older versions of gcc happy
Simon Marlow <marlowsd@gmail.com>**20080725144708
 no idea why this only just showed up...
] 
[Change the calling conventions for unboxed tuples slightly
Simon Marlow <marlowsd@gmail.com>**20080728155621
 When returning an unboxed tuple with a single non-void component, we
 now use the same calling convention as for returning a value of the
 same type as that component.  This means that the return convention
 for IO now doesn't vary depending on the platform, which make some
 parts of the RTS simpler, and fixes a problem I was having with making
 the FFI work in unregisterised GHCi (the byte-code compiler makes
 some assumptions about calling conventions to keep things simple).
] 
[don't strip the inplace GHC executables (for debugging)
Simon Marlow <marlowsd@gmail.com>**20080728134647] 
[Complete the changes for #1205
Simon Marlow <marlowsd@gmail.com>**20080728105141
 Now ":load M" always searches for a module called "M", rather than
 using a file called "M.hs" if that exists.  To get the file semantics
 (i.e. not loading "M.o"), use ":load M.hs".
] 
[update the comments about how we find $topdir
Simon Marlow <marlowsd@gmail.com>**20080725151406] 
[try to fix the way we find $topdir
Simon Marlow <marlowsd@gmail.com>**20080725142828] 
[Fix building runghc on Windows
Ian Lynagh <igloo@earth.li>**20080724182831] 
[Follow darcs-all changes in push-all
Ian Lynagh <igloo@earth.li>**20080724164153] 
[Rejig how darcs-all works
Ian Lynagh <igloo@earth.li>**20080724164142
 It's now easier to add new repos anywhere in the source tree
] 
[Remove the OpenGL family of libraries from extralibs
Ian Lynagh <igloo@earth.li>**20080724102736] 
[compiler/package.conf.in is no longer used, so remove it
Ian Lynagh <igloo@earth.li>**20080724101610] 
[for the installed versions, don't use dynamic-linking wrappers
Simon Marlow <marlowsd@gmail.com>**20080725134551] 
[don't steal %ebx for the GC on x86: it's also used by PIC
Simon Marlow <marlowsd@gmail.com>**20080725122921] 
[SRT labels don't need to be globally visible
Simon Marlow <marlowsd@gmail.com>**20080725080901
 Saves space in the symbol table and speeds up linking
] 
[Don't prematurely link shared libraries against the RTS package
Simon Marlow <marlowsd@gmail.com>**20080724155001
 We want to be able to pick the RTS flavour (e.g. -threaded) when we
 link the final program.
] 
[add --enable-shared to configure, and $(BuildSharedLibs) to the build system
Simon Marlow <marlowsd@gmail.com>**20080724154925] 
[use RTLD_LAZY instead of RTLD_NOW
Simon Marlow <marlowsd@gmail.com>**20080724152727
 RTLD_NOW apparently causes some problems, according to previous
 mailing-list discussion
 
  http://www.haskell.org/pipermail/cvs-ghc/2007-September/038570.html
] 
[debug output tweak
Simon Marlow <marlowsd@gmail.com>**20080724152636] 
[small cleanup
Simon Marlow <marlowsd@gmail.com>**20080724151614] 
[Fix a build error on powerpc/Linux; spotted by Jeroen Pulles
Ian Lynagh <igloo@earth.li>**20080723191948] 
[If the extension is not .lhs, runghc now treats it as .hs; fixes trac #1232
Ian Lynagh <igloo@earth.li>**20080723182156] 
[runghc now uses the compiler that it comes with; fixes trac #1281
Ian Lynagh <igloo@earth.li>**20080723181115
 rather than the first one that it finds on the PATH
] 
[Use the upstream hsc2hs repo
Ian Lynagh <igloo@earth.li>**20080723155021] 
[Remove some redundancy in darcs-all
Ian Lynagh <igloo@earth.li>**20080723143804] 
[Tell Cabal where gcc is
Ian Lynagh <igloo@earth.li>**20080723001202] 
[allow EXTRA_HC_OPTS to be used from the command-line
Simon Marlow <marlowsd@gmail.com>**20080724081728] 
[put the inplace GHC in stageN-inplace/ghc instead of stageN-inplace/bin/ghc
Simon Marlow <marlowsd@gmail.com>**20080724080951
 just saves a bit of typing
] 
[add a "rebuild" target for convenience
Simon Marlow <marlowsd@gmail.com>**20080723143201] 
[set PAPI_LIB_DIR="" when we don't have PAPI (clean up package.conf)
Simon Marlow <marlowsd@gmail.com>**20080722141327] 
[remove -fvia-C that I apparrently accidentally added recently
Simon Marlow <marlowsd@gmail.com>**20080722141255] 
[Undo fix for #2185: sparks really should be treated as roots
Simon Marlow <marlowsd@gmail.com>**20080723125205
 Unless sparks are roots, strategies don't work at all: all the sparks
 get GC'd.  We need to think about this some more.
] 
[Warn about unrecognised pragmas; these often mean we've typoed
Ian Lynagh <igloo@earth.li>**20080722235550] 
[Sync hsc2hs's Main.hs with the Cabal repo
Ian Lynagh <igloo@earth.li>**20080722203646] 
[We need to clean the utils on "distclean", as well as "clean"
Ian Lynagh <igloo@earth.li>**20080722170754] 
[Clean stage 3
Ian Lynagh <igloo@earth.li>**20080722170542] 
[Add replacements for the -optdep flags, and deprecate the old ones
Ian Lynagh <igloo@earth.li>**20080722163308] 
[Fix the stage3 build
Ian Lynagh <igloo@earth.li>**20080722125743] 
[Fixes for haddock 0.8
Ian Lynagh <igloo@earth.li>**20080721095256] 
[haddock the stage2 compiler if HADDOCK_DOCS is YES
Ian Lynagh <igloo@earth.li>**20080720220622] 
[fix bug in sparkPoolSize (affects debug output only)
Simon Marlow <marlowsd@gmail.com>**20080723104322] 
[debug message tweaks
Simon Marlow <marlowsd@gmail.com>**20080723090050] 
[refactoring/tidyup: (not.is64BitInteger) -> is32BitInteger
Simon Marlow <marlowsd@gmail.com>**20080722092113] 
[First step for getting rid of the old -optdep flags
Ian Lynagh <igloo@earth.li>**20080720203239
 They are now handled by the main flag parser, rather than having their
 own praser that runs later.
 
 As an added bonus, 5 global variables are also gone.
] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720173151] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720173117] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720173105] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720173017] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172614] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172401] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172242] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172222] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172139] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172114] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172054] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720172010] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720171723] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720171554] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720171529] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720171424] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720171113] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720170708] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720170601] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720170421] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720165845] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720165637] 
[Fix Haddock errors.
Thomas Schilling <nominolo@googlemail.com>**20080720164133] 
[Properly comment out unused pragmas
Ian Lynagh <igloo@earth.li>**20080720135604
 We now say
     -- {-# SPECIALIZE ...
 rather than
     {-# -- SPECIALIZE ...
] 
[Add a WARNING pragma
Ian Lynagh <igloo@earth.li>**20080720120918] 
[Put a #! line in ghc-pkg's shell wrapper
Ian Lynagh <igloo@earth.li>**20080719112544] 
[Fix ghc-pkg inplace on Windows
Ian Lynagh <igloo@earth.li>**20080719002613] 
[Some "install" and "clean" fixes
Ian Lynagh <igloo@earth.li>**20080718223656] 
[Change how inplace detection works, so that it also works on Windows
Ian Lynagh <igloo@earth.li>**20080718210836] 
[More dependency wibbling
Ian Lynagh <igloo@earth.li>**20080718193454] 
[Build system tweaks
Ian Lynagh <igloo@earth.li>**20080718184706] 
[We need to make Parser.y and Config.hs earlier
Ian Lynagh <igloo@earth.li>**20080718180441] 
[Explicitly list HpcParser as a module in hpc-bin
Ian Lynagh <igloo@earth.li>**20080718174657
 Cabal doesn't preprocess the .y file otherwise.
] 
[Disable building pwd and lndir for now
Ian Lynagh <igloo@earth.li>**20080718170329] 
[Build hpc with Cabal
Ian Lynagh <igloo@earth.li>**20080718170047] 
[Build runghc with Cabal
Ian Lynagh <igloo@earth.li>**20080718165317] 
[Add a comment
Ian Lynagh <igloo@earth.li>**20080718154238] 
[Tweak the build system for installPackage
Ian Lynagh <igloo@earth.li>**20080718153956] 
[More build system changes; hasktags is now built with Cabal
Ian Lynagh <igloo@earth.li>**20080718153459] 
[Remove a comment
Ian Lynagh <igloo@earth.li>**20080718115044] 
[More build system changes; ghc-pkg is now built with Cabal
Ian Lynagh <igloo@earth.li>**20080718114753] 
[Fix some argument names
Ian Lynagh <igloo@earth.li>**20080717223543] 
[Tweak the hsc2hs wrapper script
Ian Lynagh <igloo@earth.li>**20080717194916] 
[Fix the order in which things get built
Ian Lynagh <igloo@earth.li>**20080717192402] 
[Split building the ghc package and binary into "boot" and "all" steps
Ian Lynagh <igloo@earth.li>**20080717150746
 In "boot" we configure, and in "all" we do the actual building.
] 
[Install the compiler during make install
Ian Lynagh <igloo@earth.li>**20080717150453
 For now we always install stage 2
] 
[Do the building and installing of hsc2hs with the stage1 compiler
Ian Lynagh <igloo@earth.li>**20080717150420] 
[Remove some duplication
Ian Lynagh <igloo@earth.li>**20080717144906] 
[Windows fixes
Ian Lynagh <igloo@earth.li>**20080716222719] 
[Fix GHC finding extra-gcc-opts on Windows
Ian Lynagh <igloo@earth.li>**20080716222457] 
[Fix the inplace compiler finding package.conf on Windows
Ian Lynagh <igloo@earth.li>**20080716215000] 
[Fix the build with GHC 6.4.2
Ian Lynagh <igloo@earth.li>**20080716192836] 
[Get building GHC itself with Cabal more-or-less working
Ian Lynagh <igloo@earth.li>**20080716150441
 Installing and bindist creation don't work, but they were already broken.
 Only tested validating with one setup.
] 
[TAG Before cabalised-GHC
Ian Lynagh <igloo@earth.li>**20080719132217] 
[non-threaded RTS: don't assume deadlock if there are signal handlers to run
Simon Marlow <marlowsd@gmail.com>**20080715130316] 
[update the text about header files and -#include
Simon Marlow <marlowsd@gmail.com>**20080715101119] 
[Fix for 1st half of #2203
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080715052751] 
[Fix check of rhs of type family instances (#2157)
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080714094524] 
[FIX BUILD on Windows
Simon Marlow <marlowsd@gmail.com>**20080714153411] 
[add NetBSD to some of the #ifdefs (patch partly from 6.8 branch)
Simon Marlow <marlowsd@gmail.com>**20080714145040] 
[If HADDOCK_DOCS is YES, then fail the build early if we couldn't find haddock
Ian Lynagh <igloo@earth.li>**20080713165305
 This fixes trac #2266.
] 
[Fix some build problems when GHCI is not definde
Ian Lynagh <igloo@earth.li>**20080713121309] 
[Add PostfixOperators flag for (e op) postfix operators; fixes trac #1824
Ian Lynagh <igloo@earth.li>**20080712203725
 -fglasgow-exts also turns it on.
] 
[Remove the hack to avoid darcs-all operating on bootstrapping directories
Ian Lynagh <igloo@earth.li>**20080712170638
 We no longer create those directories
] 
[Teach installPackage about --distpref and --enable-shell-wrappers
Ian Lynagh <igloo@earth.li>**20080712134346] 
[Handle passing hsc2hs to Cabal better
Ian Lynagh <igloo@earth.li>**20080711214358
 If it has been built then we pass it, even if we are still using the
 bootstrapping compiler.
] 
[Move installPackage out into its own cabal package under utils/
Ian Lynagh <igloo@earth.li>**20080711211615] 
[Split up Cabal configure flag variables for more flexibility
Ian Lynagh <igloo@earth.li>**20080711151448] 
[Move -fno-cse flags from Makefile into pragmas
Ian Lynagh <igloo@earth.li>**20080711123151
 These are needed for GLOBAL_VAR's to work properly
] 
[Remove the need for undecidable instances in LazyUniqFM
Ian Lynagh <igloo@earth.li>**20080711131421] 
[Change pragma order to stop GHC 6.4 getting confused
Ian Lynagh <igloo@earth.li>**20080710190614] 
[-H80m isn't allowed in an options pragma. Just remove it for now.
Ian Lynagh <igloo@earth.li>**20080710163048] 
[Remove a commented-out flag
Ian Lynagh <igloo@earth.li>**20080710141129] 
[Remove an HPUX-only flag which has no comment explaining its purpose
Ian Lynagh <igloo@earth.li>**20080710141032
 It's probably to work around a long-dead bug
] 
[Move more flags from the Makefile into pragmas
Ian Lynagh <igloo@earth.li>**20080710140757] 
[Move the definition of NONEXISTENT into the central cabal-flags.mk
Ian Lynagh <igloo@earth.li>**20080710135213] 
[Define CABAL in mk/cabal-flags.mk, rather than everywhere we use it
Ian Lynagh <igloo@earth.li>**20080710134928] 
[Typo fixed
Ian Lynagh <igloo@earth.li>**20080710134748] 
[Remove a redundant comment
Ian Lynagh <igloo@earth.li>**20080710134656] 
[Remove remnants of javaGen
Ian Lynagh <igloo@earth.li>**20080710132654] 
[Remove some remnants of ilxgen
Ian Lynagh <igloo@earth.li>**20080710132417] 
[Remove a comment for GHC <= 4.08
Ian Lynagh <igloo@earth.li>**20080710132107] 
[Remove .hi-boot-[56] stuff from the Makefile
Ian Lynagh <igloo@earth.li>**20080710131528] 
[Remove a flag that a comment claims is for GHC < 5
Ian Lynagh <igloo@earth.li>**20080710130925] 
[We can now unconditionally use -fno-warn-orphans
Ian Lynagh <igloo@earth.li>**20080710125948
 ...which is good, as the conditional test was broken anyway!
] 
[Move another flag from the Makefile into a pragma
Ian Lynagh <igloo@earth.li>**20080710125422] 
[Move some flags from the Makefile into module pragmas
Ian Lynagh <igloo@earth.li>**20080710124827] 
[Move "main/BinIface_HC_OPTS += -O" into a pragma in iface/BinIface.hs
Ian Lynagh <igloo@earth.li>**20080710124141
 I assume that we still want this, despite it having been disconnected
 when the module was moved.
] 
[Remove an ancient commented out "parser/Parser_HC_OPTS += -fasm"
Ian Lynagh <igloo@earth.li>**20080710123655] 
[remove what looks like a cut-and-pasto
Simon Marlow <marlowsd@gmail.com>**20080714132808] 
[fix #2434: we weren't waiting long enough for the signal
Simon Marlow <marlowsd@gmail.com>**20080714111007] 
[Make showSDoc and printDoc use the same default width (100)
Simon Marlow <marlowsd@gmail.com>**20080714083654
 For some reason they were different (100/120), which made some tests
 produce different output when I moved from showSDoc to printDoc for
 error messages.
] 
[FIX #2322: add exceptions for more functions in math.h
Simon Marlow <marlowsd@gmail.com>**20080711152703] 
[FIX #2248
Simon Marlow <marlowsd@gmail.com>**20080711151146
 Unconditionally add .exe to the output executable name when using
 --make on Windows, and no -o option was given.
] 
[add a comment to the effect that printDoc prints FastStrings in UTF-8
Simon Marlow <marlowsd@gmail.com>**20080711151135] 
[FIX #2302: print FastStrings in UTF-8 in error messages
Simon Marlow <marlowsd@gmail.com>**20080711151116
 This is all a bit of a mess, but can hopefully be improved when we get
 encoding/decoding support in Handles.
] 
[FIX #2278: don't complain if the -odir directory doesn't exist
Simon Marlow <marlowsd@gmail.com>**20080711134301
 we'll create it anyway
] 
[add "ghc-pkg dump" (fixes #2201)
Simon Marlow <marlowsd@gmail.com>**20080711121739] 
[small improvement to an error message
Simon Marlow <marlowsd@gmail.com>**20080711120153] 
[#2371: try to explain the difference between :module and :load
Simon Marlow <marlowsd@gmail.com>**20080711120046] 
[FIX #2381, and improve the fix for #1565
Simon Marlow <marlowsd@gmail.com>**20080711101839] 
[add threadStatus# primop, for querying the status of a ThreadId#
Simon Marlow <marlowsd@gmail.com>**20080710151406] 
[ObjectIO is no longer an extralib
Ian Lynagh <igloo@earth.li>**20080709135722] 
[Remove all references to -mno-cygwin
Ian Lynagh <igloo@earth.li>**20080709125554
 We shouldn't need it, as we don't call cygwin's gcc, and it was causing
 problems with the nightly builders passing it to GHC.
] 
[oops, fix more register clobberage 
Simon Marlow <marlowsd@gmail.com>**20080710115221
 fixes crash with -threaded -debug for me
] 
[rts_evalStableIO: start the new thread in blocked mode
Simon Marlow <marlowsd@gmail.com>**20080709135447] 
[add new primop: asyncExceptionsBlocked# :: IO Bool
Simon Marlow <marlowsd@gmail.com>**20080709135337] 
[#1205: ':load foo.hs' in GHCi always compiles to bytecode
Simon Marlow <marlowsd@gmail.com>**20080709110830
 
 So now
 
   :load foo.hs       loads bytecode for foo.hs, even if foo.o exists
   :load foo          is just shorthand for :load foo.hs
   :load M            loads a module M, as object code if possible
                      (no change here)
 
   :set -fobject-code
   :load foo.hs       loads foo.hs as object code; an existing foo.o
                      can be used.
   
 This turned out to be very straightforward: when building the
 ModSummary for a file (summariseFile) we just ignore the object file
 unless -fobject-code is on.
] 
[add -fwarn-dodgy-foreign-imports (see #1357)
Simon Marlow <marlowsd@gmail.com>**20080709102143
 
 From the entry in the User's guide:
 
 -fwarn-dodgy-foreign-imports causes a warning to be emitted for
 foreign imports of the following form:
 
 foreign import "f" f :: FunPtr t
 
 on the grounds that it probably should be
 
 foreign import "&f" f :: FunPtr t
 
 The first form declares that `f` is a (pure) C function that takes no
 arguments and returns a pointer to a C function with type `t`, whereas
 the second form declares that `f` itself is a C function with type
 `t`.  The first declaration is usually a mistake, and one that is hard
 to debug because it results in a crash, hence this warning.
] 
[Treat the Unicode "Letter, Other" class as lowercase letters (#1103)
Simon Marlow <marlowsd@gmail.com>**20080709091252
 This is an arbitrary choice, but it's strictly more useful than the
 current situation, where these characters cannot be used in
 identifiers at all.
 
 In Haskell' we may revisit this decision (it's on my list of things to
 discuss), but for now this is an improvement for those using caseless
 languages.
] 
[FIX part of #2301, and #1619
Simon Marlow <marlowsd@gmail.com>**20080709084916
 
 2301: Control-C now causes the new exception (AsyncException
 UserInterrupt) to be raised in the main thread.  The signal handler
 is set up by GHC.TopHandler.runMainIO, and can be overriden in the
 usual way by installing a new signal handler.  The advantage is that
 now all programs will get a chance to clean up on ^C.
 
 When UserInterrupt is caught by the topmost handler, we now exit the
 program via kill(getpid(),SIGINT), which tells the parent process that
 we exited as a result of ^C, so the parent can take appropriate action
 (it might want to exit too, for example).
 
 One subtlety is that we have to use a weak reference to the ThreadId
 for the main thread, so that the signal handler doesn't prevent the
 main thread from being subject to deadlock detection.
 
 1619: we now ignore SIGPIPE by default.  Although POSIX says that a
 SIGPIPE should terminate the process by default, I wonder if this
 decision was made because many C applications failed to check the exit
 code from write().  In Haskell a failed write due to a closed pipe
 will generate an exception anyway, so the main difference is that we
 now get a useful error message instead of silent program termination.
 See #1619 for more discussion.
] 
[Fix build; Opt_LinkHaskell98 is now Opt_AutoLinkPackages
Ian Lynagh <igloo@earth.li>**20080708224005] 
[Extend the flag for not automatically linking haskell98
Ian Lynagh <igloo@earth.li>**20080708165654
 It now also doesn't automatically link base and rts either.
 We need this when we've done a build, so base and rts are in the
 package.conf, but we've then cleaned the libraries so they don't
 physically exist any more.
] 
[Remove all .hi-boot-6 files
Ian Lynagh <igloo@earth.li>**20080708150059
 From 6.4 onwards we use .(l)hs-boot instead.
 Spotted by Max Bolingbroke.
] 
[Add some missing deps in libraries/Makefile
Ian Lynagh <igloo@earth.li>**20080708142752] 
[Get rid of compat/
Ian Lynagh <igloo@earth.li>**20080708002717
 Compat.Unicode is not utils/Unicode in the compiler.
 We build the hpc package with the stage1 compiler.
 Nothing else in the compat package was still used.
] 
[Fix some random register clobbering in takeMVar/putMVar
Simon Marlow <marlowsd@gmail.com>**20080709083128
 This showed up as a crash in conc032 for me.
] 
[Add a comment in validate saying where the hpc HTML is put
Ian Lynagh <igloo@earth.li>**20080707103816] 
[Fix Trac #2414: occurrs check was missed
simonpj@microsoft.com**20080707103201
 
 This is an embarassing one: a missing occurs check meant that a type-incorrect
 program could leak through.  Yikes!  
 
 (An indirect consequence of extra complexity introduced by boxy types. Sigh.)
 
 Merge to 6.8.4 if we release it.
 
 
] 
[White space only
simonpj@microsoft.com**20080707103145] 
[White space only
simonpj@microsoft.com**20080707103110] 
[Fix Trac #2386: exceesive trimming of data types with Template Haskell
simonpj@microsoft.com**20080707102941
 
 See Note [Trimming and Template Haskell] in TidyPgm.
 
 Merge to 6.8.4 if we ever release it.
 
 
] 
[ANSI-ise a function declaration
Simon Marlow <marlowsd@gmail.com>**20080708110430] 
[remove old #ifdef SMP bits
Simon Marlow <marlowsd@gmail.com>**20080708110410] 
[FIX #1736, and probably #2169, #2240
Simon Marlow <marlowsd@gmail.com>**20080707095836
 appendStringBuffer was completely bogus - the arguments to copyArray
 were the wrong way around, which meant that corruption was very likely
 to occur by overwriting the end of the buffer in the first argument.
 
 This definitely fixes #1736.  The other two bugs, #2169 and #2240 are
 harder to reproduce, but we can see how they could occur: in the case
 of #2169, the options parser is seeing the contents of an old buffer,
 and in the case of #2240, appendStringBuffer is corrupting an
 interface file in memory, since strng buffers and interface files are
 both allocated in the pinned region of memory.
] 
[Add hsc2hs.wrapper
Ian Lynagh <igloo@earth.li>**20080705214104] 
[Fix hsc2hs finding its template file on Windows
Ian Lynagh <igloo@earth.li>**20080705185829] 
[On cygwin, convert happy's path to a native path
Ian Lynagh <igloo@earth.li>**20080705163113] 
[On cygwin, convert Haddock's path to a native path
Ian Lynagh <igloo@earth.li>**20080705162154] 
[On cygwin, convert alex's path to a native path
Ian Lynagh <igloo@earth.li>**20080705155559] 
[libffi now doesn't have an artificial make boot/all split
Ian Lynagh <igloo@earth.li>**20080705155025] 
[Need to make all in gmp, not boot
Ian Lynagh <igloo@earth.li>**20080705153245] 
[gmp didn't really fit into the make boot/all cycle, so don't try to force it
Ian Lynagh <igloo@earth.li>**20080705140354
 Now we just run make in it at the start of the stage1 build
] 
[Build hsc2hs with Cabal
Ian Lynagh <igloo@earth.li>**20080705134208
 This is very rough around teh edges at the moment.
] 
[Add a flag to disable linking with the haskell98 package
Ian Lynagh <igloo@earth.li>**20080705134115] 
[Use the last compiler if more than one is specified
Ian Lynagh <igloo@earth.li>**20080705121426] 
[Improve error messages from pwd
Ian Lynagh <igloo@earth.li>**20080704233343] 
[In utils/hsc2hs, add LICENSE and hsc2hs.cabal from the standalone repo
Ian Lynagh <igloo@earth.li>**20080704222206] 
[Remove fgl from the libraries Makefile
Ian Lynagh <igloo@earth.li>**20080704221026
 It's no longer an extralib
] 
[Tell the bootstrapping Cabal where ghc-pkg is
Ian Lynagh <igloo@earth.li>**20080704152713] 
[FIX #2398: file locking wasn't thread-safe
Simon Marlow <marlowsd@gmail.com>**20080704144626] 
[Remove Cabal modules from compat
Ian Lynagh <igloo@earth.li>**20080703224633
 We now get them from the bootstrapping package.conf instead
] 
[Fix trac #2307: conflicting functional dependencies
Ian Lynagh <igloo@earth.li>**20080703192540
 We were accepting some instances that should have been rejected as
 their fundep constraints were violated. e.g. we accepted
     class C a b c | b -> c
     instance C Bool Int Float
     instance C Char Int Double
] 
[If we know where alex, haddock and happy are then tell Cabal; fixes trac #2373
Ian Lynagh <igloo@earth.li>**20080703191031] 
[Don't clean bootstrapping bits when cleaning libraries
Ian Lynagh <igloo@earth.li>**20080703154647] 
[More libraries/Makefile fixes
Ian Lynagh <igloo@earth.li>**20080703141016] 
[Shove the GHC path through cygpath -m
Ian Lynagh <igloo@earth.li>**20080703132614] 
[Tweak the configure script Windows-specific bits
Ian Lynagh <igloo@earth.li>**20080703132437] 
[Use cygpath -m, rather than fudging it ourselves with sed
Ian Lynagh <igloo@earth.li>**20080703131725] 
[Fix build on Windows
Ian Lynagh <igloo@earth.li>**20080703124553] 
[Include ghc.spec in tarballs; patch from, and fixes, trac #2390
Ian Lynagh <igloo@earth.li>**20080703161457] 
[Add a program for describing unexpected tests in testlog
Ian Lynagh <igloo@earth.li>**20080703134003
 This goes through the testlog and spits out any sections that contain
 "unexpected".
] 
[Teach cabal-bin how to build Setup programs
Ian Lynagh <igloo@earth.li>**20080703001300
 
 We now build a copy of Cabal and put it in a bootstrapping package.conf.
 
 We also make boot in libraries much earlier in the build process, so we
 can use cabal-bin for more stuff in the future.
] 
[Wibble cabal-bin's error message
Ian Lynagh <igloo@earth.li>**20080702155937
 We don't need to put the program name in it, as that happens automatically
] 
[Add type signatures
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080703023635] 
[Command-line options for selecting DPH backend
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022202
 
 It's -fdph-seq and -fdph-par at the moment, I'll think of a nicer setup later.
] 
[Add missing dph package to Makefile
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022142] 
[Slight refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701025227] 
[Rename *NDP* -> *DPH*
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024559] 
[Parametrise vectoriser with DPH package
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024515] 
[Don't use DPH backend directly in vectoriser
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701021436] 
[Make dph-seq and dph-par wired-in packages
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701020214] 
[FIX #2313 do not include BFD symbols in RTS when the BFD library is not available for linking
Karel Gardas <karel.gardas@centrum.cz>**20080528093139] 
[Add --slow (and --fast) options to validate
Ian Lynagh <igloo@earth.li>**20080701175927
 slow mode is 14% slower than normal. It uses -DDEBUG for the stage 2
 compiler, and -XGenerics for the stage 2 compiler and the libraries.
 I believe that most of the slowdown is actually caused by -XGenerics
 rather than -DDEBUG.
] 
[Fix Trac #2307: need to nub bad fundep reports
simonpj@microsoft.com**20080701165830] 
[Easy fix for Trac #2409
simonpj@microsoft.com**20080701163722
 
 Yurgh. See Note [Desugaring seq (3)]
 
 
] 
[Make a "validate --hpc"; shows how much of the compiler the testsuite tests
Ian Lynagh <igloo@earth.li>**20080701124515
 Currently it causes a load of ghci-debugger tests to fail and takes
 63% longer.
] 
[Allow the exact HPC tix filename to be given in the HPCTIXFILE env var
Ian Lynagh <igloo@earth.li>**20080701124320] 
[array is now warning-free
Ian Lynagh <igloo@earth.li>**20080630204126] 
[Several fixes to 'deriving' including Trac #2378
simonpj@microsoft.com**20080701120908
 
 This patch collects several related things together.
 
 * Refactor TcDeriv so that the InstInfo and the method bindings are renamed
   together.  This was messy before, and is cleaner now.  Fixes a bug caused 
   by interaction between the "auxiliary bindings" (which were given 
   Original names before), and stand-alone deriving (which meant that those
   Original names came from a different module). Now the names are purely
   local an ordinary.
 
   To do this, InstInfo is parameterised like much else HsSyn stuff.
 
 * Improve the location info in a dfun, which in turn improves location 
   info for error messages, e.g. overlapping instances
 
 * Make sure that newtype-deriving isn't used for Typeable1 and friends.
   (Typeable was rightly taken care of, but not Typeable1,2, etc.)
 
 * Check for data types in deriving Data, so that you can't do, say,
  	deriving instance Data (IO a)
 
 * Decorate the derived binding with location info from the *instance* 
   rather than from the *tycon*.  Again, this really only matters with
   standalone deriving, but it makes a huge difference there.
 
 I think that's it.  Quite a few error messages change slightly.
 
 If we release 6.8.4, this should go in if possible.
 
] 
[Follow Cabal changes
Ian Lynagh <igloo@earth.li>**20080629211633] 
[Rename cabal to cabal-bin
Ian Lynagh <igloo@earth.li>**20080629110003
 Avoids conflicts with the Cabal library on case-insensitive filesystems
] 
[mkdirhier.sh now accepts -q, which makes it be quiet
Ian Lynagh <igloo@earth.li>**20080627233528] 
[Update .darcs-boring
Ian Lynagh <igloo@earth.li>**20080627181410] 
[Update darcs-boring
Ian Lynagh <igloo@earth.li>**20080627154142] 
[Update .darcs-boring
Ian Lynagh <igloo@earth.li>**20080627145633] 
[Follow Cabal changes
Ian Lynagh <igloo@earth.li>**20080626202749] 
[Absolutify a path
Ian Lynagh <igloo@earth.li>**20080626181134
 When building ghc-prim/Setup we weren't putting the hi files in the
 right place.
] 
[Remove fgl from extralibs
Ian Lynagh <igloo@earth.li>**20080626112739] 
[Use a program similar to cabal-install to build the libraries
Ian Lynagh <igloo@earth.li>**20080626112511
 This means that we don't have to make a Setup program for each library
 individually, and also simplifies the build system a bit.
] 
[Fix Trac #2394: test for non-algebraic types in standalone deriving
simonpj@microsoft.com**20080625160204] 
[() is now in ghc-prim:GHC.Unit
Ian Lynagh <igloo@earth.li>**20080624144849] 
[Generate a warning-free GHC.PrimopWrappers. ghc-prim is now -Wall clean.
Ian Lynagh <igloo@earth.li>**20080624122529] 
[Fix some inconsistencies in the code and docs of primitives
Ian Lynagh <igloo@earth.li>**20080623223454
 We were inconsistent about whether to use the name "MutArr#" or
 "MutableArray#". Likewise ByteArr#/ByteArray# and
 MutByteArr#/MutableByteArray#.
] 
[Fix the build with GHC 6.4
Ian Lynagh <igloo@earth.li>**20080623144426] 
[Don't rebuild things with the stage2 compiler
Ian Lynagh <igloo@earth.li>**20080622134613
 It leads to annoying rebuilding when working in a built tree.
 We'll handle this differently for 6.10.
] 
[editline is now warning-free
Ian Lynagh <igloo@earth.li>**20080620212110] 
[Remove special handling for character types of characters >= 128, <= 255
Ian Lynagh <igloo@earth.li>**20080621171100
 Many of the character types were wrong. Now the asc* names really do mean
 ASCII, rather than latin-1.
] 
[Remove code that isn't used now that we assume that GHC >= 6.4
Ian Lynagh <igloo@earth.li>**20080620193003] 
[Now that we require GHC >= 6.4.2, System.IO.Error is always available
Ian Lynagh <igloo@earth.li>**20080620191059] 
[hpc is -Wall clean
Ian Lynagh <igloo@earth.li>**20080620142058] 
[filepath is now warning-free
Ian Lynagh <igloo@earth.li>**20080620135652] 
[pretty is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080620135335] 
[process is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080620011832] 
[directory is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080620011335] 
[integer-gmp is warning-free
Ian Lynagh <igloo@earth.li>**20080619235925] 
[packedstring is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080619235612] 
[old-time is now warning-free
Ian Lynagh <igloo@earth.li>**20080619233127] 
[old-locale is now warning-free
Ian Lynagh <igloo@earth.li>**20080619232152] 
[random is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080619140211] 
[bytestring is -Wall clean
Ian Lynagh <igloo@earth.li>**20080619010702] 
[Cabal is -Wall clean
Ian Lynagh <igloo@earth.li>**20080619010436] 
[The haskell98 library is -Wall clean
Ian Lynagh <igloo@earth.li>**20080619010124] 
[template-haskell is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080619005811] 
[containers is now -Wall clean
Ian Lynagh <igloo@earth.li>**20080618233651] 
[Remove out of date comments and point to the commentary
Simon Marlow <marlowsd@gmail.com>**20080620135258
 The wiki commentary is now the official description of recompilation
 checking.
 
 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
] 
[document some RTS options I added a while ago: -qm, -qw
Simon Marlow <marlowsd@gmail.com>**20080619121227] 
[Document the change to +RTS -S/-s/-t
Simon Marlow <marlowsd@gmail.com>**20080619121201] 
[document paralel GC option: +RTS -g
Simon Marlow <marlowsd@gmail.com>**20080619121111] 
[Make the wired-in packages code handle ndp mapping to ndp-seq or ndp-par
Ian Lynagh <igloo@earth.li>**20080618162233
 It's getting a bit crufty - could probably do with a rewrite.
] 
[Put the infrastructure in place for getting the libraries -Wall clean
Ian Lynagh <igloo@earth.li>**20080617020145
 libraries/Makefile.local now lists those for which we need to pass -w
 (currently this is every library).
] 
[utils/Digraph doesn't need -fglasgow-exts passed specially
Ian Lynagh <igloo@earth.li>**20080616225949] 
[Fix Trac #2321: bug in SAT
simonpj@microsoft.com**20080616201700
   This is a fairly substantial rewrite of the Static Argument Transformatoin,
   done by Max Bolingbroke and reviewed and modified by Simon PJ.
   
   * Fix a subtle scoping problem; see Note [Binder type capture]
   * Redo the analysis to use environments
   * Run gentle simlification just before the transformation
 
] 
[FIX BUILD on Windows
Simon Marlow <marlowsd@gmail.com>**20080618094700] 
[+RTS -S -RTS now sends output to stderr (also -s)
Simon Marlow <marlowsd@gmail.com>**20080619113329
 Previously +RTS -Sstderr -RTS was required to send output to stderr,
 but this is the most common usage and I got tired of typing "stderr".
 The old default behaviour of sending output to <prog>.stat is now gone
 (I don't think we use it anywhere).  
 
 Temporarily we allowed +RTS -S- -RTS to mean stderr; there were
 objections to this, so it is now also gone.
] 
[fix a tiny bug spotted by gcc 4.3
Simon Marlow <marlowsd@gmail.com>**20080619100904] 
[Fix up inlines for gcc 4.3
Simon Marlow <marlowsd@gmail.com>**20080619100849
 gcc 4.3 emits warnings for static inline functions that its heuristics
 decided not to inline.  The workaround is to either mark appropriate
 functions as "hot" (a new attribute in gcc 4.3), or sometimes to use
 "extern inline" instead.
 
 With this fix I can validate with gcc 4.3 on Fedora 9.
] 
[fix warnings with gcc 4.3
Simon Marlow <marlowsd@gmail.com>**20080618144307] 
[it's time to retire ghcprof & friends
Simon Marlow <marlowsd@gmail.com>**20080618140228] 
[define NeedVarargsPrototypes to avoid segfault on x86_64
Simon Marlow <marlowsd@gmail.com>**20080618132116] 
[fix gcc warnings for printf formats on 32-bit
Simon Marlow <marlowsd@gmail.com>**20080618094018] 
[small interpreter fix
Simon Marlow <marlowsd@gmail.com>**20080617134651] 
[fix some printf formats for 64 bits
Simon Marlow <marlowsd@gmail.com>**20080617101102] 
[64-bit fixes
Simon Marlow <marlowsd@gmail.com>**20080617101045] 
[don't try to parallelise marking GC (yet)
Simon Marlow <marlowsd@gmail.com>**20080616073111] 
[another stableptr003 fix
Simon Marlow <marlowsd@gmail.com>**20080609191722] 
[Experimental "mark-region" strategy for the old generation
Simon Marlow <marlowsd@gmail.com>**20080609174943
 Sometimes better than the default copying, enabled by +RTS -w
] 
[threadStackUnderflow: fix up the bd->free pointers in the split blocks
Simon Marlow <marlowsd@gmail.com>**20080609171617] 
[fix allocated blocks calculation, and add more sanity checks
Simon Marlow <marlowsd@gmail.com>**20080608073754] 
[Put the contents of Evac.c-inc back in Evac.c, and just compile the file twice
Simon Marlow <marlowsd@gmail.com>**20080603073119
 Similarly for Scav.c/Scav.c-inc.
] 
[+RTS -N also sets +RTS -g
Simon Marlow <marlowsd@gmail.com>**20080603072701] 
[DECLARE_GCT for when we have no register variable
Simon Marlow <marlowsd@gmail.com>**20080603072608] 
[comment updates
Simon Marlow <marlowsd@gmail.com>**20080603072527] 
[fix some types for 64-bit platforms
Simon Marlow <marlowsd@gmail.com>**20080603032625] 
[+RTS -S- is the same as +RTS -Sstderr
Simon Marlow <marlowsd@gmail.com>**20080603032557] 
[move the spinlock counts inside +RTS -S
Simon Marlow <marlowsd@gmail.com>**20080603032534] 
[FIX #2164: check for ThreadRelocated in isAlive()
Simon Marlow <marlowsd@gmail.com>**20080528063904] 
[FIX the compacting GC again
Simon Marlow <simonmarhaskell@gmail.com>**20080424205829] 
[FIX #2185: sparks should not be treated as roots by the GC
Simon Marlow <simonmarhaskell@gmail.com>**20080424205813] 
[turn off the usleep() in the GC thread idle loop (tmp, for portability)
Simon Marlow <simonmarhaskell@gmail.com>**20080417220221] 
[declare the GC thread register variable more portably
Simon Marlow <simonmarhaskell@gmail.com>**20080417220157] 
[remove EVACUATED: store the forwarding pointer in the info pointer
Simon Marlow <simonmarhaskell@gmail.com>**20080417212707] 
[tso->link is now tso->_link  (fix after merge with HEAD)
Simon Marlow <simonmarhaskell@gmail.com>**20080417180016] 
[Don't look at all the threads before each GC.
Simon Marlow <simonmarhaskell@gmail.com>**20080416234446
 We were looking at all the threads for 2 reasons:
  1. to catch transactions that might be looping as a
     result of seeing an inconsistent view of memory.
  2. to catch threads with blocked exceptions that are
     themselves blocked.
 For (1) we now check for this case whenever a thread yields, and for
 (2) we catch these threads in the GC itself and send the exceptions
 after GC (see performPendingThrowTos).
] 
[Don't traverse the entire list of threads on every GC (phase 1)
Simon Marlow <simonmarhaskell@gmail.com>**20080416234420
 Instead of keeping a single list of all threads, keep one per step
 and only look at the threads belonging to steps that we are
 collecting.
] 
[optimisation for isAlive()
Simon Marlow <simonmarhaskell@gmail.com>**20080416234349] 
[refactoring
Simon Marlow <simonmarhaskell@gmail.com>**20080416234324] 
[add [] to foreign calls
Simon Marlow <simonmarhaskell@gmail.com>**20080416234234] 
[remove GRAN/PAR code
Simon Marlow <simonmarhaskell@gmail.com>**20080416234135] 
[bugfix for traverseBlackHoleQueue
Simon Marlow <simonmarhaskell@gmail.com>**20080416234042] 
[Add a write barrier to the TSO link field (#1589)
Simon Marlow <simonmarhaskell@gmail.com>**20080416233951] 
[fix trace
Simon Marlow <simonmarhaskell@gmail.com>**20080416233922] 
[tmp: alloc one block at a time
Simon Marlow <simonmarhaskell@gmail.com>**20080416233830] 
[add debugging code to check for fragmentation
Simon Marlow <simonmarhaskell@gmail.com>**20080416233058] 
[do a better job of re-using partial blocks in subsequent GCs
Simon Marlow <simonmarhaskell@gmail.com>**20080416232949] 
[Use the BF_EVACUATED flag to indicate to-space consistently
Simon Marlow <simonmarhaskell@gmail.com>**20080416232906
 BF_EVACUATED is now set on all blocks except those that we are
 copying.  This means we don't need a separate test for gen>N in
 evacuate(), because in generations older than N, BF_EVACUATED will be
 set anyway.  The disadvantage is that we have to reset the
 BF_EVACUATED flag on the blocks of any generation we're collecting
 before starting GC.  Results in a small speed improvement.
] 
[rearrange: we were calling markSomeCapabilities too often
Simon Marlow <simonmarhaskell@gmail.com>**20080416232825] 
[debug output: show mem in use
Simon Marlow <simonmarhaskell@gmail.com>**20080416232739] 
[make +RTS -G1 work again
Simon Marlow <simonmarhaskell@gmail.com>**20080416232510] 
[pad step_workspace to 64 bytes, to speed up access to gct->steps[]
Simon Marlow <simonmarhaskell@gmail.com>**20080416232433] 
[update copyrights in rts/sm
Simon Marlow <simonmarhaskell@gmail.com>**20080416232355] 
[Reorganisation to fix problems related to the gct register variable
Simon Marlow <simonmarhaskell@gmail.com>**20080416232232
   - GCAux.c contains code not compiled with the gct register enabled,
     it is callable from outside the GC
   - marking functions are moved to their relevant subsystems, outside
     the GC
   - mark_root needs to save the gct register, as it is called from
     outside the GC
] 
[faster block allocator, by dividing the free list into buckets
Simon Marlow <simonmarhaskell@gmail.com>**20080416224541] 
[allocate more blocks in one go, to reduce contention for the block allocator
Simon Marlow <simonmarhaskell@gmail.com>**20080416223824] 
[measure GC(0/1) times and work imbalance
Simon Marlow <simonmarhaskell@gmail.com>**20080416222539] 
[remove outdated comment
Simon Marlow <simonmarhaskell@gmail.com>**20080416222319] 
[calculate and report slop (wasted space at the end of blocks)
Simon Marlow <simonmarhaskell@gmail.com>**20080416221516] 
[free empty blocks at the end of GC
Simon Marlow <simonmarhaskell@gmail.com>**20080416221356] 
[move the scan block pointer into the gct structure
Simon Marlow <simonmarhaskell@gmail.com>**20080416221331] 
[improvements to +RTS -s output
Simon Marlow <simonmarhaskell@gmail.com>**20080416221224
 - count and report number of parallel collections
 - calculate bytes scanned in addition to bytes copied per thread
 - calculate "work balance factor"
 - tidy up the formatting a bit
] 
[wait for threads to start up properly
Simon Marlow <simonmarhaskell@gmail.com>**20080416221002] 
[debug output tweaks
Simon Marlow <simonmarhaskell@gmail.com>**20080416220807] 
[Keep track of an accurate count of live words in each step
Simon Marlow <simonmarhaskell@gmail.com>**20080416220620
 This means we can calculate slop easily, and also improve
 predictability of GC.
] 
[Allow work units smaller than a block to improve load balancing
Simon Marlow <simonmarhaskell@gmail.com>**20080416220347] 
[in scavenge_block1(), we can use the lock-free recordMutableGen()
Simon Marlow <simonmarhaskell@gmail.com>**20080416220104] 
[update the debug counters following changes to scav_find_work()
Simon Marlow <simonmarhaskell@gmail.com>**20080416215945] 
[change the find-work strategy: use oldest-first consistently
Simon Marlow <simonmarhaskell@gmail.com>**20080416215815] 
[per-thread debug output when using multiple threads, not just major gc
Simon Marlow <simonmarhaskell@gmail.com>**20080416215741] 
[small debug output improvements
Simon Marlow <simonmarhaskell@gmail.com>**20080416215649] 
[allow parallel minor collections too
Simon Marlow <simonmarhaskell@gmail.com>**20080416215503] 
[Specialise evac/scav for single-threaded, not minor, GC
Simon Marlow <simonmarhaskell@gmail.com>**20080416215405
 So we can parallelise minor collections too.  Sometimes it's worth it.
] 
[move usleep(1) to gc_thread_work() from any_work()
Simon Marlow <simonmarhaskell@gmail.com>**20080416215325] 
[use RTS_VAR()
Simon Marlow <simonmarhaskell@gmail.com>**20080416215245] 
[treat the global work list as a queue rather than a stack
Simon Marlow <simonmarhaskell@gmail.com>**20080416215109] 
[GC: move static object processinng into thread-local storage
Simon Marlow <simonmarhaskell@gmail.com>**20080416214825] 
[tmp: usleep(1) during anyWork() if no work
Simon Marlow <simonmarhaskell@gmail.com>**20080416214023] 
[anyWork(): count the number of times we don't find any work
Simon Marlow <simonmarhaskell@gmail.com>**20080416213945] 
[stats fixes
Simon Marlow <simonmarhaskell@gmail.com>**20080416213532] 
[Add +RTS -vg flag for requesting some GC trace messages, outside DEBUG
Simon Marlow <simonmarhaskell@gmail.com>**20080416213504
 DEBUG imposes a significant performance hit in the GC, yet we often
 want some of the debugging output, so -vg gives us the cheap trace
 messages without the sanity checking of DEBUG, just like -vs for the
 scheduler.
] 
[GC: rearrange storage to reduce memory accesses in the inner loop
Simon Marlow <simonmarhaskell@gmail.com>**20080416213436] 
[Add profiling of spinlocks
Simon Marlow <simonmarhaskell@gmail.com>**20080416213358] 
[rename StgSync to SpinLock
Simon Marlow <simonmarhaskell@gmail.com>**20080416211152] 
[Release some of the memory allocated to a stack when it shrinks (#2090)
simonmar@microsoft.com**20080228153129
 When a stack is occupying less than 1/4 of the memory it owns, and is
 larger than a megablock, we release half of it.  Shrinking is O(1), it
 doesn't need to copy the stack.
] 
[scavengeTSO might encounter a ThreadRelocated; cope
simonmar@microsoft.com**20080228152403] 
[Updating a thunk in raiseAsync might encounter an IND; cope
simonmar@microsoft.com**20080228152332
 There was already a check to avoid updating an IND, but it was
 originally there to avoid a bug which doesn't exist now.  Furthermore
 the test and update are not atomic, so another thread could be
 updating this thunk while we are.  We have to just go ahead and update
 anyway - it might waste a little work, but this is a very rare case.
] 
[add GC(0) and GC(1) time
Simon Marlow <simonmar@microsoft.com>**20080222142008] 
[round_to_mblocks: should use StgWord not nat
Simon Marlow <simonmar@microsoft.com>**20080220130139] 
[debugging code
Simon Marlow <simonmar@microsoft.com>**20080219102651] 
[refactoring
simonmar@microsoft.com**20080218135458] 
[fix off-by-one
simonmar@microsoft.com**20080215134017] 
[measure mut_elapsed_time
simonmar@microsoft.com**20080215133850] 
[fix build with 6.8
simonmar@microsoft.com**20080215133836] 
[add ROUNDUP_BYTES_TO_WDS
simonmar@microsoft.com**20080215133040] 
[Allow +RTS -H0 as a way to override a previous -H<size>
simonmar@microsoft.com**20080131153645] 
[comment out a bogus assertion
simonmar@microsoft.com**20080130150934] 
[memInventory: optionally dump the memory inventory
simonmar@microsoft.com**20080130150921
 in addition to checking for leaks
] 
[calcNeeded: fix the calculation, we weren't counting G0 step 1
simonmar@microsoft.com**20080130150730] 
[calcNeeded: add in the large blocks too
simonmar@microsoft.com**20080130135418] 
[update a comment
Simon Marlow <simonmar@microsoft.com>**20080130101504] 
[tell Emacs these files are C
simonmar@microsoft.com**20080130100047] 
[fix an assertion
Simon Marlow <simonmar@microsoft.com>**20080118160910] 
[cut-and-pasto
Simon Marlow <simonmar@microsoft.com>**20080116103751] 
[small rearrangement
simonmar@microsoft.com**20080115095736] 
[recordMutableGen_GC: we must call the spinlocked version of allocBlock()
Simon Marlow <simonmar@microsoft.com>**20080111135453] 
[remove unused declaration
simonmar@microsoft.com**20080111105821] 
[more fixes for THUNK_SELECTORs
Simon Marlow <simonmar@microsoft.com>**20080110122820] 
[Fix bug in eval_thunk_selector()
simonmar@microsoft.com**20080110105628] 
[move markSparkQueue into GC.c, as it needs the register variable defined
Simon Marlow <simonmar@microsoft.com>**20080109162828] 
[Windows fix
Simon Marlow <simonmar@microsoft.com>**20080109162732] 
[Fix bug: eval_thunk_selector was calling the unlocked evacuate()
Simon Marlow <simonmar@microsoft.com>**20080109144937] 
[add GC elapsed time
simonmar@microsoft.com**20080107134838] 
[update to match Mb -> MB change in -s output
simonmar@microsoft.com**20071220145855] 
[use "MB" rather than "Mb" for abbreviating megabytes
simonmar@microsoft.com**20071218145135] 
[findSlop: useful function for tracking down excessive slop in gdb
simonmar@microsoft.com**20071214135909] 
[calculate wastage due to unused memory at the end of each block
simonmar@microsoft.com**20071214135842] 
[bugfix: check for NULL before testing isPartiallyFull(stp->blocks)
simonmar@microsoft.com**20071214103223] 
[have each GC thread call GetRoots()
simonmar@microsoft.com**20071213165013
 
] 
[use synchronised version of freeChain() in scavenge_mutable_list()
simonmar@microsoft.com**20071213164525] 
[remove declarations for variables that no longer exist
simonmar@microsoft.com**20071213150946] 
[remove old comment
simonmar@microsoft.com**20071212163329] 
[GC: small improvement to parallelism
simonmar@microsoft.com**20071129154927
 don't cache a work block locally if the global queue is empty
] 
[EVACUATED: target is definitely HEAP_ALLOCED(), no need to check
simonmar@microsoft.com**20071129120021] 
[in scavenge_block(), keep going if we're scanning the todo block
simonmar@microsoft.com**20071127160747] 
[count the number of todo blocks, and add a trace
simonmar@microsoft.com**20071127160717] 
[oops, restore accidentally disabled hash-consing for Char
simonmar@microsoft.com**20071123162522] 
[kill the PAR/GRAN debug flags
simonmar@microsoft.com**20071122122327] 
[stats: print elapsed time for GC in each generation
simonmar@microsoft.com**20071122105024] 
[assertion fix
simonmar@microsoft.com**20071121164736] 
[cache bd->todo_bd->free and the limit in the workspace
Simon Marlow <simonmar@microsoft.com>**20071121155851
 avoids cache contention: bd->todo_bd->free may clash with any cache
 line, so we localise it.
] 
[warning fix
simonmar@microsoft.com**20071121164747] 
[fix boundary bugs in a couple of for-loops
simonmar@microsoft.com**20071120133835] 
[improvements to PAPI support
simonmar@microsoft.com**20071120133635
 - major (multithreaded) GC is measured separately from minor GC
 - events to measure can now be specified on the command line, e.g
      prog +RTS -a+PAPI_TOT_CYC
 
] 
[use SRC_CC_OPTS rather than SRC_HC_OPTS for C options
simonmar@microsoft.com**20071119111630] 
[allow PAPI to be installed somewhere non-standard
Simon Marlow <simonmar@microsoft.com>**20071101150325] 
[fix warnings
Simon Marlow <simonmar@microsoft.com>**20071101150258] 
[fix a warning
Simon Marlow <simonmar@microsoft.com>**20071101150228] 
[fix a warning
Simon Marlow <simonmar@microsoft.com>**20071101150200] 
[rename n_threads to n_gc_threads
Simon Marlow <simonmar@microsoft.com>**20071031163147] 
[Refactor PAPI support, and add profiling of multithreaded GC
Simon Marlow <simonmar@microsoft.com>**20071031163015] 
[fix merge errors
Simon Marlow <simonmar@microsoft.com>**20071031153839] 
[refactoring of eager_promotion in scavenge_block()
Simon Marlow <simonmar@microsoft.com>**20071031153417] 
[compile special minor GC versions of evacuate() and scavenge_block()
Simon Marlow <simonmar@microsoft.com>**20071031153339
 
 This is for two reasons: minor GCs don't need to do per-object locking
 for parallel GC, which is fairly expensive, and secondly minor GCs
 don't need to follow SRTs.
] 
[fixes for eval_thunk_selector() in parallel GC
Simon Marlow <simonmar@microsoft.com>**20071031153252] 
[Remove the optimisation of avoiding scavenging for certain objects
Simon Marlow <simonmar@microsoft.com>**20071031144542
 
 Some objects don't need to be scavenged, in particular if they have no
 pointers.  This seems like an obvious optimisation, but in fact it
 only accounts for about 1% of objects (in GHC, for example), and the
 extra complication means it probably isn't worth doing.
] 
[GC refactoring: change evac_gen to evac_step
Simon Marlow <simonmar@microsoft.com>**20071031144230
 
 By establishing an ordering on step pointers, we can simplify the test
   (stp->gen_no < evac_gen)
 to 
   (stp < evac_step)
 which is common in evacuate().
] 
[GC refactoring: make evacuate() take an StgClosure**
Simon Marlow <simonmar@microsoft.com>**20071031143634
 
 Change the type of evacuate() from 
   StgClosure *evacuate(StgClosure *);
 to
   void evacuate(StgClosure **);
 
 So evacuate() itself writes the source pointer, rather than the
 caller.  This is slightly cleaner, and avoids a few memory writes:
 sometimes evacuate() doesn't move the object, and in these cases the
 source pointer doesn't need to be written.  It doesn't have a
 measurable impact on performance, though.
] 
[tiny optimisation in evacuate()
Simon Marlow <simonmar@microsoft.com>**20071031130935] 
[Initial parallel GC support
Simon Marlow <simonmar@microsoft.com>**20071031130718
 
 eg. use +RTS -g2 -RTS for 2 threads.  Only major GCs are parallelised,
 minor GCs are still sequential. Don't use more threads than you
 have CPUs.
 
 It works most of the time, although you won't see much speedup yet.
 Tuning and more work on stability still required.
] 
[Refactoring of the GC in preparation for parallel GC
Simon Marlow <simonmar@microsoft.com>**20071031125136
   
 This patch localises the state of the GC into a gc_thread structure,
 and reorganises the inner loop of the GC to scavenge one block at a
 time from global work lists in each "step".  The gc_thread structure
 has a "workspace" for each step, in which it collects evacuated
 objects until it has a full block to push out to the step's global
 list.  Details of the algorithm will be on the wiki in due course.
 
 At the moment, THREADED_RTS does not compile, but the single-threaded
 GC works (and is 10-20% slower than before).
] 
[also count total dispatch stalls in +RTS -as
Simon Marlow <simonmar@microsoft.com>**20071030144509] 
[move GetRoots() to GC.c
Simon Marlow <simonmar@microsoft.com>**20071030130052] 
[Sort the mi_deps into a canonical ordering before fingerprinting.
Simon Marlow <marlowsd@gmail.com>**20080617152117
 This may help do a little less recompilation with make (GHC's --make
 is unaffected).
] 
[Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
Simon Marlow <marlowsd@gmail.com>**20080617151530] 
[Fix an example where we weren't doing case-of-case when we should
Simon Marlow <marlowsd@gmail.com>**20080617123510
 That's 1 line of new code and 38 lines of new comments
] 
[Tweak a comment to talk about UnboxedTuples rather than -fglasgow-exts
Ian Lynagh <igloo@earth.li>**20080616225248] 
[Suggest -XRelaxedPolyRec rather than -fglasgow-exts in an error message
Ian Lynagh <igloo@earth.li>**20080616213438] 
[Fix the splitter with perl 5.10; patch from Audrey Tang
Ian Lynagh <igloo@earth.li>**20080611122837] 
[Remove some build system code that can't happen
Ian Lynagh <igloo@earth.li>**20080616181425
 ghc_ge_601 is no longer defined
] 
[Fix Trac #2358: 1-tuples in Template Haskell
simonpj@microsoft.com**20080614123939
 
 fons points out that TH was treating 1-tuples inconsistently.  Generally
 we make a 1-tuple into a no-op, so that (e) and e are the same.  But
 I'd forgotten to do this for types.
 
 It is possible to have a type with an un-saturated 1-tuple type
 constructor. That now elicits an error message when converting from
 TH syntax to Hs syntax
 
] 
[Fix nasty Simplifier scoping bug
simonpj@microsoft.com**20080614023937
 
 This bug was somehow tickled by the new code for desugaring
 polymorphic bindings, but the bug has been there a long time.  The
 bindings floated out in simplLazyBind, generated by abstractFloats,
 were getting processed by postInlineUnconditionally. But that was
 wrong because part of their scope has already been processed.
 
 That led to a bit of refactoring in the simplifier.  See comments
 with Simplify.addPolyBind.
 
 In principle this might happen in 6.8.3, but in practice it doesn't seem
 to, so probably not worth merging.
 
] 
[CoreLint should check for out-of-scope worker
simonpj@microsoft.com**20080614023809] 
[More commandline flag improvements
Ian Lynagh <igloo@earth.li>**20080616142917
 * Allow -ffoo flags to be deprecated
 * Mark some -ffoo flags as deprecated
 * Avoid using deprecated flags in error messages, in the build system, etc
 * Add a flag to en/disable the deprecated flag warning
] 
[Remove an ifdef
Ian Lynagh <igloo@earth.li>**20080616111114] 
[Add ghc_ge_609
Ian Lynagh <igloo@earth.li>**20080615134636] 
[Remove an ifdef
Ian Lynagh <igloo@earth.li>**20080615133743] 
[Don't compile Cabal with -cpp -fffi
Ian Lynagh <igloo@earth.li>**20080615010826
 Instead rely on the sources having suitable pragmas
] 
[Remove a typo
Ian Lynagh <igloo@earth.li>**20080615005956] 
[Allow -X flags to be deprecated, and deprecate RecordPuns; fixes #2320
Ian Lynagh <igloo@earth.li>**20080615000041] 
[Fix a warning in DsForeign
Ian Lynagh <igloo@earth.li>**20080614215346] 
[Fix warnings in Linker
Ian Lynagh <igloo@earth.li>**20080614212627] 
[Use the right set of linkables in unload_wkr
Ian Lynagh <igloo@earth.li>**20080614211539] 
[Use bracket_ rather than bracket in withExtendedLinkEnv
Ian Lynagh <igloo@earth.li>**20080614211414] 
[Remove more ifdeffery
Ian Lynagh <igloo@earth.li>**20080614205131] 
[Remove more ifdeffery
Ian Lynagh <igloo@earth.li>**20080614204234] 
[Remove more ifdeffery
Ian Lynagh <igloo@earth.li>**20080614203215] 
[Remove some ifdeffery
Ian Lynagh <igloo@earth.li>**20080614202640] 
[Fix some warnings in ParsePkgConf
Ian Lynagh <igloo@earth.li>**20080614201558] 
[Fix warnings in DsForeign
Ian Lynagh <igloo@earth.li>**20080614200820] 
[Fix warnings in PprCore
Ian Lynagh <igloo@earth.li>**20080614195611] 
[Fix warnings in Main
Ian Lynagh <igloo@earth.li>**20080614194120] 
[Set -Wall in compiler/Makefile.ghcbin
Ian Lynagh <igloo@earth.li>**20080614193536] 
[Use maybePrefixMatch in StaticFlags rather than redefining it ourselves
Ian Lynagh <igloo@earth.li>**20080614190505] 
[Use -fforce-recomp rather than -no-recomp
Ian Lynagh <igloo@earth.li>**20080614181740] 
[Tweak the deprecated flags warning
Ian Lynagh <igloo@earth.li>**20080614174850] 
[Use -O0 rather than -Onot in compiler/Makefile
Ian Lynagh <igloo@earth.li>**20080614171256] 
[Don't use -recomp whem compiling GHC, as it's the default (and now deprecated)
Ian Lynagh <igloo@earth.li>**20080614165649] 
[Use -fforce-recomp rather than -no-recomp when building genapply
Ian Lynagh <igloo@earth.li>**20080614161927] 
[Get -recomp and -no-recomp the right way round
Ian Lynagh <igloo@earth.li>**20080614161851] 
[Fix conversions between Double/Float and simple-integer
Ian Lynagh <igloo@earth.li>**20080614152337] 
[Use unified diff
Ian Lynagh <igloo@earth.li>**20080603172947] 
[Use -O0 rather than the deprecated -Onot
Ian Lynagh <igloo@earth.li>**20080614152131] 
[Handle errors in an OPTIONS pragma when preprocessing
Ian Lynagh <igloo@earth.li>**20080614145840] 
[Allow flags to be marked as deprecated
Ian Lynagh <igloo@earth.li>**20080614144829] 
[eta-reduce a Monad type synonym, so we can use it non-applied
Ian Lynagh <igloo@earth.li>**20080614142056] 
[Use a proper datatype, rather than pairs, for flags
Ian Lynagh <igloo@earth.li>**20080614133848] 
[Fix warnings in DriverMkDepend
Ian Lynagh <igloo@earth.li>**20080614133224] 
[Fix whitespace in DriverMkDepend
Ian Lynagh <igloo@earth.li>**20080614132914] 
[Fix the last warnings in DynFlags
Ian Lynagh <igloo@earth.li>**20080614125033
 We might want to put the values initSysTools finds in their own type,
 rather than having them flattened into DynFlags
] 
[Pass dynflags down to loadPackageConfig rather than using defaultDynFlags
Ian Lynagh <igloo@earth.li>**20080614123427] 
[Make initSysTools use the dflags it is passed, rather than defaultDynFlags
Ian Lynagh <igloo@earth.li>**20080614122834] 
[Remove some unused bindings from HaddockLex
Ian Lynagh <igloo@earth.li>**20080614122057] 
[Pass dynflags down through to pragState
Ian Lynagh <igloo@earth.li>**20080614121156
 so we no longer need to use defaultDynFlags there
] 
[Whitespace only in DynFlags
Ian Lynagh <igloo@earth.li>**20080614120316] 
[Define and use is_decdigit for lexing escapes; fixes trac #2304
Ian Lynagh <igloo@earth.li>**20080613203553] 
[Make SysTools warning-free
Ian Lynagh <igloo@earth.li>**20080612141738] 
[Remove some CPPery with the help of a new value isWindowsHost in Util
Ian Lynagh <igloo@earth.li>**20080612002711
 isWindowsHost is True iff mingw32_HOST_OS is defined.
] 
[Remove unused FFI import GetTempPathA (getTempPath)
Ian Lynagh <igloo@earth.li>**20080612001936] 
[Whitespace only, in SysTools
Ian Lynagh <igloo@earth.li>**20080611233129] 
[Get rid of the last remnants of PROJECT_DIR
Ian Lynagh <igloo@earth.li>**20080611230433
 This disappeared when we stopped being "fptools" and became just "ghc"
] 
[Tell the testsuite how many threads we want it to use when validating
Ian Lynagh <igloo@earth.li>**20080611155456] 
[Fix warnings in LexCore
Ian Lynagh <igloo@earth.li>**20080610125317] 
[Fix warnings in Ctype
Ian Lynagh <igloo@earth.li>**20080610124223] 
[Fix warnings in TcPat
Ian Lynagh <igloo@earth.li>**20080610123343] 
[Fix warnings in TcEnv
Ian Lynagh <igloo@earth.li>**20080610121819] 
[Fix warnings in TcRnTypes
Ian Lynagh <igloo@earth.li>**20080606234704] 
[Fix warnings in TcTyClsDecls
Ian Lynagh <igloo@earth.li>**20080606213239] 
[Fix warnings in TcHsType
Ian Lynagh <igloo@earth.li>**20080606204854] 
[Fix warnings in TcSimplify
Ian Lynagh <igloo@earth.li>**20080606202435] 
[Fix warnings in TcRules
Ian Lynagh <igloo@earth.li>**20080606200800] 
[Fix warnings in TcInstDcls
Ian Lynagh <igloo@earth.li>**20080606200534] 
[Fix warnings in TcMType
Ian Lynagh <igloo@earth.li>**20080606194931] 
[Fix warnings in TcForeign
Ian Lynagh <igloo@earth.li>**20080606192610] 
[Fix warnings in TcClassDcl
Ian Lynagh <igloo@earth.li>**20080606191413] 
[Fix a bug in eqPatType
Ian Lynagh <igloo@earth.li>**20080606184631
 One of the conditions we were checking was
     t2 `eqPatLType` t2
 rather than
     t1 `eqPatLType` t2
] 
[Show whether DEBUG is on in ghc --info
Ian Lynagh <igloo@earth.li>**20080606184415] 
[Use -fno-toplevel-reorder with gcc >= 4.2 on sparc-solaris; fixes trac #2312
Ian Lynagh <igloo@earth.li>**20080606133817] 
[Teach configure about amd64/NetBSD; fixes trac #2348
Ian Lynagh <igloo@earth.li>**20080606130955] 
[Enable the mangler for netbsd/amd64; fixes trac #2347
Ian Lynagh <igloo@earth.li>**20080606130706] 
[Improve documentation for standalone deriving
simonpj@microsoft.com**20080606122459] 
[Fix Trac #2334: validity checking for type families
simonpj@microsoft.com**20080606121730
 
 When we deal with a family-instance declaration (TcTyClsDecls.tcFamInstDecl)
 we must check the TyCon for validity; for example, that a newtype has exactly
 one field.  That is done all-at-once for normal declarations, and had been
 forgotten altogether for families.
 
 I also refactored the interface to tcFamInstDecl1 slightly.
 
 
 A slightly separate matter: if there's an error in family instances
 (e.g. overlap) we get a confusing error message cascade if we attempt to
 deal with 'deriving' clauses too; this patch bales out earlier in that case.
 
 
 Another slightly separate matter: standalone deriving for family 
 instances can legitimately have more specific types, just like normal
 data decls. For example
    
    data instance F [a] = ...
    deriving instance (Eq a, Eq b) => Eq (F [(a,b)])
 
 So tcLookupFamInstExact can a bit more forgiving than it was.
  
 
] 
[Vital follow-up to fix of Trac #2045
simonpj@microsoft.com**20080605165434
 
 Sorry -- my 'validate' didn't work right and I missed a trick.
 This patch must accompany
 
  * Fix Trac #2045: use big-tuple machiney for implication constraints
 
 
] 
[Fix Trac #2045: use big-tuple machiney for implication constraints
simonpj@microsoft.com**20080605145617] 
[Comments only
simonpj@microsoft.com**20080605134743] 
[Desugar multiple polymorphic bindings more intelligently
simonpj@microsoft.com**20080605124423
 
 Occasionally people write very large recursive groups of definitions. 
 In general we desugar these to a single definition that binds tuple,
 plus lots of tuple selectors.  But that code has quadratic size, which
 can be bad.
 
 This patch adds a new case to the desugaring of bindings, for the
 situation where there are lots of polymorphic variables, but no
 dictionaries.  (Dictionaries force us into the general case.)
 
 See Note [Abstracting over tyvars only].  
 
 The extra behaviour can be disabled with the (static) flag
 
 	-fno-ds-multi-tyvar
 
 in case we want to experiment with switching it on or off.  There is
 essentially-zero effect on the nofib suite though.
 
 I was provoked into doing this by Trac #1136.  In fact I'm not sure
 it's the real cause of the problem there, but it's a good idea anyway.
 
] 
[Add non-recursive let-bindings for types
simonpj@microsoft.com**20080605123612
 
 This patch adds to Core the ability to say
 	let a = Int in <body>
 where 'a' is a type variable.  That is: a type-let.
 See Note [Type let] in CoreSyn.
 
 * The binding is always non-recursive
 * The simplifier immediately eliminates it by substitution 
 
 So in effect a type-let is just a delayed substitution.  This is convenient
 in a couple of places in the desugarer, one existing (see the call to
 CoreTyn.mkTyBind in DsUtils), and one that's in the next upcoming patch.
 
 The first use in the desugarer was previously encoded as
 	(/\a. <body>) Int
 rather that eagerly substituting, but that was horrid because Core Lint
 had do "know" that a=Int inside <body> else it would bleat.  Expressing
 it directly as a 'let' seems much nicer.
 
 
] 
[Fix Trac #2339: reify (mkName "X")
simonpj@microsoft.com**20080604150207] 
[Fix Trac #2310: result type signatures are not supported any more
simonpj@microsoft.com**20080604145115
 
 We have not supported "result type signatures" for some time, but 
 using one in the wrong way caused a crash.  This patch tidies it up.
 
] 
[Sort modules and packages in debug print (reduce test wobbles)
simonpj@microsoft.com**20080604144049
 
 This affects only the debug print TcRnDriver.pprTcGblEnv, and eliminates
 test-suite wobbling (affected me for tc168, tc231) 
 
] 
[Fix #2334: tyvar binders can have Names inside (equality predicates)
Simon Marlow <marlowsd@gmail.com>**20080604113002] 
[fix pointer tagging bug in removeIndirections (fixes stableptr003)
Simon Marlow <marlowsd@gmail.com>**20080604105458] 
[Fix unreg build
Simon Marlow <marlowsd@gmail.com>**20080604093653] 
[MacOS installer: don't quote XCODE_EXTRA_CONFIGURE_ARGS
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604021321] 
[MacOS installer: terminate build on intermediate failure
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604020155] 
[tiny tweak to the stack squeezing heuristic (fixes cg060)
Simon Marlow <marlowsd@gmail.com>**20080604091244] 
[Fix Trac #2331 (error message suggestion)
simonpj@microsoft.com**20080603134645] 
[Improve documentation of RULES
simonpj@microsoft.com**20080530155137] 
[Improve documentation for INLINE pragma
simonpj@microsoft.com**20080530133307] 
[Shorten debug messages
simonpj@microsoft.com**20080603121208] 
[Fix minor layout issue (whitespace only)
simonpj@microsoft.com**20080602130611] 
[add debugDumpTcRn and use it for some debugging output
Simon Marlow <marlowsd@gmail.com>**20080603112030] 
[Turn "NOTE: Simplifier still going..." message into a WARN()
Simon Marlow <marlowsd@gmail.com>**20080603105431] 
[remove the "expanding to size" messages
Simon Marlow <marlowsd@gmail.com>**20080603094546] 
[MacOS installer: clean up Xcode project spec
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080602070705] 
[New flag: -dno-debug-output
Simon Marlow <marlowsd@gmail.com>**20080603082924
 From the docs:
    <para>Suppress any unsolicited debugging output.  When GHC
      has been built with the <literal>DEBUG</literal> option it
      occasionally emits debug output of interest to developers.
      The extra output can confuse the testing framework and
      cause bogus test failures, so this flag is provided to
      turn it off.</para>
] 
[-no-link-chk has been a no-op since at least 6.0; remove it
Simon Marlow <marlowsd@gmail.com>**20080603082041] 
[-no-link-chk is a relic
Simon Marlow <marlowsd@gmail.com>**20080603081904] 
[Fix validate: -Werror bug in patch "Replacing copyins and copyouts..."
Simon Marlow <marlowsd@gmail.com>**20080602144945] 
[Missing import in C-- parser
dias@eecs.harvard.edu**20080602103156] 
[TAG 2008-06-01
Ian Lynagh <igloo@earth.li>**20080601155241] 
[Replacing copyins and copyouts with data-movement instructions
dias@eecs.harvard.edu**20080529160545
 
 o Moved BlockId stuff to a new file to avoid module recursion
 o Defined stack areas for parameter-passing locations and spill slots
 o Part way through replacing copy in and copy out nodes
   - added movement instructions for stack pointer
   - added movement instructions for call and return parameters
     (but not with the proper calling conventions)
 o Inserting spills and reloads for proc points is now procpoint-aware
   (it was relying on the presence of a CopyIn node as a proxy for
    procpoint knowledge)
 o Changed ZipDataflow to expect AGraphs (instead of being polymorphic in
    the type of graph)
] 
[FIX #2231: add missing stack check when applying a PAP
Simon Marlow <marlowsd@gmail.com>**20080602143726
 This program makes a PAP with 203 arguments :-)
] 
[-fforce-recomp should be unnecessary for Main.hs in stage[23] now
Simon Marlow <marlowsd@gmail.com>**20080602133801] 
[Fix a bug to do with recursive modules in one-shot mode
Simon Marlow <marlowsd@gmail.com>**20080530145349
 The problem was that when loading interface files in checkOldIface, we
 were not passing the If monad the mutable variable for use when
 looking up entities in the *current* module, with the result that the
 knots wouldn't be tied properly, and some instances of TyCons would
 be incorrectly abstract.
 
 This bug has subtle effects: for example, recompiling a module without
 making any changes might lead to a slightly different result (noticed
 due to the new interface-file fingerprints).  The bug doesn't lead to
 any direct failures that we're aware of.
] 
[disable SAT for now (see #2321)
Simon Marlow <marlowsd@gmail.com>**20080530112043] 
[Add dph packages to build system
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080530050340] 
[PackageMaker target depends on deployment target
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080529041820] 
[hs_add_root: use use rts_lock()/rts_unlock() for a bit of extra safety
Simon Marlow <marlowsd@gmail.com>**20080529111023] 
[Make it less fatal to not call ioManagerStart()
Simon Marlow <marlowsd@gmail.com>**20080529110957
 For clients that forget to do hs_add_root()
] 
[Cmm back end upgrades
dias@eecs.harvard.edu**20080529094827
 
 Several changes in this patch, partially bug fixes, partially new code:
 o bug fixes in ZipDataflow
    - added some checks to verify that facts converge
    - removed some erroneous checks of convergence on entry nodes
    - added some missing applications of transfer functions
 o changed dataflow clients to use ZipDataflow, making ZipDataflow0 obsolete
 o eliminated DFA monad (no need for separate analysis and rewriting monads with ZipDataflow)
 o started stack layout changes
    - no longer generating CopyIn and CopyOut nodes (not yet fully expunged though)
    - still not using proper calling conventions
 o simple new optimizations:
    - common block elimination
       -- have not yet tried to move the Adams opt out of CmmProcPointZ
    - block concatenation
 o piped optimization fuel up to the HscEnv
    - can be limited by a command-line flag
    - not tested, and probably not yet properly used by clients
 o added unique supply to FuelMonad, also lifted unique supply to DFMonad
] 
[FIX BUILD with GHC 6.4.x
Simon Marlow <marlowsd@gmail.com>**20080529132544] 
[make framework-pkg needs to cope with missing DSTROOT
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080527113007] 
[when linking, ignore unknown .reloc section that appeared in gcc 3.4.5(?)
dias@eecs.harvard.edu**20080528121450] 
[TAG 2008-05-28
Ian Lynagh <igloo@earth.li>**20080528003600] 
[FIX #1970: ghci -hide-all-packages should work
Simon Marlow <marlowsd@gmail.com>**20080528154528] 
[Use MD5 checksums for recompilation checking (fixes #1372, #1959)
Simon Marlow <marlowsd@gmail.com>**20080528125258
 
 This is a much more robust way to do recompilation checking.  The idea
 is to create a fingerprint of the ABI of an interface, and track
 dependencies by recording the fingerprints of ABIs that a module
 depends on.  If any of those ABIs have changed, then we need to
 recompile.
 
 In bug #1372 we weren't recording dependencies on package modules,
 this patch fixes that by recording fingerprints of package modules
 that we depend on.  Within a package there is still fine-grained
 recompilation avoidance as before.
 
 We currently use MD5 for fingerprints, being a good compromise between
 efficiency and security.  We're not worried about attackers, but we
 are worried about accidental collisions.
 
 All the MD5 sums do make interface files a bit bigger, but compile
 times on the whole are about the same as before.  Recompilation
 avoidance should be a bit more accurate than in 6.8.2 due to fixing
 #1959, especially when using -O.
] 
[don't make -ddump-if-trace imply -no-recomp
Simon Marlow <marlowsd@gmail.com>**20080523140719] 
[Simplify specifying that some libraries need to use the build.* rules
Ian Lynagh <igloo@earth.li>**20080526160218
 Now you just add them to SUBDIRS_BUILD instead of SUBDIRS.
] 
[Cope with libraries in libraries/foo/bar rather than just libraries/foo
Ian Lynagh <igloo@earth.li>**20080526135612
 You need to use the build.* rules rather than the make.* rules, though.
] 
[Fix fwrite$UNIX2003 symbols when cross-compiling for Tiger
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080526073546
 - When compiling with -mmacos-deployment-target=10.4, we need 
   --no-builtin-fprintf, as the use of GCC's builtin function 
   optimisation for fprintf together with #include "PosixSource" in the 
   RTS leads to the use of fwrite$UNIX2003 (with GCC 4.0.1 on Mac OS X 
   10.5.2).
] 
[document :source command for GHCi, point to Haskell wiki
claus.reinke@talk21.com**20080501205252
 
 	as discussed in this thread:
 	http://www.haskell.org/pipermail/glasgow-haskell-users/2008-April/014614.html
 
] 
[Do some stack fiddling in stg_unblockAsyncExceptionszh_ret
Ian Lynagh <igloo@earth.li>**20080523032508
 This fixes a segfault in #1657
] 
[Fix warnings in TcTyDecls
Ian Lynagh <igloo@earth.li>**20080521004251] 
[Fix whitespace in TcTyDecls
Ian Lynagh <igloo@earth.li>**20080521003935] 
[clarify that unsafeCoerce# :: Float# -> Int# is not safe (see #2209)
Simon Marlow <marlowsd@gmail.com>**20080527090244] 
[Ensure runhaskell is rebuild in stage2
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080522044900] 
[Fix Trac #1061: refactor handling of default methods
simonpj@microsoft.com**20080521130028
 
 In an instance declaration, omitted methods get a definition that
 uses the default method.  We used to generate source code and feed it
 to the type checker.  But tc199 shows that is a bad idea -- see
 Note [Default methods in instances] in TcClassDcl.
 
 So this patch refactors to insteadl all us to generate the 
 *post* typechecked code directly for default methods.
 
] 
[Comment typo
simonpj@microsoft.com**20080521130016] 
[Fix Trac #2292: improve error message for lone signatures
simonpj@microsoft.com**20080520143048
 
 Refactoring reduces code and improves error messages
 
] 
[Fix Trac #2293: improve error reporting for duplicate declarations
simonpj@microsoft.com**20080520143006] 
[Tuples cannot contain unboxed types
simonpj@microsoft.com**20080515115332
 
 This bug allowed, for example
 
   f = let x = ( 1#, 'x' ) in x
 
 which is ill-typed because you can't put an unboxed value in a tuple.
 Core Lint fails on this program.
 
 The patch makes the program be rejcted up-front.
 
 
] 
[Make TcType warning-free
Ian Lynagh <igloo@earth.li>**20080520214852] 
[Teach push-all how to send as well
Ian Lynagh <igloo@earth.li>**20080517142112] 
[Make TcUnify warning-free
Ian Lynagh <igloo@earth.li>**20080519111100] 
[Fix a comment typo
Ian Lynagh <igloo@earth.li>**20080519094126] 
[Detab TcUnify
Ian Lynagh <igloo@earth.li>**20080519094056] 
[FIX #1955: confusion between .exe.hp and .hp suffixes for heap profiles
Simon Marlow <simonmar@microsoft.com>**20080519125101
 Now we use <prog>.hp and <prog>.prof consistently.
] 
[sort the output of :show packages
Simon Marlow <marlowsd@gmail.com>**20080520084221] 
[Add -Odph
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080520031913
 
 This is the optimisation level recommended when compiling DPH programs. At the
 moment, it is equivalent to -O2 -fno-method-sharing -fdicts-cheap
 -fmax-simplifier-iterations20 -fno-spec-constr-threshold.
] 
[Make -f[no-]method-sharing a dynamic flag
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080520025956
 
 We want -Odph to be a dynamic flag and that should imply -fno-method-sharing.
 This doesn't add a lot of complexity.
] 
[documentation for ZipDataflow
Norman Ramsey <nr@eecs.harvard.edu>**20080520032454] 
[Make TcBinds warning-free
Ian Lynagh <igloo@earth.li>**20080518133140] 
[Detab TcBinds
Ian Lynagh <igloo@earth.li>**20080518125606] 
[Move the register-inplace special-case stuff into the ghc-prim package
Ian Lynagh <igloo@earth.li>**20080517002224] 
[Libraries Makefile Hack for ndp
Ian Lynagh <igloo@earth.li>**20080516235818
 We use the "build" rather than "make" target
] 
[When building libraries, we need to register them if we use the "build" targets
Ian Lynagh <igloo@earth.li>**20080516235352
 We currently only use the "make" targets, which already register the package.
] 
[Add dummy LICENSE file to make Cabal go through
Tim Chevalier <chevalier@alum.wellesley.edu>**20080517025351
 
 Add a LICENSE file that just points to the GHC license.
] 
[Improve the treatment of 'seq' (Trac #2273)
simonpj@microsoft.com**20080516085149
 
 Trac #2273 showed a case in which 'seq' didn't cure the space leak
 it was supposed to.  This patch does two things to help
 
 a) It removes a now-redundant special case in Simplify, which
    switched off the case-binder-swap in the early stages.  This
    isn't necessary any more because FloatOut has improved since
    the Simplify code was written.  And switching off the binder-swap
    is harmful for seq.
 
 However fix (a) is a bit fragile, so I did (b) too:
 
 b) Desugar 'seq' specially.  See Note [Desugaring seq (2)] in DsUtils
    This isn't very robust either, since it's defeated by abstraction, 
    but that's not something GHC can fix; the programmer should use
    a let! instead.
 
] 
[don't rebuild PrimEnv if genprimopcode and/or primops.txt don't exist
Tim Chevalier <chevalier@alum.wellesley.edu>**20080515230405
 
 This helps if, for example, you want to build the Core tools on a machine that doesn't have a GHC build tree, and have a pre-existing copy of PrimEnv.hs.
] 
[Fix a division-by-zero when +RTS -V0 is given
Ian Lynagh <igloo@earth.li>**20080426184355
 In delayzh_fast we act as if tickInterval was 50, not 0.
] 
[update the "perf" settings to match the default
Simon Marlow <marlowsd@gmail.com>**20080520080535] 
[use -O2 for libraries and stage2 compiler by default
Simon Marlow <marlowsd@gmail.com>**20080520080525] 
[bump GHC's maximum stack size to 64Mb (see #2002)
Simon Marlow <marlowsd@gmail.com>**20080519125333] 
[FIX #2257: timer_settime() hangs during configure
Simon Marlow <marlowsd@gmail.com>**20080516130045
 On a 2.6.24 Linux kernel, it appears that timer_settime() for
 CLOCK_REALTIME is sometimes hanging for a random amount of time when
 given a very small interval (we were using 1ns).  Using 1ms seems to
 be fine.  Also I installed a 1-second timeout to catch hangs in the
 future.
] 
[validate fix: eliminate a warning
Simon Marlow <marlowsd@gmail.com>**20080516095947] 
[validate fix: eliminate a warning on non-Windows
Simon Marlow <marlowsd@gmail.com>**20080515142518] 
[Cabalize ext-core tools
Tim Chevalier <chevalier@alum.wellesley.edu>**20080514235341
 
 I cabalized the ext-core tools, so now they can be built as
 a library. The driver program has to be built separately.
 
 Also updated genprimopcode to reflect the new module hierarchy
 for the Core tools.
] 
[Remove Distribution.Compat.Char from compat again
Ian Lynagh <igloo@earth.li>**20080514125152
 Cabal now does this differently.
] 
[Fix an assertion
Ian Lynagh <igloo@earth.li>**20080426110115
 We were checking that a pointer was correctly tagged, but after we had
 untagged it.
] 
[Fix sin/cos/tan on x86; trac #2059
Ian Lynagh <igloo@earth.li>**20080503000841
 If the value is > 2^63 then we need to work out its value mod 2pi,
 and apply the operation to that instead.
] 
[FIX #1288: GHCi wasn't adding the @n suffix to stdcalls on Windows
Simon Marlow <simonmar@microsoft.com>**20080514092742] 
[FIX #2276: foreign import stdcall "&foo" doesn't work
Simon Marlow <simonmar@microsoft.com>**20080514082422
 This turned out not to be too hard, just a matter of figuring out the
 correct argument list size by peeking inside FunPtr's type argument,
 and in the C backend we have to emit an appropriate prototype for the label.
] 
[Use -fffi when compiling Cabal stuff with the bootstrapping compiler
Ian Lynagh <igloo@earth.li>**20080513211128] 
[Use zipLazy from Util in VectType, rather than defining our own lazy_zip
Ian Lynagh <igloo@earth.li>**20080513202154] 
[Add a type signature to help GHC 6.4
Ian Lynagh <igloo@earth.li>**20080513200641
 Needed in lieu of -XRelaxedPolyRec
] 
[Rewrite zipLazy to be warning-free for GHC 6.4
Ian Lynagh <igloo@earth.li>**20080513193901] 
[Add Distribution.Compat.Char to compat
Ian Lynagh <igloo@earth.li>**20080513192243] 
[Add Distribution.Compat.Exception to the compat library
Ian Lynagh <igloo@earth.li>**20080513190022] 
[Fix spelling of nonexistEnt
Ian Lynagh <igloo@earth.li>**20080513135158] 
[FIX #2014: Template Haskell w/ mutually recursive modules
Simon Marlow <marlowsd@gmail.com>**20080515134515
 Try to load interfaces in getLinkDeps
] 
[Document ghc-pkg find-module, substring matching, and multi-field selection
claus.reinke@talk21.com**20080501152700
 
 	Documentation and examples taken from 
 	- ghc-pkg/Main.hs usageHeader
 	- patch: FIX 1463 (implement 'ghc-pkg find-module')
 	- patch: FIX #1839, #1463, by supporting ghc-pkg bulk queries 
 			with substring matching
 
 
] 
[Fix the Windows build; the new Cabal doesn't like --prefix=/foo
Ian Lynagh <igloo@earth.li>**20080512170507] 
[Pull the configure options out into a variable in libraries/Makefile
Ian Lynagh <igloo@earth.li>**20080511203932] 
[typo in rules example. spotted by vixey@#haskell
Don Stewart <dons@galois.com>**20080512182435] 
[FIX #1641: don't add auto sccs to compiler-generated bindings
Simon Marlow <marlowsd@gmail.com>**20080513084400
 I also changed con2tag_Foo and related names to follow the standard
 practice of prefixing $ to compiler-generated names, so now we have
 $con2tag_Foo.
] 
[Fixes to via-C prototype generation (FIX BUILD on Windows)
Simon Marlow <simonmar@microsoft.com>**20080512110643
   
 Previously we declared all external labels with type StgWord[],
 because the same label might be used at different types in the same
 file, e.g. if there are multiple foreign import declarations for the
 same function.  However, we have to declare called functions with the
 right type on Windows, because this is the only way to make the
 compiler add the appropriate '@n' suffix for stdcall functions.
 
 Related to this is the reason we were getting mangler complaints
 (epilogue mangling) when compiling the RTS with -fvia-C.  The function
 barf() doesn't return, but we had lost that information by declaring
 our own prototypes, and so gcc was generating extra code after the
 call to barf().
 
 For more details see
 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/PprC
] 
[doc tweak
Simon Marlow <marlowsd@gmail.com>**20080512104030] 
[FIX #2234: don't generate <prog>.prof unless we're going to put something in it
Simon Marlow <marlowsd@gmail.com>**20080512104020] 
[FIX #1861: floating-point constants for infinity and NaN in via-C
Simon Marlow <marlowsd@gmail.com>**20080512103847] 
[Tell the mangler how to mangle for amd64/freebsd; fixes trac #2072
Ian Lynagh <igloo@earth.li>**20080511182011] 
[Follow distPref changes in Cabal
Ian Lynagh <igloo@earth.li>**20080511144539] 
[Follow Cabal changes in ghci/Linker
Ian Lynagh <igloo@earth.li>**20080511005253] 
[Follow changes in Cabal
Ian Lynagh <igloo@earth.li>**20080510225552] 
[Remove redundant imports from Inst
Ian Lynagh <igloo@earth.li>**20080510220452] 
[Fix a warning when DEBUG is not on
Ian Lynagh <igloo@earth.li>**20080510220329] 
[Update compat for changes to Cabal
Ian Lynagh <igloo@earth.li>**20080510211901] 
[Update ghc-pkg to follow Cabal changes
Ian Lynagh <igloo@earth.li>**20080510211035] 
[Make TcGenDeriv warning-free
Ian Lynagh <igloo@earth.li>**20080506210858] 
[Make TcMatches warning-free
Ian Lynagh <igloo@earth.li>**20080506204254] 
[Make TcHsSyn warning-free
Ian Lynagh <igloo@earth.li>**20080506201829] 
[Make TcRnMonad warning-free
Ian Lynagh <igloo@earth.li>**20080506193359] 
[Make TcDefaults warning-free
Ian Lynagh <igloo@earth.li>**20080506191728] 
[Make TcArrows warning-free
Ian Lynagh <igloo@earth.li>**20080506191141] 
[TcSplice is now mostly warning-free
Ian Lynagh <igloo@earth.li>**20080506180618
 There are some unused things, but I am not sure if the intention is that
 they will be used in the future. Names implied they were related to
 splicing in patterns and types.
] 
[Make Inst warning-free
Ian Lynagh <igloo@earth.li>**20080506173842] 
[Add a panic for lookupPred EqPred
Ian Lynagh <igloo@earth.li>**20080506171749
 It's possible that returning Nothing was the right thing to do here,
 but the comment and variable name indicated that it was written for
 implicit parameters, so make it a panic for now just in case.
] 
[Make FamInst warning-free
Ian Lynagh <igloo@earth.li>**20080506171031] 
[Fix context for fwd_pure_anal to match that of forward_sol
simonpj@microsoft.com**20080507072825] 
[FIX validate: Fix warnings in new literal code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080507035417
 
 Validate uses -Werror so the warnings broke it.
] 
[Vectorise even with -O0
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080507020055] 
[Remove ilxGen; part of trac #2243
Ian Lynagh <igloo@earth.li>**20080506104456] 
[Remove javaGen; part of trac #2243
Ian Lynagh <igloo@earth.li>**20080506104307] 
[Add a comment about why DsMeta needs the warning kludge
Ian Lynagh <igloo@earth.li>**20080506103506] 
[Fix Trac #2246; overhaul handling of overloaded literals
simonpj@microsoft.com**20080506102551
 
 The real work of fixing Trac #2246 is to use shortCutLit in
 MatchLit.dsOverLit, so that type information discovered late in the
 day by the type checker can still be exploited during desugaring.
 
 However, as usual I found myself doing some refactoring along the
 way, to tidy up the handling of overloaded literals.   The main
 change is to split HsOverLit into a record, which in turn uses
 a sum type for the three variants.  This makes the code significantly
 more modular.
 
 data HsOverLit id
   = OverLit {
 	ol_val :: OverLitVal, 
 	ol_rebindable :: Bool,		-- True <=> rebindable syntax
 					-- False <=> standard syntax
 	ol_witness :: SyntaxExpr id,	-- Note [Overloaded literal witnesses]
 	ol_type :: PostTcType }
 
 data OverLitVal
   = HsIntegral   !Integer   	-- Integer-looking literals;
   | HsFractional !Rational   	-- Frac-looking literals
   | HsIsString   !FastString 	-- String-looking literals
 
] 
[Fix type signature to work without -XRelaxedPolyRec, and hence earlier GHCs
simonpj@microsoft.com**20080506095817] 
[Eliminate a warning for compiler/basicTypes/OccName.lhs
Thorkil Naur <naur@post11.tele.dk>**20080504191511] 
[External Core tools: add note to README about where to find documentation
Tim Chevalier <chevalier@alum.wellesley.edu>**20080505004603] 
[Some External Core doc fixes
Tim Chevalier <chevalier@alum.wellesley.edu>**20080505003955] 
[External Core tools: track new syntax for newtypes
Tim Chevalier <chevalier@alum.wellesley.edu>**20080505001050
 
 Update External Core tools to reflect new syntax for
 newtypes. (Notice that the typechecker is 90 lines shorter!)
 
 Also: improve dependency-finding, miscellaneous refactoring.
] 
[Improve External Core newtype syntax
Tim Chevalier <chevalier@alum.wellesley.edu>**20080504230233
 
 I realized that recursive newtypes no longer have to be
 distinguished in the External Core AST, because explicit coercions
 allow the typechecker to typecheck newtypes without ever 
 expanding newtypes. So, now all newtypes in External Core have
 a representation clause. O frabjous day!
 
] 
[Remove a duplicate module import in BuildTyCl
Ian Lynagh <igloo@earth.li>**20080504222023] 
[Make SimplEnv warning-free
Ian Lynagh <igloo@earth.li>**20080504213123] 
[Make SimplUtils warning-free
Ian Lynagh <igloo@earth.li>**20080504212447] 
[Remove a hack for GHC 3.03 in SimplMonad
Ian Lynagh <igloo@earth.li>**20080504205935] 
[Make SimplMonad warning-free
Ian Lynagh <igloo@earth.li>**20080504205630] 
[Make LiberateCase warning-free
Ian Lynagh <igloo@earth.li>**20080504204729] 
[Make FloatOut warning-free
Ian Lynagh <igloo@earth.li>**20080504204058] 
[Make FloatIn warning-free
Ian Lynagh <igloo@earth.li>**20080504202538] 
[Make SetLevels warning-free
Ian Lynagh <igloo@earth.li>**20080504201710] 
[Make Vectorise warning-free
Ian Lynagh <igloo@earth.li>**20080504195430] 
[Remove some dead code from VectType
Ian Lynagh <igloo@earth.li>**20080504194432] 
[Make VectType warning-free
Ian Lynagh <igloo@earth.li>**20080504194335] 
[Make IfaceEnv warning-free
Ian Lynagh <igloo@earth.li>**20080504190944] 
[Make IfaceSyn warning-free
Ian Lynagh <igloo@earth.li>**20080504190710] 
[Make IfaceType warning-free
Ian Lynagh <igloo@earth.li>**20080504183529] 
[Make BuildTyCl warning-free
Ian Lynagh <igloo@earth.li>**20080504182336] 
[Make BinIface warning-free
Ian Lynagh <igloo@earth.li>**20080504182031] 
[Make LoadIface warning-free
Ian Lynagh <igloo@earth.li>**20080504180847] 
[Make MkIface warning-free
Ian Lynagh <igloo@earth.li>**20080504174952] 
[Make TcIface warning-free
Ian Lynagh <igloo@earth.li>**20080504172906] 
[Make StgLint warning-free
Ian Lynagh <igloo@earth.li>**20080504151343] 
[Make CoreToStg warning-free
Ian Lynagh <igloo@earth.li>**20080504145432] 
[Make DsArrows warning-free
Ian Lynagh <igloo@earth.li>**20080504140443] 
[Make DsCCall warning-free
Ian Lynagh <igloo@earth.li>**20080504132635] 
[Make DsMeta almost warning-free
Ian Lynagh <igloo@earth.li>**20080504125742
 GHC claims that OccName is unused, but it is wrong.
] 
[Make MatchLit warning-free
Ian Lynagh <igloo@earth.li>**20080504114848] 
[Add an Outputable EquationInfo instance
Ian Lynagh <igloo@earth.li>**20080504114827] 
[Whitespace only (TcInstDcls)
Ian Lynagh <igloo@earth.li>**20080504111101] 
[Fix the stage 1 build
Ian Lynagh <igloo@earth.li>**20080504011733] 
[Remove unused function mapInScopeSet
Ian Lynagh <igloo@earth.li>**20080503191450] 
[Make part of the parser a bit stricter
Ian Lynagh <igloo@earth.li>**20080502225717] 
[Fix some space-wasting in the Parser
Ian Lynagh <igloo@earth.li>**20080502225645
 (fst x, snd x) => x
] 
[Make ByteCodeGen warning-free
Ian Lynagh <igloo@earth.li>**20080504002527] 
[Tiny code tweak in the definition of io in GhciMonad; no semantic change
Ian Lynagh <igloo@earth.li>**20080503235211] 
[Make GhciMonad warning-free
Ian Lynagh <igloo@earth.li>**20080503235135] 
[Tiny code recatoring in GhciTags
Ian Lynagh <igloo@earth.li>**20080503234539] 
[Make GhciTags warning-free
Ian Lynagh <igloo@earth.li>**20080503234441] 
[Make ObjLink warning-free
Ian Lynagh <igloo@earth.li>**20080503233418] 
[Remove a hack from a time when ghc couldn't do seq
Ian Lynagh <igloo@earth.li>**20080503232832] 
[Make RnExpr warning-free
Ian Lynagh <igloo@earth.li>**20080503232704] 
[Make RnEnv warning-free
Ian Lynagh <igloo@earth.li>**20080503223430] 
[Fix warnings in RnNames
Ian Lynagh <igloo@earth.li>**20080503221512] 
[Make RnBinds warning-free
Ian Lynagh <igloo@earth.li>**20080503213149] 
[Change a mappM to mapM_
Ian Lynagh <igloo@earth.li>**20080503203354] 
[Make RnPat warning-free
Ian Lynagh <igloo@earth.li>**20080503203300] 
[Make RnHsDoc warning-free
Ian Lynagh <igloo@earth.li>**20080503201343] 
[Make RnSource warning-free
Ian Lynagh <igloo@earth.li>**20080503200932] 
[Make RnHsSyn warning-free
Ian Lynagh <igloo@earth.li>**20080503170649] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080503170053] 
[Vectorise polymorphic let bindings
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080504054006] 
[Improve syntax for primitive coercions in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080504024304
 
 Add new syntax in External Core for primitive coercions (trans,
 sym, etc.) rather than wiring their names into the ext-core
 parser.
] 
[Fix External Core interpreter
Tim Chevalier <chevalier@alum.wellesley.edu>**20080503231044
 
 The External Core interpreter works (in a limited sense).
 For details, see the README.
 
 This means we now have a marginally functioning set of
 External Core tools.
 
 The other exciting change is that the test driver (Driver.hs)
 now computes module dependencies automatically instead of
 having a wired-in list of library modules.
] 
[replace hints with kinds in parser as well
Norman Ramsey <nr@eecs.harvard.edu>**20080503224720] 
[replace Cmm 'hint' with 'kind'
Norman Ramsey <nr@eecs.harvard.edu>**20080503224514
 C-- no longer has 'hints'; to guide parameter passing, it
 has 'kinds'.  Renamed type constructor, data constructor, and record
 fields accordingly
] 
[new version of ZipDataflow
Norman Ramsey <nr@eecs.harvard.edu>**20080503224208
 This version combines forward/backard into a type class
 (actually two classes) of analysis and transformation.
 These type classes will always be expanded away at the client,
 so SLPJ may wonder why they exist: it is because the interface
 to this module is already very broad, and by overloading the functions 
 for forward and backward problems, we cut the cognitive load on the
 clients in half.
] 
[minor changes to Cmm left over from September 2007
Norman Ramsey <nr@eecs.harvard.edu>**20080503223452
 Nothing too deep here; primarily tinking with prettyprinting
 and names.  Also eliminated some warnings.  This patch covers
 most (but not all) of the code NR changed at the very end
 of September 2007, just before ICFP hit...
] 
[Make darcs-all act on all repos in libraries/, not just boot/extra libs
Ian Lynagh <igloo@earth.li>**20080502174753] 
[When validating, configure with "--prefix=`pwd`/inst"
Ian Lynagh <igloo@earth.li>**20080502155649
 This means a validate build can be installed locally.
 `pwd`/inst probably won't give a useful value on all platforms (in
 particular there are probably some Windows configurations it doesn't
 work for), but I don't think it will ever make the build fail.
] 
[Improve the unboxed types documentation
Ian Lynagh <igloo@earth.li>**20080430152508
 Mainly adding descriptions of unboxed literals,
] 
[sumP on doubles and int 
keller@cse.unsw.edu.au**20080502031905] 
[Fixed vect decl for sumP, enumfromToP
keller@cse.unsw.edu.au**20080501011824] 
[Missing .0 on float constant.
Don Stewart <dons@galois.com>**20080501000517] 
[Replace C99 exp2f(32) call in __2Int_encodeDouble
Don Stewart <dons@galois.com>**20080430214827
 with constant 4294967296.
 
 exp2f is a C99-ism not availabl everywhere. Replace it
 with its result. Helps building on OpenBSD>
 
] 
[Use panic rather than error in RegLiveness
Ian Lynagh <igloo@earth.li>**20080430131349] 
[Update an error message
Ian Lynagh <igloo@earth.li>**20080430131317
 error "RegisterAlloc.livenessSCCs" -> error "RegLiveness.livenessSCCs"
] 
[Update a panic message
Ian Lynagh <igloo@earth.li>**20080430131021
 It was (panic "RegisterAlloc.joinToTargets"), but had since moved to
 RegAllocLinear.makeRegMovementGraph.
] 
[Remove BitSet, FieldLabel, RegisterAlloc from compiler/package.conf.in
Ian Lynagh <igloo@earth.li>**20080430130251
 The modules no longer exist. Spotted by Marc Weber.
] 
[Improve documentation of RULES pragmas
simonpj@microsoft.com**20080430082431] 
[change topHandlerFastExit to topHandler, so the terminal state gets restored (#2228)
Simon Marlow <simonmar@microsoft.com>**20080429222442] 
[don't turn off stdin/stdout buffering after loading a module with ghc -e (#2228)
Simon Marlow <simonmar@microsoft.com>**20080429222409] 
[FIX #1933: use a better test for timer_create()
Simon Marlow <simonmar@microsoft.com>**20080429212945] 
[Fix Trac #1969: perfomance bug in the specialiser
simonpj@microsoft.com**20080428155711
 
 The specialiser was using a rather brain-dead representation for
 UsageDetails, with much converting from lists to finite maps and
 back.  This patch does some significant refactoring.  It doesn't
 change the representation altogether, but it does eliminate the
 to-and-fro nonsense.
 
 It validates OK, but it's always possible that I have inadvertently
 lost specialisation somewhere, so keep an eye out for any run-time
 performance regressions.
 
 Oh, and Specialise is now warning-free too.
 
] 
[Fix Trac #2238: do not use newtype for a class with equality predicates
simonpj@microsoft.com**20080428134730
 
 See Note [Class newtypes and equality predicates] in this module.
 
] 
[Add :list to ghci's :? help; fixes trac #2217
Ian Lynagh <igloo@earth.li>**20080427190049] 
[Fix an error if an SCC name contains a space; fixes trac #2071
Ian Lynagh <igloo@earth.li>**20080427114808] 
[Fix build on PPC: Add some missing parentheses
Ian Lynagh <igloo@earth.li>**20080427103545] 
[Refactor some code a bit, and improve an error
Ian Lynagh <igloo@earth.li>**20080426011634
 The "magic number mismatch: old/corrupt interface file?" error now tells
 us what we got, and what we expected.
] 
[Whitespace changes only
Ian Lynagh <igloo@earth.li>**20080426010908] 
[Fix the ticky ticky build
Ian Lynagh <igloo@earth.li>**20080425140434
 Include TickyCounters.h in Stg.h if we are doing Ticky Ticky.
] 
[Fix a couple of format strings in Ticky.c
Ian Lynagh <igloo@earth.li>**20080425134725] 
[Comment out some unused code in Ticky.c
Ian Lynagh <igloo@earth.li>**20080425134307] 
[Spelling fixes in glasgow_exts.xml
Samuel Bronson <naesten@gmail.com>**20080415232626
 Also adds a <para></para> element and replaces an occurance of SGML
 with XML...
] 
[Vectorisation of: enumFromTo, div, intSqrt
keller@cse.unsw.edu.au**20080425072421] 
[Fix int64ToInteger 0xFFFFFFFF00000000 on 32bit machine; trac #2223
Ian Lynagh <igloo@earth.li>**20080424131526
 Patch from Mike Gunter.
] 
[Add 123## literals for Word#
Ian Lynagh <igloo@earth.li>**20080423161115] 
[Whitespace changes only
Ian Lynagh <igloo@earth.li>**20080423143553] 
[Added support for vectorising emptyP, squareRoot, combineP
keller@cse.unsw.edu.au**20080424020025] 
[Add back an erroneously removed #include "HsVersions.h"
Ian Lynagh <igloo@earth.li>**20080423110930] 
[Include HsVersions.h where necessary
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080423042820] 
[Make a panic slightly more helpful
Ian Lynagh <igloo@earth.li>**20080422164916] 
[Fix build
Ian Lynagh <igloo@earth.li>**20080422133838] 
[Fix build
Ian Lynagh <igloo@earth.li>**20080422124919] 
[(F)SLIT -> (f)sLit in SimplUtils
Ian Lynagh <igloo@earth.li>**20080422124908] 
[(F)SLIT -> (f)sLit in HsBinds
Ian Lynagh <igloo@earth.li>**20080422122319] 
[(F)SLIT -> (f)sLit in StaticFlags
Ian Lynagh <igloo@earth.li>**20080422122226] 
[Build fixes
Ian Lynagh <igloo@earth.li>**20080422115500] 
[Change the last few (F)SLIT's into (f)sLit's
Ian Lynagh <igloo@earth.li>**20080422114713] 
[FSLIT -> fsLit in PrelNames
Ian Lynagh <igloo@earth.li>**20080422113907] 
[Fix warnings in PrelNames
Ian Lynagh <igloo@earth.li>**20080422113817] 
[(F)SLIT -> (f)sLit in CmmParse
Ian Lynagh <igloo@earth.li>**20080422110857] 
[PrelRules is now warning free
Ian Lynagh <igloo@earth.li>**20080413124325] 
[Remove a warning
Ian Lynagh <igloo@earth.li>**20080413103120] 
[PrelInfo is now warning-free
Ian Lynagh <igloo@earth.li>**20080413102906] 
[TysPrim is now warning-free
Ian Lynagh <igloo@earth.li>**20080413101757] 
[TysWiredIn is now warning-free
Ian Lynagh <igloo@earth.li>**20080413094012] 
[(F)SLIT -> (f)sLit in TcSplice
Ian Lynagh <igloo@earth.li>**20080412180126] 
[(F)SLIT -> (f)sLit in Convert
Ian Lynagh <igloo@earth.li>**20080412180037] 
[(F)SLIT -> (f)sLit in InteractiveUI
Ian Lynagh <igloo@earth.li>**20080412180018] 
[(F)SLIT -> (f)sLit in InteractiveEval
Ian Lynagh <igloo@earth.li>**20080412175850] 
[(F)SLIT -> (f)sLit in RtClosureInspect
Ian Lynagh <igloo@earth.li>**20080412175734] 
[(F)SLIT -> (f)sLit in Linker
Ian Lynagh <igloo@earth.li>**20080412175700] 
[(F)SLIT -> (f)sLit in ByteCodeGen
Ian Lynagh <igloo@earth.li>**20080412175456] 
[(F)SLIT -> (f)sLit in DsMeta
Ian Lynagh <igloo@earth.li>**20080412175407] 
[(F)SLIT -> (f)sLit in PprTyThing
Ian Lynagh <igloo@earth.li>**20080412163811] 
[(F)SLIT -> (f)sLit in DriverMkDepend
Ian Lynagh <igloo@earth.li>**20080412163724] 
[(F)SLIT -> (f)sLit in GHC
Ian Lynagh <igloo@earth.li>**20080412163604] 
[(F)SLIT -> (f)sLit in DriverPipeline
Ian Lynagh <igloo@earth.li>**20080412163406] 
[(F)SLIT -> (f)sLit in HscMain
Ian Lynagh <igloo@earth.li>**20080412163320] 
[(F)SLIT -> (f)sLit in TcRnDriver
Ian Lynagh <igloo@earth.li>**20080412162930] 
[(F)SLIT -> (f)sLit in TcDefaults
Ian Lynagh <igloo@earth.li>**20080412162824] 
[(F)SLIT -> (f)sLit in TcRules
Ian Lynagh <igloo@earth.li>**20080412162705] 
[(F)SLIT -> (f)sLit in TcForeign
Ian Lynagh <igloo@earth.li>**20080412162632] 
[(F)SLIT -> (f)sLit in TcExpr
Ian Lynagh <igloo@earth.li>**20080412162533] 
[(F)SLIT -> (f)sLit in TcArrows
Ian Lynagh <igloo@earth.li>**20080412162403] 
[(F)SLIT -> (f)sLit in TcMatches
Ian Lynagh <igloo@earth.li>**20080412162314] 
[(F)SLIT -> (f)sLit in TcInstDcls
Ian Lynagh <igloo@earth.li>**20080412162152] 
[(F)SLIT -> (f)sLit in FamInst
Ian Lynagh <igloo@earth.li>**20080412162033] 
[(F)SLIT -> (f)sLit in TcDeriv
Ian Lynagh <igloo@earth.li>**20080412161958] 
[(F)SLIT -> (f)sLit in TcGenDeriv
Ian Lynagh <igloo@earth.li>**20080412161827] 
[(F)SLIT -> (f)sLit in TcTyClsDecls
Ian Lynagh <igloo@earth.li>**20080412161708] 
[(F)SLIT -> (f)sLit in TcClassDcl
Ian Lynagh <igloo@earth.li>**20080412161517] 
[(F)SLIT -> (f)sLit in RnExpr
Ian Lynagh <igloo@earth.li>**20080412161410] 
[(F)SLIT -> (f)sLit in TcBinds
Ian Lynagh <igloo@earth.li>**20080412161320] 
[(F)SLIT -> (f)sLit in TcHsType
Ian Lynagh <igloo@earth.li>**20080412161045] 
[(F)SLIT -> (f)sLit in Generics
Ian Lynagh <igloo@earth.li>**20080412160944] 
[(F)SLIT -> (f)sLit in TcSimplify
Ian Lynagh <igloo@earth.li>**20080412160715] 
[(F)SLIT -> (f)sLit in TcTyFuns
Ian Lynagh <igloo@earth.li>**20080412160559] 
[(F)SLIT -> (f)sLit in Inst
Ian Lynagh <igloo@earth.li>**20080412160453] 
[(F)SLIT -> (f)sLit in RnSource
Ian Lynagh <igloo@earth.li>**20080412160348] 
[(F)SLIT -> (f)sLit in RnBinds
Ian Lynagh <igloo@earth.li>**20080412160232] 
[(F)SLIT -> (f)sLit in RnPat
Ian Lynagh <igloo@earth.li>**20080412160138] 
[(F)SLIT -> (f)sLit in RnTypes
Ian Lynagh <igloo@earth.li>**20080412160039] 
[(F)SLIT -> (f)sLit in RnNames
Ian Lynagh <igloo@earth.li>**20080412155923] 
[(F)SLIT -> (f)sLit in RnEnv
Ian Lynagh <igloo@earth.li>**20080412155810] 
[(F)SLIT -> (f)sLit in TcEnv
Ian Lynagh <igloo@earth.li>**20080412155639] 
[(F)SLIT -> (f)sLit in CSE
Ian Lynagh <igloo@earth.li>**20080412155551] 
[(F)SLIT -> (f)sLit in Simplify
Ian Lynagh <igloo@earth.li>**20080412155517] 
[(F)SLIT -> (f)sLit in SimplEnv
Ian Lynagh <igloo@earth.li>**20080412155311] 
[(F)SLIT -> (f)sLit in FloatOut
Ian Lynagh <igloo@earth.li>**20080412155114] 
[(F)SLIT -> (f)sLit in Specialse
Ian Lynagh <igloo@earth.li>**20080412155034] 
[(F)SLIT -> (f)sLit in SpecConstr
Ian Lynagh <igloo@earth.li>**20080412154959] 
[(F)SLIT -> (f)sLit in Vectorise
Ian Lynagh <igloo@earth.li>**20080412154718] 
[(F)SLIT -> (f)sLit in VectType
Ian Lynagh <igloo@earth.li>**20080412154322] 
[(F)SLIT -> (f)sLit in VectUtils
Ian Lynagh <igloo@earth.li>**20080412154229] 
[(F)SLIT -> (f)sLit in VectMonad
Ian Lynagh <igloo@earth.li>**20080412154116] 
[(F)SLIT -> (f)sLit in VectBuiltIn
Ian Lynagh <igloo@earth.li>**20080412154002] 
[(F)SLIT -> (f)sLit in SimplMonad
Ian Lynagh <igloo@earth.li>**20080412153630] 
[(F)SLIT -> (f)sLit in CoreToStg
Ian Lynagh <igloo@earth.li>**20080412153543] 
[(F)SLIT -> (f)sLit in StgLint
Ian Lynagh <igloo@earth.li>**20080412153440] 
[(F)SLIT -> (f)sLit in Parser
Ian Lynagh <igloo@earth.li>**20080412153329] 
[(F)SLIT -> (f)sLit in RdrHsSyn
Ian Lynagh <igloo@earth.li>**20080412153052] 
[(F)SLIT -> (f)sLit in SysTools
Ian Lynagh <igloo@earth.li>**20080412152909] 
[(F)SLIT -> (f)sLit in MachCodeGen
Ian Lynagh <igloo@earth.li>**20080412152750] 
[(F)SLIT -> (f)sLit in PositionIndependentCode
Ian Lynagh <igloo@earth.li>**20080412152545] 
[(F)SLIT -> (f)sLit in RegallocLinear
Ian Lynagh <igloo@earth.li>**20080412152355] 
[(F)SLIT -> (f)sLit in RegLiveness
Ian Lynagh <igloo@earth.li>**20080412152307] 
[(F)SLIT -> (f)sLit in PprMach
Ian Lynagh <igloo@earth.li>**20080412152217] 
[(F)SLIT -> (f)sLit in Desugar
Ian Lynagh <igloo@earth.li>**20080412151250] 
[(F)SLIT -> (f)sLit in MkIface
Ian Lynagh <igloo@earth.li>**20080412151147] 
[(F)SLIT -> (f)sLit in DsForeign
Ian Lynagh <igloo@earth.li>**20080412150848] 
[(F)SLIT -> (f)sLit in Match
Ian Lynagh <igloo@earth.li>**20080412150644] 
[(F)SLIT -> (f)sLit in DsBinds
Ian Lynagh <igloo@earth.li>**20080412150510] 
[(F)SLIT -> (f)sLit in Coverage
Ian Lynagh <igloo@earth.li>**20080412150416] 
[(F)SLIT -> (f)sLit in DsUtils
Ian Lynagh <igloo@earth.li>**20080412150317] 
[(F)SLIT -> (f)sLit in DsUtils
Ian Lynagh <igloo@earth.li>**20080412150231] 
[(F)SLIT -> (f)sLit in TcHsSyn
Ian Lynagh <igloo@earth.li>**20080412145639] 
[(F)SLIT -> (f)sLit in FunDeps
Ian Lynagh <igloo@earth.li>**20080412145238] 
[(F)SLIT -> (f)sLit in DsMonad
Ian Lynagh <igloo@earth.li>**20080412145201] 
[(F)SLIT -> (f)sLit in TcIface
Ian Lynagh <igloo@earth.li>**20080412145105] 
[(F)SLIT -> (f)sLit in LoadIface
Ian Lynagh <igloo@earth.li>**20080412145018] 
[(F)SLIT -> (f)sLit in Finder
Ian Lynagh <igloo@earth.li>**20080412144812] 
[(F)SLIT -> (f)sLit in TcRnMonad
Ian Lynagh <igloo@earth.li>**20080412144557] 
[(F)SLIT -> (f)sLit in TcRnTypes
Ian Lynagh <igloo@earth.li>**20080412144504] 
[(F)SLIT -> (f)sLit in WwLib
Ian Lynagh <igloo@earth.li>**20080412144123] 
[(F)SLIT -> (f)sLit in CoreSubst
Ian Lynagh <igloo@earth.li>**20080412143851] 
[(F)SLIT -> (f)sLit in CorePrep
Ian Lynagh <igloo@earth.li>**20080412143637] 
[(F)SLIT -> (f)sLit in CgCon
Ian Lynagh <igloo@earth.li>**20080412143540] 
[(F)SLIT -> (f)sLit in HscTypes
Ian Lynagh <igloo@earth.li>**20080412143353] 
[(F)SLIT -> (f)sLit in FamInstEnv
Ian Lynagh <igloo@earth.li>**20080412141122] 
[(F)SLIT -> (f)sLit in InstEnv
Ian Lynagh <igloo@earth.li>**20080412141045] 
[(F)SLIT -> (f)sLit in CgPrimOp
Ian Lynagh <igloo@earth.li>**20080412140741] 
[(F)SLIT -> (f)sLit in PprC
Ian Lynagh <igloo@earth.li>**20080412140630] 
[(F)SLIT -> (f)sLit in CgForeignCall
Ian Lynagh <igloo@earth.li>**20080412140213] 
[(F)SLIT -> (f)sLit in CgClosure
Ian Lynagh <igloo@earth.li>**20080412140136] 
[(F)SLIT -> (f)sLit in PprCmmZ
Ian Lynagh <igloo@earth.li>**20080412135934] 
[(F)SLIT -> (f)sLit in ZipCfgCmmRep
Ian Lynagh <igloo@earth.li>**20080412135902] 
[(F)SLIT -> (f)sLit in CmmLint
Ian Lynagh <igloo@earth.li>**20080412135820] 
[(F)SLIT -> (f)sLit in CmmCPSGen
Ian Lynagh <igloo@earth.li>**20080412135728] 
[(F)SLIT -> (f)sLit in CgBindery
Ian Lynagh <igloo@earth.li>**20080412135620] 
[(F)SLIT -> (f)sLit in CgHeapery
Ian Lynagh <igloo@earth.li>**20080412135529] 
[(F)SLIT -> (f)sLit in CgTicky
Ian Lynagh <igloo@earth.li>**20080412135411] 
[(F)SLIT -> (f)sLit in CgCallConv
Ian Lynagh <igloo@earth.li>**20080412135037] 
[(F)SLIT -> (f)sLit in CgProf
Ian Lynagh <igloo@earth.li>**20080412133935] 
[(F)SLIT -> (f)sLit in PprCmm
Ian Lynagh <igloo@earth.li>**20080412133323] 
[(F)SLIT -> (f)sLit in ClosureInfo
Ian Lynagh <igloo@earth.li>**20080412133030] 
[(F)SLIT -> (f)sLit in StSyn
Ian Lynagh <igloo@earth.li>**20080412132924] 
[(F)SLIT -> (f)sLit in SMRep
Ian Lynagh <igloo@earth.li>**20080412132534] 
[(F)SLIT -> (f)sLit in MachOp
Ian Lynagh <igloo@earth.li>**20080412132430] 
[(F)SLIT -> (f)sLit in CLabel
Ian Lynagh <igloo@earth.li>**20080412132305] 
[(F)SLIT -> (f)sLit in Packages
Ian Lynagh <igloo@earth.li>**20080412132158] 
[(F)SLIT -> (f)sLit in Lexer
Ian Lynagh <igloo@earth.li>**20080412132044] 
[(F)SLIT -> (f)sLit in MkId
Ian Lynagh <igloo@earth.li>**20080412131831] 
[(F)SLIT -> (f)sLit in Rules
Ian Lynagh <igloo@earth.li>**20080412131707] 
[(F)SLIT -> (f)sLit in PrelRules
Ian Lynagh <igloo@earth.li>**20080412131612] 
[(F)SLIT -> (f)sLit in HsSyn
Ian Lynagh <igloo@earth.li>**20080412130737] 
[(F)SLIT -> (f)sLit in HsUtils
Ian Lynagh <igloo@earth.li>**20080412125320] 
[(F)SLIT -> (f)sLit in HsExpr
Ian Lynagh <igloo@earth.li>**20080412125229] 
[(F)SLIT -> (f)sLit in HsDecls
Ian Lynagh <igloo@earth.li>**20080412124928] 
[(F)SLIT -> (f)sLit in HsImpExp
Ian Lynagh <igloo@earth.li>**20080412124840] 
[(F)SLIT -> (f)sLit in HsPat
Ian Lynagh <igloo@earth.li>**20080412124758] 
[(F)SLIT -> (f)sLit in HsTypes
Ian Lynagh <igloo@earth.li>**20080412124645] 
[(F)SLIT -> (f)sLit in IfaceSyn
Ian Lynagh <igloo@earth.li>**20080412124607] 
[(F)SLIT -> (f)sLit in IfaceType
Ian Lynagh <igloo@earth.li>**20080412124507] 
[(F)SLIT -> (f)sLit in CoreUnfold
Ian Lynagh <igloo@earth.li>**20080412124420] 
[(F)SLIT -> (f)sLit in CoreLint
Ian Lynagh <igloo@earth.li>**20080412124339] 
[(F)SLIT -> (f)sLit in CoreUtils
Ian Lynagh <igloo@earth.li>**20080412124218] 
[(F)SLIT -> (f)sLit in PprCore
Ian Lynagh <igloo@earth.li>**20080412124141] 
[(F)SLIT -> (f)sLit in Id
Ian Lynagh <igloo@earth.li>**20080412123952] 
[(F)SLIT -> (f)sLit in TcType
Ian Lynagh <igloo@earth.li>**20080412123745] 
[(F)SLIT -> (f)sLit in IdInfo
Ian Lynagh <igloo@earth.li>**20080412123637] 
[(F)SLIT -> (f)sLit in CoreSyn
Ian Lynagh <igloo@earth.li>**20080412123507] 
[(F)SLIT -> (f)sLit in CostCentre
Ian Lynagh <igloo@earth.li>**20080412123402] 
[(F)SLIT -> (f)sLit in Literal
Ian Lynagh <igloo@earth.li>**20080412123322] 
[Generate fsLit not FSLIT in genprimopcode
Ian Lynagh <igloo@earth.li>**20080412123247] 
[(F)SLIT -> (f)sLit in TysWiredIn
Ian Lynagh <igloo@earth.li>**20080412122946] 
[(F)SLIT -> (f)sLit in TysPrim
Ian Lynagh <igloo@earth.li>**20080412122846] 
[(F)SLIT -> (f)sLit in ForeignCall
Ian Lynagh <igloo@earth.li>**20080412122757] 
[(F)SLIT -> (f)sLit in DataCon
Ian Lynagh <igloo@earth.li>**20080412122709] 
[(F)SLIT -> (f)sLit in Coercion
Ian Lynagh <igloo@earth.li>**20080412122627] 
[(F)SLIT -> (f)sLit in Type
Ian Lynagh <igloo@earth.li>**20080412122524] 
[(F)SLIT -> (f)sLit in TypeRep
Ian Lynagh <igloo@earth.li>**20080412122409] 
[(F)SLIT -> (f)sLit in VarEnv
Ian Lynagh <igloo@earth.li>**20080412121437] 
[(F)SLIT -> (f)sLit in Class
Ian Lynagh <igloo@earth.li>**20080412121245] 
[(F)SLIT -> (f)sLit in Class
Ian Lynagh <igloo@earth.li>**20080412121211] 
[(F)SLIT -> (f)sLit in Var
Ian Lynagh <igloo@earth.li>**20080412121140] 
[(F)SLIT -> (f)sLit in Name
Ian Lynagh <igloo@earth.li>**20080412121050] 
[(F)SLIT -> (f)sLit in OccName
Ian Lynagh <igloo@earth.li>**20080412121008] 
[(F)SLIT -> (f)sLit in SrcLoc
Ian Lynagh <igloo@earth.li>**20080412120909] 
[(F)SLIT -> (f)sLit in Module
Ian Lynagh <igloo@earth.li>**20080412120817] 
[(F)SLIT -> (f)sLit in BasicTypes
Ian Lynagh <igloo@earth.li>**20080412120745] 
[(F)SLIT -> (f)sLit in Outputable
Ian Lynagh <igloo@earth.li>**20080412120538] 
[SLIT -> sLit in Prety.lhs
Ian Lynagh <igloo@earth.li>**20080412120004] 
[Don't use CPP for SLIT/FSLIT
Ian Lynagh <igloo@earth.li>**20080412115745] 
[Simplify SimplCont, plus some other small changes to the Simplifier
simonpj@microsoft.com**20080422120400
 
 The main change in this patch is this:
   
   * The Stop constructor of SimplCont no longer contains the OutType
     of the whole continuation.  This is a nice simplification in 
     lots of places where we build a Stop continuation.  For example,
     rebuildCall no longer needs to maintain the type of the function.
 
   * Similarly StrictArg no longer needs an OutType
 
   * The consequential complication is that contResultType (not called
     much) needs to be given the type of the thing in the middle.  No
     big deal.
 
   * Lots of other small knock-on effects
 
 Other changes in here
 
   * simplLazyBind does do the type-abstraction thing if there's
     a lambda inside.  See comments in simplLazyBind
 
   * simplLazyBind reduces simplifier iterations by keeping 
     unfolding information for stuff for which type abstraction is 
     done (see add_poly_bind)
 
 All of this came up when implementing System IF, but seems worth applying
 to the HEAD
 
] 
[Comments only in SimplCore
simonpj@microsoft.com**20080422120304] 
[Comments only
simonpj@microsoft.com**20080422120143] 
[Minor bug in SpecConstr
simonpj@microsoft.com**20080422115238
 
 In SpecConstr.isValue, we recorded a ConVal for a big-lambda,
 which seems wrong. I came across this when implementing System IF.
 The code now reads:
 
   isValue env (Lam b e)
     | isTyVar b = case isValue env e of
   		    Just _  -> Just LambdaVal	-- NB!
   		    Nothing -> Nothing
     | otherwise = Just LambdaVal
 
] 
[Comments only
simonpj@microsoft.com**20080422115221] 
[Fix a long-standing bug in FloatOut
simonpj@microsoft.com**20080422115003
 
 We really should not float anything out of an _inline_me_ Note,
 for reasons described in this new comment:
 	-- Do no floating at all inside INLINE.
 	-- The SetLevels pass did not clone the bindings, so it's
 	-- unsafe to do any floating, even if we dump the results
 	-- inside the Note (which is what we used to do).
 
 I'm about to get rid of these _inline_me_ Notes, but it's
 better to fix it anyway.  I found this bug when implementing System IF.
 
] 
[Remove static flag opt_RuntimeTypes (has not been used in years)
simonpj@microsoft.com**20080422114848] 
[Refactor the TyVarTy case of 'match'.  No change in behaviour.
simonpj@microsoft.com**20080422113014] 
[Add Note [Generating the in-scope set for a substitution]
simonpj@microsoft.com**20080422112925] 
[Rename WpCo to WpCast
simonpj@microsoft.com**20080422112804] 
[Fix #2044 (:printing impredicatively typed things)
pepe <mnislaih@gmail.com>**20080421171322
 
 Switching to boxyUnify should be enough to fix this.
] 
[Improve External Core syntax for newtypes
Tim Chevalier <chevalier@alum.wellesley.edu>**20080422045244
 
 I was confused by the newtype eta-contraction trick before.
 Newtype declarations are much less redundant now.
] 
[Update External Core docs
Tim Chevalier <chevalier@alum.wellesley.edu>**20080422044342
 
 Update documentation to reflect GHC HEAD.
] 
[External Core typechecker - improve handling of coercions
Tim Chevalier <chevalier@alum.wellesley.edu>**20080422015622
 
 Reorganized coercion-related code in the typechecker (this was
 brought about by typechecking the Core versions of the optimized GHC
 libraries.) A few miscellaneous changes (fixed a bug in Prep involving
 eta-expanding partial applications that had additional type
 arguments.)
] 
[Naming changes in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080422012734
 
 Two changes:
 - Top-level bindings in a given module are now printed as a 
   single %rec group. I found that in External Core generated from
   optimized code, nonrec bindings weren't being printed in
   dependency order. Rather than fixing that, I decided to not
   even pretend to preserve dependency order (since there's
   recursion between modules anyway.)
 
 - Internal names are now printed with their uniques attached
   (otherwise, GHC was printing out code with shadowed bindings,
   and this isn't supposed to happen in External Core.)
] 
[Add clarifying comments about unsafeCoerce
simonpj@microsoft.com**20080421152130] 
[Make the integer library to use more configurable
Ian Lynagh <igloo@earth.li>**20080420195856
 Now you just set INTEGER_LIBRARY=integer-foo in build.mk
] 
[Remove some duplicate extern decls
Ian Lynagh <igloo@earth.li>**20080416162330] 
[Add some more generic (en|de)code(Double|Float) code
Ian Lynagh <igloo@earth.li>**20080417171943] 
[Updates to handle Ordering moving from base to ghc-prim
Ian Lynagh <igloo@earth.li>**20080412100657] 
[Fix lndir
Ian Lynagh <igloo@earth.li>**20080408193436
 It would copy when it should symlink, and vice-versa.
] 
[Improve External Core syntax
Tim Chevalier <chevalier@alum.wellesley.edu>**20080416000347
 
 Got rid of the silly '^' characters before qualified names (plus:
 reverts to the original syntax; minus: makes the parser a little
 hairier.)
 
 Also, added warning in the typechecker for coercion kind mismatches
 rather than considering that a type error. (see the added comment in
 Check.hs for details.)
] 
[FIX BUILD (Windows): Copy the ln trick used by the GMP build
Simon Marlow <simonmar@microsoft.com>**20080414173225] 
[Revive the static argument transformation
simonpj@microsoft.com**20080411162137
 
 This patch revives the Static Argument Transformation, thanks to
 Max Bolingbroke.  It is enabled with 
 	-fstatic-argument-transformation
 or	-O2
 
 Headline nofib results
 
                   Size    Allocs   Runtime
 Min             +0.0%    -13.7%    -21.4%
 Max             +0.1%     +0.0%     +5.4%
 Geometric Mean  +0.0%     -0.2%     -6.9%
 
 
] 
[Transfer strictness and arity info when abstracting over type variables
simonpj@microsoft.com**20080411142418
 
 See Note [transferPolyIdInfo] in Id.lhs, and test 
 	eyeball/demand-on-polymorphic-floatouts.hs
 
 Max Bolingbroke discovered that we were gratuitiously losing strictness
 info.  This simple patch fixes it.  But see the above note for things
 that are still discarded: worker info and rules.
 
] 
[Revive External Core typechecker
Tim Chevalier <chevalier@alum.wellesley.edu>**20080414024648
 
 The typechecker works again! Yay!
 
 Details upon request.
] 
[Eta-expand newtype coercions in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080414031654
 
 Typechecking External Core is easier if we eta-expand axioms
 in newtype declarations. For a fuller explanation, see:
 http://www.haskell.org/pipermail/cvs-ghc/2008-April/041948.html
] 
[Extra info in genprimopcode --make-ext-core-source
Tim Chevalier <chevalier@alum.wellesley.edu>**20080414025407
 
 The ext-core typechecker needs to know what types are
 valid for various kinds of literals, so I changed 
 genprimopcode to dump out that information as well
 with --make-ext-core-source.
] 
[Fixing HPCTIXDIR problem with mkdir usage on Windows
andy@galois.com**20080411220510] 
[Update .darcs-boring with utils/ext-core stuff
Tim Chevalier <chevalier@alum.wellesley.edu>**20080411185734] 
[FIX #2197: an update frame might point to an IND_OLDGEN
Simon Marlow <simonmar@microsoft.com>**20080411173404] 
[Rejig error reporting in the unifier slightly
simonpj@microsoft.com**20080411132350] 
[Improve error message layout slightly
simonpj@microsoft.com**20080410113105] 
[Two improvements to boxy matching
simonpj@microsoft.com**20080410112812
 
 I can't quite remember what provoked these two changes, but they are in my
 tree.  
 	One improves boxy_match (which failed unnecessarily)
 	One fixes boxy_lub (which was assymetrical)
 
] 
[Fix Trac #2206: ensure the return type is rigid in a GADT match
simonpj@microsoft.com**20080410111514
 
] 
[Fix Trac #2205, which I introduced recently
simonpj@microsoft.com**20080410094336] 
[Ensure that arity is accurate in back end
simonpj@microsoft.com**20080410084930
 
 See Note [exprArity invariant] in CoreUtils.  In code generated by Happy
 I was seeing this after TidyPgm and CorePrep
 
 	f :: Any
 	f {arity 1} = id `cast` unsafe-co
 
 So f claimed to have arity 1 (because exprArity looked inside), but
 did not have any top-level lambdas (because its type is Any).  
 
 This triggered a slightly-obscure ASSERT failure in CoreToStg
 
 This patch 
 	- makes exprArity trim the arity if the type is not a function
 	- adds a stronger ASSERT in TidyPgm
 
 It's not the only way to solve this problem (see Note [exprArity invariant])
 but it's enough for now. 
 
] 
[Make the arity and strictness agree, for wired-in bottoming Ids
simonpj@microsoft.com**20080410082619] 
[Fix bug in vectorisation of case expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080411045307] 
[Extend genprimopcode to print primop types for ext-core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080410185810
 
 I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the
 type information for primops that the External Core typechecker needs. This
 replaces the old mechanism where the ext-core tools had a hard-wired Prims
 module that could get out of sync with the old primops.txt. Now, that won't happen.
] 
[add pointers to the wiki for the rules about C prototypes
Simon Marlow <simonmar@microsoft.com>**20080409204143] 
[avoid warnings from ffi.h when UseLibFFIForAdjustors=YES
Simon Marlow <simonmar@microsoft.com>**20080409204048] 
[FIX BUILD (bootstrap with -fvia-C): prototype fixes
Simon Marlow <simonmar@microsoft.com>**20080409203724
 
] 
[Another round of External Core fixes
Tim Chevalier <chevalier@alum.wellesley.edu>**20080410043727
 
 With this patch, GHC should now be printing External Core in a format
 that a stand-alone program can parse and typecheck. Major bug fixes:
 
 - The printer now handles qualified/unqualified declarations correctly
    (particularly data constructor declarations)
 - It prints newtype declarations with enough information to
   typecheck code that uses the induced coercions (this required a
 syntax change)
 - It expands type synonyms correctly
  
 Documentation and external tool patches will follow.
 
] 
[Adding environment variable HPCTIXDIR, a directory to place tix results.
andy@galois.com**20080408232450] 
[Fixing hpc combine and hpc map to use the correct help message
andy@galois.com**20080408232032] 
[Import libffi-3.0.4, and use it to provide FFI support in GHCi
Simon Marlow <simonmar@microsoft.com>**20080408183434
 
 This replaces the hand-rolled architecture-specific FFI support in
 GHCi with the standard libffi as used in GCJ, Python and other
 projects.  I've bundled the complete libffi-3.0.4 tarball in the
 source tree in the same way as we do for GMP, the difference being
 that we always build and install our own libffi regardless of whether
 there's one on the system (it's small, and we don't want
 dependency/versioning headaches).
 
 In particular this means that unregisterised builds will now have a
 fully working GHCi including FFI out of the box, provided libffi
 supports the platform.
 
 There is also code in the RTS to use libffi in place of
 rts/Adjustor.c, but it is currently not enabled if we already have
 support in Adjustor.c for the current platform.  We need to assess the
 performance impact before using libffi here too (in GHCi we don't care
 too much about performance).
] 
[FIX BUILD on non-x86: add missing prototypes
Simon Marlow <simonmar@microsoft.com>**20080407213748] 
[update a comment
Simon Marlow <simonmar@microsoft.com>**20080407212437] 
[remove dead code
Simon Marlow <simonmar@microsoft.com>**20080403223422] 
[Replace one occurance of CVS with darcs in HACKING
Samuel Bronson <naesten@gmail.com>**20080407222006] 
[Remove GADT refinements, part 5
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080407070728
 - TcGadt RIP
 - The non-side effecting unification code is now in types/Unify.lhs
   along with the refinement code needed for GADT record selectors.
] 
[Remove GADT refinements, part 4
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080303063347
 - MkId.mkRecordSelId only used a special case of refineGadt, which doesn't
   need full unification.  That special case is now implemented as 
   TcGadt.matchRefine and TcGadt.refineGadt can finally go.
] 
[Improve error message for malformed LANGUAGE pragma
Tim Chevalier <chevalier@alum.wellesley.edu>**20080406202333
 
 I made the error (which previously said "cannot parse LANGUAGE
 pragma") slightly more helpful by reminding the user that pragmas
 should be comma-separated.
] 
[Improve error message for non-matching file name
Tim Chevalier <chevalier@alum.wellesley.edu>**20080406193821
 
 I changed the "File name does not match module name" error message so
 that it prints out both the declared module name and the expected
 module name (before, it was only printing the declared module name.)
] 
[Virtualize the cwd in GHCi
Pepe Iborra <mnislaih@gmail.com>**20080405145136
 
 This fixes the issue where :list would stop working if the
 program being debugged side-effected the working directory,
 and should prevent other similar issues
 
] 
[Fix rendering of references in :print under -fprint-evld-with-show flag
Pepe Iborra <mnislaih@gmail.com>**20071219174431] 
[Fix Trac #2188: scoping in TH declarations quotes
simonpj@microsoft.com**20080404205556
 
 This patch fixes a rather tiresome issue, namely the fact that
 a TH declaration quote *shadows* bindings in outer scopes:
 
   f g = [d| f :: Int
             f = g
   	    g :: Int
             g = 4 |]
 
 Here, the outer bindings for 'f' (top-level) and 'g' (local)
 are shadowed, and the inner bindings for f,g should not be
 reported as duplicates.  (Remember they are top-level bindings.)
 
 The actual bug was that we'd forgotten to delete 'g' from the
 LocalRdrEnv, so the type sig for 'g' was binding to the outer
 'g' not the inner one.
 
] 
[Fix simplifier thrashing
simonpj@microsoft.com**20080403223819
 
 Another example of the simplifier thrashing, getting nowhere.
 See SimplUtils, Note [Unsaturated functions]
 
 There's a test at eyeball/inline4.hs
 
] 
[Fix Trac #2179: error message for main
simonpj@microsoft.com**20080403173746
 
 A short-cut to generate the (runMainIO main) wrapper turned out
 to make a bad error message.  This should fix it.
 
] 
[Fix Trac #2136: reporting of unused variables
simonpj@microsoft.com**20080403110250
 
 There's a bit of a hack RnBinds.rnValBindsAndThen, documented
 in Note [Unused binding hack].  But the hack was over brutal
 before, and produced unnecssarily bad (absence of) warnings.
 This patch does a bit of refactoring; and fixes the bug in
 rnValBindsAndThen.
 
] 
[Fix Trac #2137: report correct location for shadowed binding
simonpj@microsoft.com**20080402153410
 
 The error message generation for a shadowed binding was
 plain wrong, at least where the shadowed binding isn't
 top-level.  Just a typo really -- the fix is trivial.
 
] 
[Fix Trac #2141: invalid record update
simonpj@microsoft.com**20080402132057
 
 See Note [Record field lookup] in TcEnv.  The fix here
 is quite straightforward.
 
] 
[Do not #include external header files when compiling via C
Simon Marlow <simonmar@microsoft.com>**20080402051412
 
 This has several advantages:
 
  - -fvia-C is consistent with -fasm with respect to FFI declarations:
    both bind to the ABI, not the API.
 
  - foreign calls can now be inlined freely across module boundaries, since
    a header file is not required when compiling the call.
 
  - bootstrapping via C will be more reliable, because this difference
    in behavour between the two backends has been removed.
 
 There is one disadvantage:
 
  - we get no checking by the C compiler that the FFI declaration
    is correct.
 
 So now, the c-includes field in a .cabal file is always ignored by
 GHC, as are header files specified in an FFI declaration.  This was
 previously the case only for -fasm compilations, now it is also the
 case for -fvia-C too.
] 
[Derive a valid Ix instance for data Foo = Foo Int Int
Ian Lynagh <igloo@earth.li>**20080330182813
 The old one didn't satisfy the axioms. See trac #2158 for details.
] 
[Revive External Core parser
Tim Chevalier <chevalier@alum.wellesley.edu>**20080329223948
 
 Huzzah, the External Core parser will now parse External Core generated by
 the HEAD.
 
 Most notably, I rewrote the parser in Parsec, but the old Happy version
 remains in the repository.
 
 I checked all the nofib benchmarks and most of the ghc-prim, base and integer
 libraries to make sure they parsed; one known bug:
   - Strings like "\x0aE", in which a hex escape code is followed by a
     letter that could be a hex digit, aren't handled properly. I'm 
     investigating whether this is a bug in Parsec or expected behavior.
 
 The checker and interpreter still don't work, but should compile.
 
 Please mess around with the parser, report bugs, improve my code, etc.,
 if you're so inclined.
 
] 
[Fix big character literal printing in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080329221109
 
 Characters bigger than '\xff' should be represented as int
 literals in External Core. (This was originally fixed five years ago
 and broken again four and a half years ago...)
] 
[External Core: don't print superfluous parens in case types
Tim Chevalier <chevalier@alum.wellesley.edu>**20080329194629
 
 The External Core printer was parenthesizing the scrutinee type in case expressions. Since this type is required to be atomic, the parens aren't necessary.
] 
[Don't import FastString in HsVersions.h
Ian Lynagh <igloo@earth.li>**20080329185043
 Modules that need it import it themselves instead.
] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329171135] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329171013] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329170935] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329170341] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329170227] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329165412] 
[Fix typo; spotted by Bdh in #ghc
Ian Lynagh <igloo@earth.li>**20080329165303] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329164849] 
[DEBUG removal
Ian Lynagh <igloo@earth.li>**20080329164420] 
[Remove a DEBUG use
Ian Lynagh <igloo@earth.li>**20080329164209] 
[Remove a DEBUG
Ian Lynagh <igloo@earth.li>**20080329163936] 
[Remove more #ifdef DEBUGs
Ian Lynagh <igloo@earth.li>**20080329145716] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329145508] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329145244] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329144844] 
[Remove a #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329144658] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329144544] 
[Remove some redundant code
Ian Lynagh <igloo@earth.li>**20080329144226] 
[prelude/PrimOp is now mostly warning-free
Ian Lynagh <igloo@earth.li>**20080329143914
 commutableOp seems to be unused, so we're no 100% there yet.
] 
[Fix warnings from primops.txt.pp
Ian Lynagh <igloo@earth.li>**20080329142637] 
[Use _ rather than "other" in generated code
Ian Lynagh <igloo@earth.li>**20080329142508] 
[Fix some warnings
Ian Lynagh <igloo@earth.li>**20080329142219] 
[Remove some redundant imports
Ian Lynagh <igloo@earth.li>**20080329141809] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329141733] 
[Remove an #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329141629] 
[Remove some unnecessary imports
Ian Lynagh <igloo@earth.li>**20080329141145] 
[Remove an unnecessary #ifdef DEBUG
Ian Lynagh <igloo@earth.li>**20080329141047] 
[Another debugIsOn use
Ian Lynagh <igloo@earth.li>**20080329140126] 
[Convert some DEBUG uses to debugIsOn
Ian Lynagh <igloo@earth.li>**20080329135950] 
[Put debugIsOn in Util, rather than rely on it being CPPed in
Ian Lynagh <igloo@earth.li>**20080329135755] 
[External Core: print function types correctly, improve newtype pretty-printing
Tim Chevalier <chevalier@alum.wellesley.edu>**20080328222630
 
 - In a previous patch I broke the printing of fully-applied arrow
 types (e.g., "a -> b" was "(ghczmprim:GHCziPrim a b)") by z-encoding
 package names and not updating the primitive module name as defined in
 External Core accordingly. Fixed. (Mega sigh...)
 
 - Make newtype decls print slightly more readably.
] 
[Print out rational literals correctly in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080328211919
 
 The External Core printer was printing out rational literals of the
 form: 
 2.0e-2
 when the External Core grammar doesn't allow this. (This
 bug has apparently been there since the beginning...)
 
 It's now printing rationals in the same form that (show (r::Rational))
 does. This requires a parser change as well (soon to come.)
] 
[Change syntax for qualified names in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080327185436
 
 Two changes that make the ext-core code uglier but the parser easier:
 
 - Prefix qualified names with "^" so that we can more easily
 distinguish a qualified name:
    ^a:Foo.Bar.quux 
 from an unqualified name:
    a
 
 - z-encode package names ("ghc-prim" was the culprit.)
] 
[Make use of the SDoc type synonym
Ian Lynagh <igloo@earth.li>**20080326175306] 
[Fix warnings in rename/RnTypes
Ian Lynagh <igloo@earth.li>**20080326174657] 
[Fix warnings in basicTypes/IdInfo
Ian Lynagh <igloo@earth.li>**20080326170014] 
[Fix warnings in basicTypes/NameEnv
Ian Lynagh <igloo@earth.li>**20080326165139] 
[Fix warnings in basicTypes/NameSet
Ian Lynagh <igloo@earth.li>**20080326164837] 
[Fix warning in basicTypes/NewDemand
Ian Lynagh <igloo@earth.li>**20080326160017] 
[Fix warnings in basicTypes/VarEnv
Ian Lynagh <igloo@earth.li>**20080326155412] 
[Fix warnings in basicTypes/VarSet
Ian Lynagh <igloo@earth.li>**20080326155105] 
[main/BreakArray has no warnings
Ian Lynagh <igloo@earth.li>**20080326154747] 
[In validate settings, make -Werror easier to override
Ian Lynagh <igloo@earth.li>**20080326141030] 
[Remove a redundant type sig
Ian Lynagh <igloo@earth.li>**20080326004932] 
[Fix warnings in main/DriverPhases
Ian Lynagh <igloo@earth.li>**20080325235828] 
[Remove redundant type sig
Ian Lynagh <igloo@earth.li>**20080325235801] 
[Fix warnings in main/HscStats
Ian Lynagh <igloo@earth.li>**20080325234110] 
[Fix warnings in main/Constants
Ian Lynagh <igloo@earth.li>**20080325233034] 
[Fix warnings in main/InteractiveEval
Ian Lynagh <igloo@earth.li>**20080325230153] 
[Fix warnings in main/Packages
Ian Lynagh <igloo@earth.li>**20080325224444] 
[Fix warnings in main/PprTyThing
Ian Lynagh <igloo@earth.li>**20080325223104] 
[Fix warnings in main/StaticFlags
Ian Lynagh <igloo@earth.li>**20080325221632] 
[Change syntax for newtypes in External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080325170218
 
 The way that newtype declarations were printed in External Core files was
 incomplete, since there was no declaration for the coercion introduced by a
 newtype.
 
 For example, the Haskell source:
 
 newtype T a = MkT (a -> a)
 
 foo (MkT x) = x
 
 got printed out in External Core as (roughly):
 
   %newtype T a = a -> a;
 
   foo :: %forall t . T t -> t -> t =
     %cast (\ @ t -> a1 @ t)
     (%forall t . T t -> ZCCoT t);
 
 There is no declaration anywhere in the External Core program for :CoT, so
 that's bad.
 
 I changed the newtype decl syntax so as to include the declaration for the
 coercion axiom introduced by the newtype. Now, it looks like:
 
   %newtype T a ^ (ZCCoT :: ((T a) :=: (a -> a))) = a -> a;
 
 And an external typechecker could conceivably typecheck code that uses this.
 
 The major changes are to MkExternalCore and PprExternalCore (as well as
 ExternalCore, to change the External Core AST.) I also corrected some typos in
 comments in other files.
 
 Documentation and external tool changes to follow.
 
] 
[Fix warnings in the RTS
Ian Lynagh <igloo@earth.li>**20080325160314
 For some reason this causes build failures for me in my 32-bit chroot,
] 
[Another change for GHC.PrimopWrappers moving from base to ghc-prim
Ian Lynagh <igloo@earth.li>**20080324224006] 
[Update darcs-boring
Ian Lynagh <igloo@earth.li>**20080324212319] 
[Fix primMname in External Core printer
Tim Chevalier <chevalier@alum.wellesley.edu>**20080324014311
 
  My earlier changes broke printing of function types in .hcr files.
   In other words: the z-encoding must die.
] 
[Fix primMname in External Core printer
Tim Chevalier <chevalier@alum.wellesley.edu>**20080324005246
 
 My earlier changes broke printing of function types in .hcr files.
 In other words: the z-encoding must die.
] 
[Follow library changes
Ian Lynagh <igloo@earth.li>**20080323182557
 Integer, Bool and Unit/Inl/Inr are now in new packages integer
 and ghc-prim.
] 
[CgTicky now doesn't know about the Integer data constructors
Ian Lynagh <igloo@earth.li>**20080320195836] 
[-DDEBUG build fix
Ian Lynagh <igloo@earth.li>**20080322140641] 
[Rename rebuild to remake, and define rebuild to "clean; build"
Ian Lynagh <igloo@earth.li>**20080320221915] 
[Handle hierarchical module names in External Core tools
Tim Chevalier <chevalier@alum.wellesley.edu>**20080320014449
 
 I updated the parser to handle hierarchical module names (with package names)
 the way GHC is currently printing them out in External Core.
 
 Beware kludgy use of z-encoding and gratutious copy-pasta from GHC.
 
 You can now use the stand-alone Core parser to parse a very simple
 GHC-generated .hcr file (progress!) but not to typecheck or interpret it
 (the typechecker/interpreter don't snarf in the right libraries yet, among
 other things.) And, the parser is still incomplete in that it doesn't handle
 programs with newtypes/GADTs/etc. whose syntax has changed since 2003. In
 other words: probably don't try to use this yet.
 
] 
[Improve hierarchical module name handling in MkExternalCore
Tim Chevalier <chevalier@alum.wellesley.edu>**20080319190429
 
 It's easier for the External Core parser if MkExternalCore prints
 module names like:
    base:GHCziBase
 rather than like:
    base:GHC.Base
 (which it was doing before.)
 
 So now we z-encode the hierarchical module-name part of a module
 name, but don't z-encode the ':'.
 
 I also removed some old comments that don't seem relevant anymore.
] 
[Fixed remaining warning in coreSyn/MkExternalCore
Tim Chevalier <chevalier@alum.wellesley.edu>**20080319182521
 
 There was a (suppressed) warning about an incomplete pattern match in make_alt. This was because the DEFAULT alt never has variable bindings. I thought it would be better to check that case and panic if it happens than to have an incomplete pattern. It's still not great, but at least now we don't have to suppress any warnings in this file.
] 
[Revert an accidental change
Ian Lynagh <igloo@earth.li>**20080317200130] 
[Print some extra debugging info when doing --show-iface
Ian Lynagh <igloo@earth.li>**20080317185032] 
[Eliminate a global variable
Ian Lynagh <igloo@earth.li>**20080317180150
 Very little parameter passing is needed without it, so there was no real
 benefit to it.
] 
[Follow changes in editline
Ian Lynagh <igloo@earth.li>**20080317103617] 
[Use editline instead of readline
Ian Lynagh <igloo@earth.li>**20080316060407] 
[Vectorise tuple constructorsn
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080317033436] 
[Added double divide and unzipP
keller@cse.unsw.edu.au**20080317025553] 
[Added 'div' to set of vectorising functions
keller@cse.unsw.edu.au**20080311125035] 
[If unregisterised, link with -optl-Wl,--relax on IA64
Ian Lynagh <igloo@earth.li>**20080316214104
 This fixes part of trac #856
] 
[When concatenating variables in Makefile, strip spaces in case one is empty
Ian Lynagh <igloo@earth.li>**20080315141751
 Otherwise "$(A) $(B)" will not be equal to "" even if A and B are empty.
 Trac #856.
] 
[Fix a space leak in :trace (trac #2128)
Ian Lynagh <igloo@earth.li>**20080316211748
 We were doing lots of cons'ing and tail'ing without forcing the tails,
 so were building up lots of thunks.
] 
[If we are failing due to a warning and -Werror, say so
Ian Lynagh <igloo@earth.li>**20080316195636
 Fixes trac #1893, based on a patch from Daniel Franke.
] 
[Remove leftover NoteTy/FTVNote bits
Ian Lynagh <igloo@earth.li>**20080315194220] 
[Remove uses of addFreeTyVars
Ian Lynagh <igloo@earth.li>**20080315155027
 This optimisation actually make things a bit slower on average, as
 measured by nofib. The example in #1136 in particular suffers from high
 memory usage. Therefore we no longer do the optimisation.
] 
[parsing tweak for :break
Simon Marlow <simonmar@microsoft.com>**20080313182936] 
[Some cleanup in TcSimplify.reduceContext
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080313065220
 - Makes this horrid function a bit better - and shorter!
 - Also gets rid of another API function of TcTyFuns
] 
[Properly normalise reduced dicts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080313051708
 - Another chapter in the never-ending TcSimplify.reduceContext saga: after
   context reduction of wanted dicts it is not sufficient to normalise them
   wrt to the wanted equalities.  We also need to take top-level equalities
   into account.  (In fact, we probably also have to normalise wrt to given
   equalities, but I have left that open for the moment - but added a TODO
   note.)
 - This finally eliminates substEqInDictInsts from TcTyFuns interface and
   suggest some further possible clean up (which will be in a separate patch).
 
 Thanks to Roman for the intricate example that uncovered this bug.
] 
[Bump mAX_NDP_PROD to 5
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080313061411] 
[#2050: save the GHCi history in ~/.ghc/ghci_history
Simon Marlow <simonmar@microsoft.com>**20080312215724
 Modified version of Judah's patch
] 
[Make sure we generate PA dictionaries for tuples up to mAX_NDP_PROD
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312034905] 
[Bump mAX_NDP_PROD to 4
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312030245] 
[First cut at reviving the External Core tools
Tim Chevalier <chevalier@alum.wellesley.edu>**20080310025821
 
 I updated the External Core AST to be somewhat closer to reality (where reality is defined by the HEAD), and got all the code to compile under GHC 6.8.1. (That means it works, right?)
 
 Major changes:
 
 - Added a Makefile.
 
 - Core AST:
     - Represented package names and qualified module names.
     - Added type annotation on Case exps.
     - Changed Coerce to Cast.
     - Cleaned up representation of qualified/unqualified names.
     - Fixed up wired-in module names (no more "PrelGHC", etc.)
 
 - Updated parser/interpreter/typechecker/prep for the new AST.
 
 - Typechecker:
     - Used a Reader monad to pass around the global environment and top module name.
     - Added an entry point to check a single expression.
 
 - Prep:
     - Got rid of typeofExp; it's now defined in terms of the typechecker.
 
] 
[Remove ndpFlatten
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080309225914
 
 This patch removes the ndpFlatten directory and the -fflatten static flag.
 This code has never worked and has now been superceded by vectorisation.
] 
[documentation fix: change flag -frules-off to -fno-rewrite-rules
iavor.diatchki@gmail.com**20080309191911] 
[Don't expose the unfolding of dictionary selectors without -O
simonpj@microsoft.com**20080306135026
 
 When compiling without -O we were getting code like this
 
 	f x = case GHC.Base.$f20 of
 		  :DEq eq neq -> eq x x
 
 But because of the -O the $f20 dictionary is not available, so exposing
 the dictionary selector was useless.  Yet it makes the code bigger!
 Better to get
 	f x = GHC.Base.== GHC.Bsae.$f20 x x
 
 This patch suppresses the implicit unfolding for dictionary selectors
 when compiling without -O.  We could do the same for other implicit
 Ids, but this will do for now.
 
 There should be no effect when compiling with -O.  Programs should
 be smaller without -O and may run a tiny bit slower.
 
 
] 
[Fix Trac #783: improve short-cutting literals in the type checker
simonpj@microsoft.com**20080306134734
 
 The Inst.shortCutIntLit mechanism in the type checker was missing cases
 where a floating-point literal was given without an explicit decimal point.
 
 As a result, programs with lots of floating-point literals (without decimals)
 ended up with massive Static Reference Tables.  This is not cool.  See
 comments with Trac #783 for details.
 
 
] 
[Fix Trac #2138: print the 'stupid theta' of a data type
simonpj@microsoft.com**20080306134651] 
[Fix vectorisation monad
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080307050859] 
[Improve SpecConstr for local bindings: seed specialisation from the calls
simonpj@microsoft.com**20080306120004
 
 This patch makes a significant improvement to SpecConstr, based on
 Roman's experience with using it for stream fusion.  The main change is
 this:
 
   * For local (not-top-level) declarations, seed the specialisation 
     loop from the calls in the body of the 'let'.
 
 See Note [Local recursive groups] for discussion and example.  Top-level
 declarations are treated just as before.
 
 Other changes in this patch:
 
   * New flag -fspec-constr-count=N sets the maximum number of specialisations
     for any single function to N.  -fno-spec-constr-count removes the limit.
 
   * Refactoring in specLoop and friends; new algebraic data types 
     OneSpec and SpecInfo instead of the tuples that were there before
 
   * Be less keen to specialise on variables that are simply in scope.
     Example
       f p q = letrec g a y = ...g....  in g q p
     We probably do not want to specialise 'g' for calls with exactly
     the arguments 'q' and 'p', since we know nothing about them.
 
 
] 
[Refactor OccAnal; and improve dead-code elimination
simonpj@microsoft.com**20080305155708
 
 The occurrence analyer is now really rather subtle when dealing
 with recursive groups; see Note [Loop breaking and RULES] especially.
 
 This patch refactors this code a bit, notably 
   * Introduces a new data type Details instead of a tuple
 
   * More clearly breaks up a recursive group into its SCCs
 	before processing it in a separate function occAnalRec
 
   * As a result, does better dead-code elimination, becuause it's
    	done per SCC rather than for the whole Rec
 
 
   
 
] 
[Copy the right ghc-pkg.bin into bindists
Ian Lynagh <igloo@earth.li>**20080305224020] 
[Add a missing endif to the bindist Makefile
Ian Lynagh <igloo@earth.li>**20080305221136] 
[Fix bashisms; patch from Bernie Pope
Ian Lynagh <igloo@earth.li>**20080305134556] 
[Improve no-type-signature warning
Ian Lynagh <igloo@earth.li>**20080305011242
 Instead of
    Warning: Definition but no type signature for `.+.'
             Inferred type: .+. :: forall a. a
 we now say
     Warning: Definition but no type signature for `.+.'
              Inferred type: (.+.) :: forall a. a
] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20080302151339] 
[In bindists, look in the right place to see if we have provided docs
Ian Lynagh <igloo@earth.li>**20080302140408
 Fixes trac #1971: unjustified warning about documentation
] 
[Remove GADT refinements, part 3
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080229035740] 
[MacOS installer: Uninstaller must be able to deal with ATiger receipts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228050707] 
[Add and use seqBitmap when constructing SRTs
Ian Lynagh <igloo@earth.li>**20080227144505
 This roughly halves memory usage when compiling
     module Foo where
 
     foo :: Double -> Int
     foo x | x == 1 = 1
     ...
     foo x | x == 500 = 500
 without optimisation.
] 
[Whitespace
Ian Lynagh <igloo@earth.li>**20080220191230] 
[Remove GADT refinements, part 2
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228055326] 
[Fix Trac #2130: improve derived Ord for primmitive types
simonpj@microsoft.com**20080228121106
 
 This patch does two things:
 
 * (Minor): in TcGenDeriv.careful_compare_Case, test for less-than before
   equality. This should reduce the number of dynamic tests, and also gives
   more scope for optimisation, since less-than tells us more than equality.
 
 * (More important): add special-case derived code for data types that are
   simple wrappers of primitive types. See 
 	Note [Comparision of primitive types]
   This fixes Trac 2130.
 
 However see also Trac #2132, which is not addressed here.
 
] 
[Comments only
simonpj@microsoft.com**20080228111301] 
[add a note about SMP execution not being supported with profiling
Simon Marlow <simonmar@microsoft.com>**20080228112209] 
[Wibble to error message (stmt of do block or comprehension)
simonpj@microsoft.com**20080228083104] 
[Make explicit lists more fusable
Max Bolingbroke <batterseapower@hotmail.com>**20080228083050] 
[Add comments explaining flags
simonpj@microsoft.com**20080228082935] 
[Remove GADT refinements, part 1
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228045351
 - A while ago, I changed the type checker to use equality constraints together
   with implication constraints to track local type refinement due to GADT
   pattern matching.  This patch is the first of a number of surgical strikes
   to remove the resulting dead code of the previous GADT refinement machinery.
 
   Hurray to code simplification!
] 
[Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228001957
 - See test case indexed-types/should_fail/SkolemOccursLoop, which sends the
   type checker into an endless loop without this fix
] 
[Fix Trac #2126: re-order tests (easy)
simonpj@microsoft.com**20080227163202] 
[Fix Trac #2111: improve error handling for 'rec' in do-notation
simonpj@microsoft.com**20080226175635
 
 We were not dealing correctly with all the combinations of 
 	do notation
 	mdo notation
 	arrow notation
 in combination with 'rec' Stmts.
 
 I think this patch sorts it out.
 
] 
[Remove gaw comment
simonpj@microsoft.com**20080226175305] 
[Fix Trac #1899; missing equality check in typechecker's constraint simplifier
simonpj@microsoft.com**20080226174743
 
 This patch fixes a missing equality check (uifying type variable b=b) in
 the new constraint simplifier in TcTyFuns.  As it stands, we were making
 'b' point to itself, which subsequently led to an infinite loop when
 zonking.  Test is T1899.hs
 
 
 
] 
[Enable -prof -threaded (#886)
Simon Marlow <simonmar@microsoft.com>**20080228111631
 It turns out that -prof -threaded works (modulo some small changes),
 because all the data structures used in profiling are only accessed by
 one thread at a time, at long as we don't use +RTS -N2 or higher.  So
 this patch enables the use of -prof -threaded, but an error is given
 if you ask for more than one CPU with +RTS -N.
] 
[Mac installer: cross-compile for 10.4
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080225093734] 
[Make UniqFM non-strict again while we work out what we're doing.
Ian Lynagh <igloo@earth.li>**20080225171305
 This "fixes" the very-slow problem we have when compiling dictionaries.
] 
[Fix Trac #2082
simonpj@microsoft.com**20080219173410] 
[Fix Trac #2114: error reporting for 'forall' without appropriate flags
simonpj@microsoft.com**20080222182646] 
[Improve error messages from type-checking data constructors
simonpj@microsoft.com**20080222182514
 
 This addresses Trac #2112
 
] 
[Add type sigs and minor refactoring
simonpj@microsoft.com**20080222182305] 
[FIX #2073: Don't add empty lines to GHCI's history
Ian Lynagh <igloo@earth.li>**20080224143256] 
[FIX #1977: Check to see if $(bindir) is in the path
Ian Lynagh <igloo@earth.li>**20080224134334
 Before telling the user to add it, when installing a bindist, check to
 see if $(bindir) is already in the path.
] 
[Fix warnings in Simplify
Ian Lynagh <igloo@earth.li>**20080222150318] 
[Whitespace
Ian Lynagh <igloo@earth.li>**20080222140755] 
[Add a comment
Ian Lynagh <igloo@earth.li>**20080220205844] 
[Fix most of the warnings in StgLint
Ian Lynagh <igloo@earth.li>**20080220171858] 
[Whitespace
Ian Lynagh <igloo@earth.li>**20080220171140] 
[CprAnalyse is warning-free
Ian Lynagh <igloo@earth.li>**20080220170843] 
[Whitespace
Ian Lynagh <igloo@earth.li>**20080220170650] 
[Mac OS X deployment target: piping opts through Makefiles
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080221224449] 
[FIX #2122: file locking bug
Simon Marlow <simonmar@microsoft.com>**20080226104650
 Second and subsequent readers weren't being inserted into the
 fd->lock hash table, which meant that the file wasn't correctly
 unlocked when the Handles were closed.
] 
[documentation improvements from Frederik Eaton
Simon Marlow <simonmar@microsoft.com>**20080226102612] 
[markup fix
Simon Marlow <simonmar@microsoft.com>**20080226102558] 
[Rewrite fixTvSubstEnv so it iteratively applies its substition
Ian Lynagh <igloo@earth.li>**20080220153752
 This fixes a stack overflow when using strict UniqFMs. It might be
 possible to rewrite it more efficiently, or to avoid needing it in the
 first place.
] 
[Typo
Ian Lynagh <igloo@earth.li>**20080219204117] 
[Make some more modules use LazyUniqFM instead of UniqFM
Ian Lynagh <igloo@earth.li>*-20080207015714
 If these modules use UniqFM then we get a stack overflow when compiling
 modules that use fundeps. I haven't tracked down the actual cause.
] 
[Add configure option --with-macos-deployment-target
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080219031755] 
[Fix warning in SCCfinal
Ian Lynagh <igloo@earth.li>**20080219020429] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080219015259] 
[Fix warnings in UniqSupply
Ian Lynagh <igloo@earth.li>**20080219013233] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080219012417] 
[Fix non-missing-signature warnings in MkId
Ian Lynagh <igloo@earth.li>**20080219010917] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080219005042] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218234559] 
[Make literals in the syntax tree strict
Ian Lynagh <igloo@earth.li>**20080218183424] 
[Make the parser a bit stricter
Ian Lynagh <igloo@earth.li>**20080218175514] 
[seq what we actually want to seq, not the seq'ing function
Ian Lynagh <igloo@earth.li>**20080213131857] 
[All installed Haskell prgms have an inplace and an installed version
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080218061809
 - GHC installs a range of compiled Haskell programs in addition to the actual
   compiler.  To ensure that they all run on the platform targeted by the build
   (which may have different libraries installed than the build host), we need
   to make sure that all compiled Haskell code going into an install is build
   with the stage 1 compiler, not the bootstrap compiler.  Getting this right
   is especially important on the Mac to enable builds that work on Mac OS X
   versions that are older than the one performing the build.
 - For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
   hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
   and a version for installation.  The former is build by the bootstrap
   compiler during the stage 1 build and the latter is build by the stage 1
   compiler during the stage 2 build.
 - This is really very much as the setup for ghc itself, only that we don't use
   separate stage1/ and stage2/ build directories.  Instead, we clean before
   each build.  CAVEAT: This only works properly if invoked from the 
   toplevel Makefile.
 - Instead of UseStage1=YES (as used by the previous binary-dist-specific
   recompilation), we now use the same $(stage) variables as used for the
   compiler proper - to increase uniformity and to avoid extra conditionals for
   the install target.
] 
[Fix warnings in Pretty
Ian Lynagh <igloo@earth.li>**20080218214151] 
[Fix warnings in FiniteMap
Ian Lynagh <igloo@earth.li>**20080218200408] 
[Fix warnings in Binary
Ian Lynagh <igloo@earth.li>**20080218193645] 
[Fix warnings in StringBuffer
Ian Lynagh <igloo@earth.li>**20080218191846] 
[Fix warnings in IOEnv
Ian Lynagh <igloo@earth.li>**20080218190849] 
[Fix #1984: missing context switches
Simon Marlow <simonmar@microsoft.com>**20080219102212] 
[fix unregisterised stage 2 build
Simon Marlow <simonmar@microsoft.com>**20080219093407] 
[Fix warnings in FastString, and check for empty case in head/tail
Ian Lynagh <igloo@earth.li>**20080218144707] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218112232] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218112101] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218111941] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218110241] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218105909] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080218105343] 
[Tweak whitespace
Ian Lynagh <igloo@earth.li>**20080217175133] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20080217175021] 
[Print better error message for reading External Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20080217223844
 
 GHC panicked with a "Prelude.undefined" error message if you tried to
 compile a .hcr file. Since support for reading ExternalCore simply does
 not exist, I added an error message to say that.
 
 Please merge to 6.8. Thanks.
 
] 
[Documentation only: update External Core section of user guide
Tim Chevalier <chevalier@alum.wellesley.edu>**20080217213206
 
 I updated the External Core section of the user guide, mostly to reflect
 that the input path is broken and there are no firm plans to fix it. 
] 
[Generate foo(void) rather than foo() in FFI stub files
Ian Lynagh <igloo@earth.li>**20080216141031
 -Wstrict-prototypes warns about the latter.
 Patch from pcc in trac #2100.
] 
[Make hasktags -Wall clean
Ian Lynagh <igloo@earth.li>**20080215160309] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080215155122] 
[Fix building hasktags
Ian Lynagh <igloo@earth.li>**20080215154415] 
[Revert an accidental comment change
Ian Lynagh <igloo@earth.li>**20080215153558] 
[find module names, fix for get constructor names, find class names as well, sort ctag files
marco-oweber@gmx.de**20080212232157] 
[added TODO item and link to alternatives on wiki
marco-oweber@gmx.de**20080212231853] 
[Make more arch-specific #if's exclusive with #else #error cases
Duncan Coutts <duncan@haskell.org>**20080207170020
 So when the next person compiles the Sparc NCG it should fail more
 obviously at compile time rather than panicing at runtime.
 Plus one obvious fix for LocalReg gaining an extra param
 Missing bits of Sparc NCG:
   * genSwitch for generating jump tables. This is the most tricky one.
   * ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires
     finding and verifying the values. The nearby comment describes how.
   * isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check
     what this is supposed to do for single and double float types.
   * regDotColor. Probably just copy the ppc impl.
] 
[Document code a bit better
Ian Lynagh <igloo@earth.li>**20080213161106] 
[Add a necessary [] error case
Ian Lynagh <igloo@earth.li>**20080213154232] 
[\e -> f e   ===>    f
Ian Lynagh <igloo@earth.li>**20080213153835] 
[Fixed warnings in parser/Lexer.x
Twan van Laarhoven <twanvl@gmail.com>**20080204021131
 
 The -w flag can not be removed, because alex also generates code with lots of warnings.
] 
[Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080204015053] 
[Fixed warnings in vectorise/VectMonad
Twan van Laarhoven <twanvl@gmail.com>**20080203223932] 
[Fix typo in message
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080212052219] 
[Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211115201] 
[attempt to fix #2098 (PPC pepple please test & fix)
Simon Marlow <simonmar@microsoft.com>**20080218115748] 
[Mac installer: make Uninstaller a bit more robust
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211091119] 
[Mac installer: add comprehensive licencing information
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211061450] 
[Force -s on ar in xcode builds
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211022329] 
[Fix warning (FIX validate)
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211040211] 
[Symbolic tags for simplifier phases
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211032350
 
 Every simplifier phase can have an arbitrary number of tags and multiple
 phases can share the same tags. The tags can be used as arguments to
 -ddump-simpl-phases to specify which phases are to be dumped.
 For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and
 0 of the initial simplifier run (they all share the "main" tag) while
 -ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run.
 
 At the moment, the supported tags are:
 
   main                 The main, staged simplifier run (before strictness)
   post-worker-wrapper  After the w/w split
   post-liberate-case   After LiberateCase
   final                Final clean-up run
 
 The names are somewhat arbitrary and will change in the future.
] 
[Allow -ddump-simpl-phases to specify which phases to dump
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211020630
 
 We can now say -ddump-simpl-phases=1,2 to dump only these two phases and
 nothing else.
] 
[Fixed warnings in parser/ParserCoreUtils
Twan van Laarhoven <twanvl@gmail.com>**20080204022226] 
[Fixed warnings in hsSyn/Convert, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080204000510] 
[Fixed warnings in types/Unify
Twan van Laarhoven <twanvl@gmail.com>**20080203224228] 
[Fixed warnings in ndpFlatten/FlattenInfo
Twan van Laarhoven <twanvl@gmail.com>**20080203224159] 
[Fixed warnings in vectorise/VectBuiltIn
Twan van Laarhoven <twanvl@gmail.com>**20080203224043] 
[Fixed warnings in vectorise/VectCore
Twan van Laarhoven <twanvl@gmail.com>**20080203224003] 
[Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203214848] 
[Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203214602] 
[Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203211253] 
[Fixed warnings in deSugar/Check, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203210814] 
[Fixed warnings in deSugar/Match, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203210533] 
[Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080203210402] 
[Fixed warnings in deSugar/DsMonad
Twan van Laarhoven <twanvl@gmail.com>**20080203210339] 
[Wibble the Makefile: DQ, \" and '"'
Ian Lynagh <igloo@earth.li>**20080210171104] 
[Don't use -w when compiling Config.hs
Ian Lynagh <igloo@earth.li>**20080210171050] 
[Add typesigs to Config.hs
Ian Lynagh <igloo@earth.li>**20080210170925] 
[Allow skipping "make clean" or only re-running the testsuite in validate
Ian Lynagh <igloo@earth.li>**20080210162842] 
[Mac installer: added support for full docs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080209110727] 
[Fixed permissions and other cleanup in Mac installer package
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080207030528] 
[Adjust error message (Trac #2079)
simonpj@microsoft.com**20080207171622] 
[Redo inlining patch, plus some tidying up
simonpj@microsoft.com**20080207155102
 
 This adds back in the patch 
   * UNDO: Be a little keener to inline
 
 It originally broke the compiler because it tickled a Cmm optimisation bug,
 now fixed.  
 
 In revisiting this I have also make inlining a bit cleverer, in response to
 more examples from Roman. In particular
 
   * CoreUnfold.CallCtxt is a data type that tells something about
     the context of a call.  The new feature is that if the context is
     the argument position of a function call, we record both 
 	- whether the function (or some higher up function) has rules
 	- what the argument discount in that position is
     Either of these make functions keener to inline, even if it's
     in a lazy position
 
   * There was conseqential tidying up on the data type of CallCont.
     In particular I got rid of the now-unused LetRhsFlag
 
 
 
] 
[Comments, and a type signature
simonpj@microsoft.com**20080125174203] 
[Convert more UniqFM's back to LazyUniqFM's
Ian Lynagh <igloo@earth.li>**20080207144736
 These fix these failures:
    break008(ghci)
    break009(ghci)
    break026(ghci)
    ghci.prog009(ghci)
    ghci025(ghci)
    print007(ghci)
    prog001(ghci)
    prog002(ghci)
    prog003(ghci)
 at least some of which have this symptom:
     Exception: expectJust prune
] 
[Be a bit more consistent about what's a set and what's a map
Ian Lynagh <igloo@earth.li>**20080205211909] 
[Make some more modules use LazyUniqFM instead of UniqFM
Ian Lynagh <igloo@earth.li>**20080207015714
 If these modules use UniqFM then we get a stack overflow when compiling
 modules that use fundeps. I haven't tracked down the actual cause.
] 
[Remove unused import
Ian Lynagh <igloo@earth.li>**20080207002544] 
[Make UniqFM strict in its elements
Ian Lynagh <igloo@earth.li>**20080206141620] 
[Use uniqSetToList rather than eltsUFM
Ian Lynagh <igloo@earth.li>**20080206000043] 
[Use isEmptyUniqSet rather than isNullUFM
Ian Lynagh <igloo@earth.li>**20080205205336] 
[Added Uninstaller
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080206073054] 
[Teach cheapEqExpr about casts
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080206035007
 
 Previously, cheapEqExpr would always return False if it encountered a cast.
 This was bad for two reasons. Firstly, CSE (which uses cheapEqExpr to compare
 expressions) never eliminated expressions which contained casts and secondly,
 it was inconsistent with exprIsBig. This patch fixes this.
] 
[Inject implicit bindings before the simplifier (Trac #2070)
simonpj@microsoft.com**20080205165507
 
 With constructor unpacking, it's possible for constructors and record
 selectors to have non-trivial code, which should be optimised before
 being fed to the code generator.  Example:
 
   data Foo = Foo { get :: {-# UNPACK #-} !Int }
 
 Then we do not want to get this:
   T2070.get =
     \ (tpl_B1 :: T2070.Foo) ->
     case tpl_B1 of tpl1_B2 { T2070.Foo rb_B4 ->
         let {
           ipv_B3 [Just S] :: GHC.Base.Int
           [Str: DmdType m]
           ipv_B3 = GHC.Base.I# rb_B4
         } in  ipv_B3 }
 
 If this goes through to codegen, we'll generate bad code.  Admittedly,
 this only matters when the selector is used in a curried way (e.g
 map get xs), but nevertheless it's silly.
 
 This patch injects the implicit bindings in SimplCore, before the
 simplifier runs.  That slows the simplifier a little, because it has
 to look at some extra bindings; but it's probably a slight effect.
 If it turns out to matter I suppose we can always inject them later,
 e.g. just before the final simplification.
 
 An unexpected (to me) consequence is that we get some specialisation rules
 for class-method selectors.  E.g. we get a rule
 	RULE  (==) Int dInt = eqInt
 There's no harm in this, but not much benefit either, because the 
 same result will happen when we inline (==) and dInt, but it's perhaps
 more direct.
 
 
] 
[Make do-notation a bit more flexible (Trac #1537)
simonpj@microsoft.com**20080205164816
 
 This is a second attempt to fix #1537: to make the static typechecking
 of do-notation behave just like the desugared version of the same thing.
 This should allow parameterised monads to work properly (see Oleg's comment
 in the above ticket).
 
 We can probably merge to 6.8.3 if it goes smoothly.
 
 Incidentally, the resulting setup suffers from greater type ambiguity
 if (>>=) has a very general type.  So test rebindable6 no longer works
 (at least not without more type signatures), and rebindable5 requires
 extra functional dependencies.  But they are weird tests.
 
] 
[White space only
simonpj@microsoft.com**20080205163702] 
[FIX #2047: Windows (and older Unixes): align info tables to 4 bytes, not 2
Simon Marlow <simonmar@microsoft.com>**20080205101425
 Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it
 means align to 2 bytes.  The compacting collector requires info tables
 to be aligned to 4 bytes, because it stores tag bits in the low 2
 bits.
 
 This only affects -fvia-C - the native code generator was already
 emitting the correct alignment.  The incorrect alignment might well
 have been adversely affecting performance with -fvia-C on Windows.
] 
[Most of installer for framework on system volume
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205073738] 
[Split into two types of Mac installer specs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052504] 
[Lambda logo for packages
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052017
 - This image is in the public domain, cf 
   http://en.wikipedia.org/wiki/Image:Greek_lc_lamda_thin.svg
] 
[xcode build target for fixed /Library/Frameworks inst
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205030047
 - Also moving all MacOS-specific Makefile components into 
   distrib/MacOS/Makefile
] 
[First stab at an installer package for the Mac
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080202134853
 - GHC as a Mac framework
 - I tried to make a package where the user could choose whether to install
   in /Library/Frameworks or ~/Library/Frameworks (to allow installation for
   non-admins).  However, that doesn't work well without including the whole
   distribution twice as the decision as to whether the admin password needs
   to be entered is made at packaging time (not at install time).
] 
[FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs
Simon Marlow <simonmar@microsoft.com>**20080209143648] 
[FIX #2080: an optimisation to remove a widening was wrong
Simon Marlow <simonmar@microsoft.com>**20080208124219] 
[Remove some of the old compat stuff now that we assume GHC 6.4
Simon Marlow <simonmar@microsoft.com>**20080208124132] 
[Allow runghc to take input from stdin, just like Ruby & Python
Simon Marlow <simonmar@microsoft.com>**20080207145830] 
[Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory
Simon Marlow <simonmar@microsoft.com>**20080207143915] 
[remove a bogus assertion
Simon Marlow <simonmar@microsoft.com>**20080207143805] 
[Tweaks to stack squeezing
Simon Marlow <simonmar@microsoft.com>**20080207122445
 
 1. We weren't squeezing two frames if one of them was a marked update
    frame.  This is easy to fix.
 
 2. The heuristic to decide whether to squeeze was a little
    conservative.  It's worth copying 3 words to save an update frame.
  
] 
[FIX BUILD on x86_64
Simon Marlow <simonmar@microsoft.com>**20080206113936] 
[matchesPkg: match against the pkg Id (foo-1.0) not just the package name (foo)
Simon Marlow <simonmar@microsoft.com>**20080205090429
 Fixes the ghcpkg01 test.
] 
[Fix DEBUG build
simonpj@microsoft.com**20080204160514] 
[Support for using libffi to implement FFI calls in GHCi (#631)
Simon Marlow <simonmar@microsoft.com>**20080204161053
 This means that an unregisterised build on a platform not directly
 supported by GHC can now have full FFI support using libffi.
 
 Also in this commit:
 
  - use PrimRep rather than CgRep to describe FFI args in the byte
    code generator.  No functional changes, but PrimRep is more correct.
 
  - change TyCon.sizeofPrimRep to primRepSizeW, which is more useful
] 
[Make seqAlts actually seq everything
Ian Lynagh <igloo@earth.li>**20080203134321] 
[Strictness tweaks
Ian Lynagh <igloo@earth.li>**20080203024836] 
[Whitespace
Ian Lynagh <igloo@earth.li>**20080203003929] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080202213936] 
[Tweak strictness
Ian Lynagh <igloo@earth.li>**20080202213542] 
[Fix warnings in deSugar/DsBinds
Ian Lynagh <igloo@earth.li>**20080130144014] 
[Use the correct libffi type for pointers
Simon Marlow <simonmar@microsoft.com>**20080104131936] 
[UNDO: Be a little keener to inline
Simon Marlow <simonmar@microsoft.com>**20080201144810
 
 This patch caused at least the following test failures:
    1744(normal)
    ghci028(ghci)
    unicode001(normal)
 and additionally made the stage3 build fail.  
 
 A little more validation please!
 
 I didn't find the exact cause of the failure yet, but it appears that
 the Lexer is miscompiled in some strange way.  If any of {Encoding,
 StringBuffer, or Lexer} are compiled without -O, the problem goes
 away.
] 
[Be a little keener to inline
simonpj@microsoft.com**20080125104616
 
 This is really a bug.  A saturated call in an "interesting" context
 should inline, but there was a strange "n_val_args > 0" condition, which
 was stopping it.  Reported by Roman.
 
 
] 
[FIX BUILD with GHC 6.4.x
Simon Marlow <simonmar@microsoft.com>**20080201122753] 
[FIX BUILD with ghc-6.4.x
Simon Marlow <simonmar@microsoft.com>**20080201114302] 
[Warning clean up
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080131024845] 
[Move spiltDmdTy within module (no change in code)
simonpj@microsoft.com**20080129011438] 
[Fix typo where I forgot the new substitution
simonpj@microsoft.com**20080128213856] 
[Add missing (error) case in isIrrefutablePat
simonpj@microsoft.com**20080128213429] 
[Add missing (error) case in pprConDecl
simonpj@microsoft.com**20080128213409] 
[Fix warnings on non-Windows
Ian Lynagh <igloo@earth.li>**20080130114640] 
[Fixed warnings in main/ErrUtils
Twan van Laarhoven <twanvl@gmail.com>**20080127015419] 
[Fixed warnings in main/HeaderInfo, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080127014118] 
[Fixed warnings in main/DynFlags
Twan van Laarhoven <twanvl@gmail.com>**20080127012443] 
[Fixed warnings in hsSyn/HsSyn
Twan van Laarhoven <twanvl@gmail.com>**20080127004626] 
[Fixed warnings in hsSyn/HsUtils
Twan van Laarhoven <twanvl@gmail.com>**20080127004506] 
[Fixed warnings in hsSyn/HsTypes
Twan van Laarhoven <twanvl@gmail.com>**20080127004419] 
[Fixed warnings in hsSyn/HsDoc
Twan van Laarhoven <twanvl@gmail.com>**20080127004359] 
[Fixed warnings in hsSyn/HsLit
Twan van Laarhoven <twanvl@gmail.com>**20080127004330] 
[Fixed warnings in hsSyn/HsImpExp, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080127004254] 
[Fixed warnings in hsSyn/HsPat, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080127004209] 
[Fixed warnings in hsSyn/HsBinds, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080127004119] 
[Fixed warnings in hsSyn/HsDecls, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080127004046] 
[Fixed warnings in simplCore/CSE
Twan van Laarhoven <twanvl@gmail.com>**20080126233918] 
[Fixed warnings in profiling/CostCentre, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126232841] 
[Fixed warnings in types/InstEnv
Twan van Laarhoven <twanvl@gmail.com>**20080126231732] 
[Fixed warnings in types/FamInstEnv
Twan van Laarhoven <twanvl@gmail.com>**20080126231426] 
[Fixed warnings in simplStg/SRT, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126230900] 
[Fixed warnings in simplStg/StgStats, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126230830] 
[Fixed warnings in simplStg/SimplStg
Twan van Laarhoven <twanvl@gmail.com>**20080126230805] 
[Fixed warnings in vectorise/VectUtils
Twan van Laarhoven <twanvl@gmail.com>**20080126223033] 
[Fixed warnings in types/Generics
Twan van Laarhoven <twanvl@gmail.com>**20080126222817] 
[Fixed warnings in stgSyn/StgSyn
Twan van Laarhoven <twanvl@gmail.com>**20080126221010] 
[Fixed warnings in types/TyCon
Twan van Laarhoven <twanvl@gmail.com>**20080126215800] 
[Fixed warnings in types/Type, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126214126] 
[Fixed warnings in types/TypeRep
Twan van Laarhoven <twanvl@gmail.com>**20080126211722] 
[Fixed warnings in types/FunDeps
Twan van Laarhoven <twanvl@gmail.com>**20080126203050] 
[Fixed warnings in basicTypes/OccName
Twan van Laarhoven <twanvl@gmail.com>**20080126202737] 
[Fixed warnings in basicTypes/RdrName
Twan van Laarhoven <twanvl@gmail.com>**20080126202104] 
[Fixed warnings in utils/Encoding
Twan van Laarhoven <twanvl@gmail.com>**20080126201235] 
[Fixed warnings in utils/Digraph
Twan van Laarhoven <twanvl@gmail.com>**20080126200754] 
[Fixed warnings in basicTypes/Demand
Twan van Laarhoven <twanvl@gmail.com>**20080126195929] 
[Fixed warnings in basicTypes/Unique
Twan van Laarhoven <twanvl@gmail.com>**20080126195459] 
[Fixed warnings in coreSyn/ExternalCore
Twan van Laarhoven <twanvl@gmail.com>**20080126194759] 
[Fixed warnings in simplCore/OccurAnal
Twan van Laarhoven <twanvl@gmail.com>**20080126194426] 
[Fixed warnings in basicTypes/BasicTypes
Twan van Laarhoven <twanvl@gmail.com>**20080126194255] 
[Fixed warnings in basicTypes/Literal, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126193209] 
[Fixed warnings in basicTypes/Id
Twan van Laarhoven <twanvl@gmail.com>**20080126192817] 
[Fixed warnings in basicTypes/Var
Twan van Laarhoven <twanvl@gmail.com>**20080126191939] 
[Fixed warnings in basicTypes/Name
Twan van Laarhoven <twanvl@gmail.com>**20080126191501] 
[Fixed warnings in types/Coercion, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126190735] 
[Fixed warnings in coreSyn/MkExternalCore, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080126012807] 
[Fixed warnings in coreSyn/PprExternalCore
Twan van Laarhoven <twanvl@gmail.com>**20080125162418] 
[Fixed warnings in coreSyn/CoreUtils, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080125161800] 
[Fixed warnings in coreSyn/CoreUnfold
Twan van Laarhoven <twanvl@gmail.com>**20080125161308] 
[Fixed warnings in coreSyn/CorePrep
Twan van Laarhoven <twanvl@gmail.com>**20080125161051] 
[Fixed warnings in coreSyn/CoreSubst
Twan van Laarhoven <twanvl@gmail.com>**20080125161002] 
[Fixed warnings in coreSyn/CoreLint
Twan van Laarhoven <twanvl@gmail.com>**20080125160809] 
[Fixed warnings in coreSyn/CoreFVs, except for incomplete pattern matches
Twan van Laarhoven <twanvl@gmail.com>**20080125160716] 
[Fixed warnings in types/Class
Twan van Laarhoven <twanvl@gmail.com>**20080125160438] 
[Fix warnings in coreSyn/CoreTidy
Twan van Laarhoven <twanvl@gmail.com>**20080118165559] 
[Fix warnings in coreSyn/CoreSyn
Twan van Laarhoven <twanvl@gmail.com>**20080118165506] 
[Strictness tweaks
Ian Lynagh <igloo@earth.li>**20080125174347] 
[Parser tweak
Ian Lynagh <igloo@earth.li>**20080125145847] 
[A couple more parser tweaks
Ian Lynagh <igloo@earth.li>**20080125143421] 
[Make comb[234] strict
Ian Lynagh <igloo@earth.li>**20080124183149] 
[Strictness tweaks
Ian Lynagh <igloo@earth.li>**20080124183142] 
[Tell happy to be strict
Ian Lynagh <igloo@earth.li>**20080124165214] 
[Make the Parser Monad's return strict
Ian Lynagh <igloo@earth.li>**20080124155827] 
[Get a bit of sharing
Ian Lynagh <igloo@earth.li>**20080124152000] 
[Make sL strict in /both/ arguments to L
Ian Lynagh <igloo@earth.li>**20080124151223] 
[A touch more strictness in the parser
Ian Lynagh <igloo@earth.li>**20080124150137] 
[Add a bit of strictness to the parser
Ian Lynagh <igloo@earth.li>**20080124145311] 
[Use nilFS
Ian Lynagh <igloo@earth.li>**20080123211917] 
[Whitespace only
Ian Lynagh <igloo@earth.li>**20080123174153] 
[Fix #2062: foldr1 problem in hpc tool
andy@galois.com**20080126210607] 
[Fix do-notation so that it works with -DDEBUG
simonpj@microsoft.com**20080125163101] 
[Fix the build
Ian Lynagh <igloo@earth.li>**20080124141800
 Work around various problems caused by some of the monadification patches
 not being applied.
] 
[Replace ioToTcRn with liftIO
Twan van Laarhoven <twanvl@gmail.com>**20080117220553] 
[Remove unused custom versions of monad combinators from IOEnv
Twan van Laarhoven <twanvl@gmail.com>**20080117215835] 
[Remove unused custom versions of monad combinators from UniqSupply
Twan van Laarhoven <twanvl@gmail.com>**20080117215752] 
[Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv
Twan van Laarhoven <twanvl@gmail.com>**20080117215233] 
[Monadify iface/BuildTyCl: use return
Twan van Laarhoven <twanvl@gmail.com>**20080117215036] 
[Monadify iface/TcIface: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117214938] 
[Monadify iface/MkIface: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117214441] 
[Monadify iface/LoadIface: use return and liftIO
Twan van Laarhoven <twanvl@gmail.com>**20080117214233] 
[Monadify iface/IfaceEnv: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117214041] 
[Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO
Twan van Laarhoven <twanvl@gmail.com>**20080117213850] 
[Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117213636] 
[Monadify typecheck/TcRnDriver: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117213352] 
[Monadify typecheck/TcMatches: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117213307] 
[Monadify typecheck/TcMType: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117213242] 
[Monadify typecheck/TcInstDcls: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117213040] 
[Monadify typecheck/TcHsType: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117212822] 
[Monadify typecheck/TcSimplify: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117212200] 
[Monadify typecheck/TcSplice: use do and return
Twan van Laarhoven <twanvl@gmail.com>**20080117211911] 
[Monadify typecheck/TcTyClsDecls: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117211746] 
[Monadify typecheck/TcDefaults: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117211558] 
[Monadify typecheck/TcDeriv: use return
Twan van Laarhoven <twanvl@gmail.com>**20080117211507] 
[Monadify typecheck/TcClassDcl: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117211439] 
[Monadify typecheck/TcBinds: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117211035] 
[Monadify typecheck/TcArrows: use do and return
Twan van Laarhoven <twanvl@gmail.com>**20080117210818] 
[Monadify typecheck/Inst: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117210655] 
[Monadify typecheck/TcUnify: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117210213
   there may be some accidental tab->space conversion
] 
[Monadify typecheck/TcTyFuns: use standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117205505] 
[Monadify typecheck/TcPat: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117205423] 
[Monadify typecheck/TcRules: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117205307] 
[Monadify typecheck/TcForeign: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117204934] 
[Monadify typecheck/TcExpr: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117204603] 
[Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven <twanvl@gmail.com>**20080117204330] 
[Monadify specialise/SpecConstr: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117203842] 
[Monadify stgSyn/StgLint
Twan van Laarhoven <twanvl@gmail.com>**20080117203042
  - made LintM a newtype instead of a type synonym
  - use do, return and standard monad functions
  - use MaybeT where `thenMaybeL` was used
  - removed custom versions of monad functions
 
] 
[Monadify stgSyn/CoreToStg
Twan van Laarhoven <twanvl@gmail.com>**20080117202619
  - made LneM a newtype instead of a type synonym
  - use do, return and standard monad functions
  - removed custom versions of monad functions
] 
[Remove generic monad function from State, it was moved to MonadUtils
Twan van Laarhoven <twanvl@gmail.com>**20080117202144] 
[Added MaybeT monad transformer to utils/Maybes
Twan van Laarhoven <twanvl@gmail.com>**20080117202051] 
[Removed unused Maybe functions, use the standard Maybe monad instead
Twan van Laarhoven <twanvl@gmail.com>**20080117201953] 
[MonadIO instance for IOEnv
Twan van Laarhoven <twanvl@gmail.com>**20080117201812] 
[Monadify simplCore/SimplMonad: custom monad functions are no longer needed
Twan van Laarhoven <twanvl@gmail.com>**20080117200354] 
[Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions
Twan van Laarhoven <twanvl@gmail.com>**20080117200228] 
[Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven <twanvl@gmail.com>**20080117195958] 
[Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven <twanvl@gmail.com>**20080117195625] 
[Monadify simplCore/Simplify: use do and return
Twan van Laarhoven <twanvl@gmail.com>**20080117195408] 
[Monadify simplCore/SimplEnv: use standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117195255] 
[Monadify simplCore/SimplCore: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117195149] 
[Monadify profiling/SCCfinal
Twan van Laarhoven <twanvl@gmail.com>**20080117194417
   - change monad type synonym into a newtype
   - use do, return and standard monad functions
] 
[Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117193154] 
[Monadify rename/RnTypes: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117190823] 
[Monadify rename/RnPat: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117190033] 
[Monadify rename/RnNames: use return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117185837] 
[seqMaybe is more commonly known as mplus
Twan van Laarhoven <twanvl@gmail.com>**20080117185330] 
[Monadify rename/RnBinds: use do, return and standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117184354] 
[Monadify stranal/StrictAnal: use the State monad instead of a custom thing
Twan van Laarhoven <twanvl@gmail.com>**20080117180449] 
[Monadify stranal/WwLib: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117180022] 
[Added MonadUnique class for monads that have a unique supply
Twan van Laarhoven <twanvl@gmail.com>**20080117175616] 
[Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117175007] 
[Added Applicative and Functor instances for State monad
Twan van Laarhoven <twanvl@gmail.com>**20080117174656] 
[Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117174432] 
[Monadify deSugar/Desugar: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117174130] 
[Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117173856] 
[Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117173205] 
[Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117172843] 
[Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117172228] 
[Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117164055] 
[Added Applicative instance for IOEnv
Twan van Laarhoven <twanvl@gmail.com>**20080117162644] 
[Add 'util/MonadUtils.hs' with common monad (and applicative) combinators
Twan van Laarhoven <twanvl@gmail.com>**20080117161939] 
[Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117173439] 
[Monadify deSugar/Match: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117173336] 
[Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117165334] 
[Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117165114] 
[Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions
Twan van Laarhoven <twanvl@gmail.com>**20080117164746] 
[Added MASSERT macro for assertions in do notation
Twan van Laarhoven <twanvl@gmail.com>**20080117163112] 
[Some tweaks to the building from source section
Simon Marlow <simonmar@microsoft.com>**20080129091132] 
[FIX BUILD wrong imports on non-Windows
Simon Marlow <simonmar@microsoft.com>**20080124092935] 
[Windows now doesn't need different values for DQ in the build system
Ian Lynagh <igloo@earth.li>**20080123173933] 
[Fix setting argv[0] in shell-utils.c on Windows
Ian Lynagh <igloo@earth.li>**20080123160139] 
[Escape arguments for Windows in shell-tools.c
Ian Lynagh <igloo@earth.li>**20080123151724] 
[Attach the INLINE Activation pragma to any automatically-generated specialisations
simonpj@microsoft.com**20080123134012
 
 Another idea suggested by Roman, happily involving a one-line change.  Here's 
 the new Note in Specialise:
 
 Note [Auto-specialisation and RULES]
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Consider:
    g :: Num a => a -> a
    g = ...
 
    f :: (Int -> Int) -> Int
    f w = ...
    {-# RULE f g = 0 #-}
 
 Suppose that auto-specialisation makes a specialised version of
 g::Int->Int That version won't appear in the LHS of the RULE for f.
 So if the specialisation rule fires too early, the rule for f may
 never fire.
 
 It might be possible to add new rules, to "complete" the rewrite system.
 Thus when adding
 	RULE forall d. g Int d = g_spec
 also add
 	RULE f g_spec = 0
 
 But that's a bit complicated.  For now we ask the programmer's help,
 by *copying the INLINE activation pragma* to the auto-specialised rule.
 So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also
 not be active until phase 2. 
 
] 
[Tidy up the treatment of SPECIALISE pragmas
simonpj@microsoft.com**20080122122613
 
 Remove the now-redundant "const-dicts" field in SpecPrag
 
 In dsBinds, abstract over constant dictionaries in the RULE.
 This avoids the creation of a redundant, duplicate, rule later
 in the Specialise pass, which was happening before.
 
 There should be no effect on performance either way, just less
 duplicated code, and the compiler gets a little simpler.
 
] 
[Comments only
simonpj@microsoft.com**20080122122547] 
[FIX #1838, #1987: change where GHCi searches for config files
Simon Marlow <simonmar@microsoft.com>**20080123143207
 
 6.6 behaviour:
   - ./.ghci
   - $HOME/.ghci
 
 6.8.[12] behaviour:
   - ./.ghci
   - Windows: c:/Documents and Settings/<user>/.ghci
   - Unix: $HOME/.ghci
 
 6.10 (and 6.8.3 when this is merged):
   - ./.ghci
   - Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf
   - Unix: $HOME/.ghc/ghci.conf
   - $HOME/.ghci
 
 We will need to document this in the 6.8.3 release notes because it
 may affect Windows users who have adapted their setup to 6.8.[12].
] 
[Show CmdLineError exceptions as "<command line>: ..."
Simon Marlow <simonmar@microsoft.com>**20080123163145
 instead of something like "ghc-6.8.2: ...", which causes problems in
 the test suite.  In any case, "<command line>" seems a more
 appropriate context for these errors, the only question is whether
 we're using CmdLineError incorrectly anywhere.
] 
[FIX #1750: in isBrokenPackage, don't loop if the deps are recursive
Simon Marlow <simonmar@microsoft.com>**20080123160703] 
[FIX #1750: throw out mutually recursive groups of packages
Simon Marlow <simonmar@microsoft.com>**20080123160635] 
[This goes with the patch for #1839, #1463
Simon Marlow <simonmar@microsoft.com>**20080122161811] 
[use pathSeparator instead of '/'
Simon Marlow <simonmar@microsoft.com>**20080122140957] 
[cleanup only
Simon Marlow <simonmar@microsoft.com>**20080122132047] 
[FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching
claus.reinke@talk21.com**20080121161744
 
    - #1839 asks for a ghc-pkg dump feature, #1463 for the ability
      to query the same fields in several packages at once.
 
    - this patch enables substring matching for packages in 'list',
      'describe', and 'field', and for modules in find-module. it
      also allows for comma-separated multiple fields in 'field'.
      substring matching can optionally ignore cases to avoid the
      rather unpredictable capitalisation of packages.
 
    - the patch is not quite as full-featured as the one attached
      to #1839, but avoids the additional dependency on regexps.
      open ended substrings are indicated by '*' (only the three
      forms prefix*, *suffix, *infix* are supported)
 
    - on windows, the use of '*' for package/module name globbing
      leads to conflicts with filename globbing: by default, windows
      programs are self-globbing, and bash adds another level of
      globbing on top of that. it seems impossible to escape '*'
      from both levels of globbing, so we disable default globbing
      for ghc-pkg and ghc-pkg-inplace. users of bash will still
      have filename globbing available, users of cmd won't.
 
    - if it is considered necessary to reenable filename globbing
      for cmd users, it should be done selectively, only for
      filename parameters. to this end, the patch includes a
      glob.hs program which simply echoes its parameters after
      filename globbing. see the commented out glob command in
      Main.hs for usage or testing.
 
    - this covers both tickets, and permits for the most common
      query patterns (finding all packages contributing to the
      System. hierarchy, finding all regex or string packages,
      listing all package maintainers or haddock directories,
      ..), which not only i have wanted to have for a long time.
 
      examples (the quotes are needed to escape shell-based
      filename globbing and should be omitted in cmd.exe):
 
        ghc-pkg list '*regex*' --ignore-case
        ghc-pkg list '*string*' --ignore-case
        ghc-pkg list '*gl*' --ignore-case
        ghc-pkg find-module 'Data.*'
        ghc-pkg find-module '*Monad*'
        ghc-pkg field '*' name,maintainer
        ghc-pkg field '*' haddock-html
        ghc-pkg describe '*'
 
 
] 
[Wibble to the OccurAnal fix for RULEs and loop-breakers
simonpj@microsoft.com**20080121165529] 
[Do not worker/wrapper INLINE things, even if they are in a recursive group
simonpj@microsoft.com**20080121135909
 
 This patch stops the worker/wrapper transform working on an INLINE thing,
 even if it's in a recursive group.  It might not be the loop breaker.  Indeed
 a recursive group might have no loop breaker, if the only recursion is 
 through rules.
 
 Again, this change was provoked by one of Roman's NDP libraries.
 Specifically the Rec { splitD, splitJoinD } group in 
 	Data.Array.Parallel.Unlifted.Distributed.Arrays
 
 Simon
 
] 
[Make the loop-breaking algorithm a bit more liberal, where RULES are involved
simonpj@microsoft.com**20080121135654
 
 This is another gloss on the now-quite-subtle and heavily-documented algorithm
 for choosing loop breakers.
 
 This fix, provoked by Roman's NDP library, makes sure that when we are choosing
 a loop breaker we only take into account variables free on the *rhs* of a rule
 not the *lhs*.
 
 Most of the new lines are comments!
 
] 
[Fix Trac #2055
simonpj@microsoft.com**20080121124244
 
 Sorry, this was my fault, a consequence of the quasi-quoting patch.  
 
 I've added rn062 as a test.
 
 
] 
[Fix exception message with ghc -e
Ian Lynagh <igloo@earth.li>**20080121104142
 When running with ghc -e, exceptions should claim to be from the program
 that we are running, not ghc.
] 
[Fix warnings in main/CmdLineParser
Ian Lynagh <igloo@earth.li>**20080121103158] 
[Normalise FilePaths before printing them
Ian Lynagh <igloo@earth.li>**20080120193002] 
[Tweak runghc
Ian Lynagh <igloo@earth.li>**20080120184639] 
[Fix catching exit exceptions in ghc -e
Ian Lynagh <igloo@earth.li>**20080120170236] 
[FIX #1767 :show documentation claimed too much
Simon Marlow <simonmar@microsoft.com>**20080122152943
 Also put the :help docs back within 80 columns
] 
[fix syntax-error output for :show
Simon Marlow <simonmar@microsoft.com>**20080122144923] 
[Typo in phase-control documentation
simonpj@microsoft.com**20080121113620] 
[FIX #2049, another problem with the module context on :reload
Simon Marlow <simonmar@microsoft.com>**20080121145935
 The previous attempt to fix this (#1873, #1360) left a problem that
 occurred when the first :load of the program failed (#2049).  
 
 Now I've implemented a different strategy: between :loads, we remember
 all the :module commands, and just replay them after a :reload.  This
 is in addition to remembering all the package modules added with
 :module, which is orthogonal.
 
 This approach is simpler than the previous one, and seems to do the
 right thing in all the cases I could think of.  Let's hope this is the
 last bug in this series...
] 
[Increase the bar for bootstrapping GHC to 6.4 (HEAD only)
Simon Marlow <simonmar@microsoft.com>**20080121111835
  - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603)
  - configure now checks the GHC version number
  - there are probably various cleanups that we can now do in compat/
    and compiler/, but I haven't done those yet.
] 
[Fix warnings in main/Main
Ian Lynagh <igloo@earth.li>**20080119235914] 
[Support multiple -e flags
Ian Lynagh <igloo@earth.li>**20080119223036] 
[Fix ghc -e :main (it was enqueuing the main function, but not running it)
Ian Lynagh <igloo@earth.li>**20080119220044] 
[Fix whitespace
Ian Lynagh <igloo@earth.li>**20080119212830] 
[Fix giving an error if we are given conflicting mode flags
Ian Lynagh <igloo@earth.li>**20080119212602] 
[Add :run and tweak :main
Ian Lynagh <igloo@earth.li>**20080119164923
 You can now give :main a Haskell [String] as an argument, e.g.
 :main ["foo", "bar"]
 and :run is a variant that takes the name of the function to run.
 Also, :main now obeys the -main-is flag.
] 
[Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process.
judah.jacobson@gmail.com**20071217235735] 
[Add scripts for building GMP.framework and GNUreadline.framework (OS X).
judah.jacobson@gmail.com**20071127072951] 
[Use -framework-path flags during the cc phase.  Fixes trac #1975.
judah.jacobson@gmail.com**20071212201245] 
[FIX #1821 (Parser or lexer mess-up)
df@dfranke.us**20071210230649] 
[Improve the error when :list can't find any code to show
Ian Lynagh <igloo@earth.li>**20080118225655] 
[Fix imports when !DEBUG
Ian Lynagh <igloo@earth.li>**20080118180126] 
[Tweak the splitter
Ian Lynagh <igloo@earth.li>**20080116195612
 We were generating a label ".LnLC7", which the splitter was confusing
 with a literal constant (LC). The end result was the assembler tripping
 up on ".Ln.text".
] 
[Wibble to SetLevels.abstractVars
simonpj@microsoft.com**20080118171754
 
 I've gotten this wrong more than once.  Hopefully this has it nailed.
 The issue is that in float-out we must abstract over the correct
 variables.
 
 
] 
[Add quasi-quotation, courtesy of Geoffrey Mainland
simonpj@microsoft.com**20080118145503
 
 This patch adds quasi-quotation, as described in
   "Nice to be Quoted: Quasiquoting for Haskell"
 	(Geoffrey Mainland, Haskell Workshop 2007)
 Implemented by Geoffrey and polished by Simon.
 
 Overview
 ~~~~~~~~
 The syntax for quasiquotation is very similar to the existing
 Template haskell syntax:
 	[$q| stuff |]
 where 'q' is the "quoter".  This syntax differs from the paper, by using
 a '$' rather than ':', to avoid clashing with parallel array comprehensions.
  
 The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which
 contains two functions for quoting expressions and patterns, respectively.
  
      quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat
  
      quoteExp :: String -> Language.Haskell.TH.ExpQ
      quotePat :: String -> Language.Haskell.TH.PatQ
 
 TEXT is passed unmodified to the quoter. The context of the
 quasiquotation statement determines which of the two quoters is
 called: if the quasiquotation occurs in an expression context,
 quoteExp is called, and if it occurs in a pattern context, quotePat
 is called.
 
 The result of running the quoter on its arguments is spliced into
 the program using Template Haskell's existing mechanisms for
 splicing in code. Note that although Template Haskell does not
 support pattern brackets, with this patch binding occurrences of
 variables in patterns are supported. Quoters must also obey the same
 stage restrictions as Template Haskell; in particular, in this
 example quote may not be defined in the module where it is used as a
 quasiquoter, but must be imported from another module.
 
 Points to notice
 ~~~~~~~~~~~~~~~~
 * The whole thing is enabled with the flag -XQuasiQuotes
 
 * There is an accompanying patch to the template-haskell library. This
   involves one interface change:
 	currentModule :: Q String
   is replaced by
 	location :: Q Loc
   where Loc is a data type defined in TH.Syntax thus:
       data Loc
         = Loc { loc_filename :: String
 	      , loc_package  :: String
 	      , loc_module   :: String
 	      , loc_start    :: CharPos
 	      , loc_end      :: CharPos }
 
       type CharPos = (Int, Int)	-- Line and character position
  
   So you get a lot more info from 'location' than from 'currentModule'.
   The location you get is the location of the splice.
   
   This works in Template Haskell too of course, and lets a TH program
   generate much better error messages.
 
 * There's also a new module in the template-haskell package called 
   Language.Haskell.TH.Quote, which contains support code for the
   quasi-quoting feature.
 
 * Quasi-quote splices are run *in the renamer* because they can build 
   *patterns* and hence the renamer needs to see the output of running the
   splice.  This involved a bit of rejigging in the renamer, especially
   concerning the reporting of duplicate or shadowed names.
 
   (In fact I found and removed a few calls to checkDupNames in RnSource 
   that are redundant, becuase top-level duplicate decls are handled in
   RnNames.)
 
 
 
] 
[lots of portability changes (#1405)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20080117011312
 
 re-recording to avoid new conflicts was too hard, so I just put it
 all in one big patch :-(  (besides, some of the changes depended on
 each other.)  Here are what the component patches were:
 
 Fri Dec 28 11:02:55 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * document BreakArray better
 
 Fri Dec 28 11:39:22 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * properly ifdef BreakArray for GHCI
 
 Fri Jan  4 13:50:41 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * change ifs on __GLASGOW_HASKELL__ to account for... (#1405)
   for it not being defined. I assume it being undefined implies
   a compiler with relatively modern libraries but without most
   unportable glasgow extensions.
 
 Fri Jan  4 14:21:21 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * MyEither-->EitherString to allow Haskell98 instance
 
 Fri Jan  4 16:13:29 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * re-portabilize Pretty, and corresponding changes
 
 Fri Jan  4 17:19:55 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * Augment FastTypes to be much more complete
 
 Fri Jan  4 20:14:19 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * use FastFunctions, cleanup FastString slightly
 
 Fri Jan  4 21:00:22 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * Massive de-"#", mostly Int# --> FastInt (#1405)
 
 Fri Jan  4 21:02:49 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * miscellaneous unnecessary-extension-removal
 
 Sat Jan  5 19:30:13 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
   * add FastFunctions
 
] 
[Add missing extendSubst
simonpj@microsoft.com**20080117180227
 
 Oops -- missed this from previous commit; sorry
 
] 
[Add -fspec-inline-join-points to SpecConstr
simonpj@microsoft.com**20080117150325
 
 This patch addresses a problem that Roman found in SpecConstr.  Consider:
 
 foo :: Maybe Int -> Maybe Int -> Int
 foo a b = let j b = foo a b
            in
            case b of
              Nothing -> ...
              Just n  -> case a of
                           Just m  -> ... j (Just (n+1)) ...
                           Nothing -> ... j (Just (n-1)) ...
 
 We want to make specialised versions for 'foo' for the patterns
 	Nothing  (Just v)
 	(Just a) (Just b)
 
 Two problems, caused by the join point j.  First, j does not
 scrutinise b, so j won't be specialised f for the (Just v) pattern.
 Second, j is defined where the free var 'a' is not evaluated.
 
 Both are solved by brutally inlining j at its call sites.  This risks
 major code bloat, but it's relatively quick to implement.  The flag
 	-fspec-inline-join-points
 causes brutal inlining for a 
 	non-recursive binding
 	of a function
 	whose RHS contains calls
 	of a recursive function
 
 The (experimental) flag is static for now, and I have not even
 documented it properly.
 
 
] 
[Fix references to Filepath
Clemens Fruhwirth <clemens@endorphin.org>**20080117134139] 
[Fix egregious error in earlier "Record evaluated-ness" patch
simonpj@microsoft.com**20080117134057] 
[Eliminate warnings with -DDEBUG
simonpj@microsoft.com**20080117124921] 
[Record evaluated-ness information correctly for strict constructors
simonpj@microsoft.com**20080117105256
 
 The add_evals code in Simplify.simplAlt had bit-rotted.  Example:
 
   data T a = T !a
   data U a = U !a
 
   foo :: T a -> U a
   foo (T x) = U x
 
 Here we should not evaluate x before building the U result, because
 the x argument of T is already evaluated.
 
 Thanks to Roman for finding this.
 
 
] 
[In float-out, make sure we abstract over the type variables in the kind of a coercion
simonpj@microsoft.com**20080116153908
 
 I can't remember where this bug showed up, but we were abstracting over a
 coercion variable (co :: a ~ T), without also abstracting over 'a'.
 
 The fix is simple.
 
] 
[Fix broken debug warning
simonpj@microsoft.com**20080116151818] 
[Complain sensibly if you try to use scoped type variables in Template Haskell
simonpj@microsoft.com**20080116151612
 
 This fixes Trac #2024; worth merging onto 6.8 branch.
 
] 
[Comments only
simonpj@microsoft.com**20080116150554] 
[Extra instance for Outputable on 5-tuples
simonpj@microsoft.com**20080116150525] 
[Fix the -frule-check pass
simonpj@microsoft.com**20080116141156
 
 Rules for imported things are now kept in the global rule base, not
 attached to the global Id.  The rule-check pass hadn't kept up.
 
 This should fix it.
 
] 
[Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places
Clemens Fruhwirth <clemens@endorphin.org>**20080116220603] 
[Use runPhase_MoveBinary also for generating a dynamic library wrapper
Clemens Fruhwirth <clemens@endorphin.org>**20080116220420] 
[Remove -fhardwire-lib-paths in favour of -dynload sysdep
Clemens Fruhwirth <clemens@endorphin.org>**20080110121736] 
[ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped
Clemens Fruhwirth <clemens@endorphin.org>**20080110090839] 
[Add -dynload flag as dynamic flag.
Clemens Fruhwirth <clemens@endorphin.org>**20080116205710] 
[Add a missing import
Ian Lynagh <igloo@earth.li>**20080116174149] 
[Fix Makefile generatin on Windows
Ian Lynagh <igloo@earth.li>**20080116162752] 
[Fix slash direction on Windows with the new filePath code
Ian Lynagh <igloo@earth.li>**20080116154317] 
[Fix typo
Ian Lynagh <igloo@earth.li>**20080116011953] 
[The Core type-matcher should look through PredTypes
simonpj@microsoft.com**20080116145939
 
 The core type-matcher Unify.match was previouly using tcView to expand
 types, because it must treat newtypes as distinct from their representation.
 But that meant that it also treated the PredType {C Int} as distinct from
 its representation type (:TC Int).  And that in turn was causing a rule
 not to fire, because the argument types didn't match up.
 
 For this to happen we need to get a situation where we have
 
   a = :DC blah blah	-- Dictionary
   ....(f a).....
 
 Now a has type (:TC Int), bu the RULE for f expects an argument 
 of type {C Int}.  Roman found that just this was happening.
 
 
 
 
] 
[A bottoming function should have infinite arity
simonpj@microsoft.com**20080116145722
 
 I can't think how this one escaped for so long, but
 	(error "foo") 
 should have arityType ABot, just as 'error' itself does.
 
 This improves eta expansion.  I spotted it when looking at the function
 
   Data.Array.Parallel.Arr.BBArr.writeMBB
 
 in the ndp package.
 
 
] 
[Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational)
Clemens Fruhwirth <clemens@endorphin.org>**20080110091217] 
[Refactor cross-plattform process spawning from ghc-inplace into shell-tools.c
Clemens Fruhwirth <clemens@endorphin.org>**20080110090721] 
[More verbose error reporting in mk/target.mk
Clemens Fruhwirth <clemens@endorphin.org>**20071231170715] 
[Fix generating dependencies for different ways now we use FilePath
Ian Lynagh <igloo@earth.li>**20080115204716
 We were making filenames like
 dist/build/GHC/Base.p_.o
 rather than
 dist/build/GHC/Base.p_o
] 
[Fix utils/Util for debug build
mainland@eecs.harvard.edu**20080114190530] 
[Give an error if view pattern syntax is used in an expression; fixes #2033
Ian Lynagh <igloo@earth.li>**20080114115031] 
[FIX BUILD (Solaris): include fcntl.h for file operations
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080115051844] 
[Fix warning when USE_READLINE is unset
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080115015014] 
[Remove an extra ) that was breaking the build on Windows
Ian Lynagh <igloo@earth.li>**20080114103953] 
[Fix warnings in utils/ListSetOps
Ian Lynagh <igloo@earth.li>**20080113150017] 
[Fix warnings in utils/Panic
Ian Lynagh <igloo@earth.li>**20080113142939] 
[Fix warnings in utils/UniqSet
Ian Lynagh <igloo@earth.li>**20080113142604] 
[Fix warnings in utils/Maybes
Ian Lynagh <igloo@earth.li>**20080113142347] 
[Fix warnings in utils/BufWrite
Ian Lynagh <igloo@earth.li>**20080113141630] 
[Fix warnings in utils/FastTypes
Ian Lynagh <igloo@earth.li>**20080113141612
 Split off a FastBool module, to avoid a circular import with Panic
] 
[Fix warnings in utils/OrdList
Ian Lynagh <igloo@earth.li>**20080113132042] 
[Fix warnings in utils/FastMutInt
Ian Lynagh <igloo@earth.li>**20080113131830] 
[Fix warnings in utils/State
Ian Lynagh <igloo@earth.li>**20080113131658] 
[Only initialise readline if we are connected to a terminal
Ian Lynagh <igloo@earth.li>**20080113124107
 Patch from Bertram Felgenhauer <int-e@gmx.de>
] 
[Fix warnings in utils/Util
Ian Lynagh <igloo@earth.li>**20080113005832] 
[Fix warnings in utils/Bag.lhs
Ian Lynagh <igloo@earth.li>**20080113002037] 
[Add GMP_INCLUDE_DIRS in a couple of places
Ian Lynagh <igloo@earth.li>**20080112234215
 Fixes the build on OpenBSD (trac #2009). Based on a patch from kili.
] 
[Tweak whitespace in HsExpr
Ian Lynagh <igloo@earth.li>**20080112185753] 
[Fix warnings in HsExpr
Ian Lynagh <igloo@earth.li>**20080112181444] 
[FilePath fixes
Ian Lynagh <igloo@earth.li>**20080112172837] 
[don't initialize readline needlessly
Ian Lynagh <igloo@earth.li>**20080112155413
 Readline.initialize spills some escape sequences to stdout for some terminal
 types, potentially spoiling  ghc -e  output. So don't initialize readline
 unless we're working interactively on a terminal.
 Patch from Bertram Felgenhauer <int-e@gmx.de>
] 
[Fix whitespace
Ian Lynagh <igloo@earth.li>**20080112155214] 
[Use System.FilePath
Ian Lynagh <igloo@earth.li>**20080112154459] 
[Fix 2030: make -XScopedTypeVariables imply -XRelaxedPolyRec
simonpj@microsoft.com**20080110113133
 
 The type checker doesn't support lexically scoped type variables 
 unless we are using the RelaxedPolyRec option.  Reasons: see
 Note [Scoped tyvars] in TcBinds.
 
 So I've changed DynFlags to add this implication, improved the 
 documentation, and simplified the code in TcBinds somewhat.
 (It's longer but only because of comments!)
  
 
] 
[Fix filename completion by adding trailing spaces/slashes manually.
judah.jacobson@gmail.com**20080110221928] 
[Use command-dependent word break characters for tab completion in ghci.  Fixes bug #998.
judah.jacobson@gmail.com**20080109003606] 
[More refactoring in getCoreToDo
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109023747] 
[Document -fsimplifier-phases
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022822] 
[Add -fsimplifier-phases option
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022449
 
 It controls the number of simplifier phases run during optimisation. These are
 numbered from n to 1 (by default, n=2). Phase 0 is always run regardless of
 this flag. The flag is ignored with -O0 since (practically) no optimisation is
 performed in that case.
] 
[Refactor getCoreToDo slightly
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109014359] 
[Fix Trac #2018: float-out was ignoring the kind of a coercion variable
simonpj@microsoft.com**20080107142601
 
 The float-out transformation must handle the case where a coercion
 variable is free, which in turn mentions type variables in its kind.
 Just like a term variable really.
 
 I did a bit of refactoring at the same time.
 
 Test is tc241
 
 MERGE to stable branch
 
] 
[Make the treatment of equalities more uniform
simonpj@microsoft.com**20080107142306
 
 This patch (which is part of the fix for Trac #2018) makes coercion variables
 be handled more uniformly.  Generally, they are treated like dictionaries
 in the type checker, not like type variables, but in a couple of places we
 were treating them like type variables.  Also when zonking we should use
 zonkDictBndr not zonkIdBndr.
 
] 
[Fix Trac #2017
simonpj@microsoft.com**20080107125819] 
[Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019)
simonpj@microsoft.com**20080107115451
 
 Somehow we didn't have a separate flag for impredicativity; now we do.
 
 Furthermore, Trac #2019 showed up a missing test for monotypes in data
 constructor return types.  And I realised that we were even allowing
 things like
 	Num (forall a. a) => ...
 which we definitely should not.  
 
 This patch insists on monotypes in several places where we were (wrongly)
 too liberal before.
 
 Could be merged to 6.8 but no big deal.
 
 
] 
[Fix build: Recent instance shuffling left us with overlapping instances
Ian Lynagh <igloo@earth.li>**20080106221547] 
[Add instructions for building docs to README
Ian Lynagh <igloo@earth.li>**20080106215723] 
[pass -no-user-package-conf to ghc-inplace
Simon Marlow <simonmar@microsoft.com>**20080104162840] 
[A little refactoring of GenIfaceEq to make the Outputable instance into H98
simonpj@microsoft.com**20080104105450] 
[Make the instance of DebugNodes more H98-like
simonpj@microsoft.com**20080104105409] 
[change CmmActual, CmmFormal to use a data CmmHinted rather than tuple (#1405)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20080104105339
 This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO
  makes the code a little cleaner generally.
 This is one small (though tedious) step towards making GHC's code more
  portable...
] 
[generalize instance Outputable GenCmm to H98 (#1405)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226175915] 
[move and generalize another instance (#1405)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226174904
 was instance Outputable CmmGraph
 type CmmGraph = LGraph Middle Last
 now instance (ctx) => Outputable (LGraph m l),
 in module with LGraph where it belongs
 This also let us reduce the context of DebugNodes to Haskell98,
 leaving that class's only extension being multi-parameter.
 (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle
 was another redundant instance that was then removed)
] 
[move and generalize an instance (#1405)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226171913
 UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as
 good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a)
] 
[Do not consult -XGADTs flag when pattern matching on GADTs
simonpj@microsoft.com**20080104125814
 
 See Trac #2004, and Note [Flags and equational constraints] in TcPat.
 
] 
[Add a note about primop wrappers (cf Trac #1509)
simonpj@microsoft.com**20080104125305] 
[Document SOURCE pragma; clarify TH behavior for mutually-recurive modules (Trac #1012)
simonpj@microsoft.com**20080104121939] 
[White space and comments only
simonpj@microsoft.com**20080104102236] 
[Remove -funfolding-update-in-place flag documentation
simonpj@microsoft.com**20080103160036
 
 This flag does nothing, and should have been removed ages ago. (GHC
 no longer does update-in-place.)
 
 MERGE to 6.8 branch
 
] 
[Optionally use libffi to implement 'foreign import "wrapper"' (#793)
Simon Marlow <simonmar@microsoft.com>**20080103170236
 To enable this, set UseLibFFI=YES in mk/build.mk.  
 
 The main advantage here is that this reduces the porting effort for
 new platforms: libffi works on more architectures than our current
 adjustor code, and it is probably more heavily tested.  We could
 potentially replace our existing code, but since it is probably faster
 than libffi (just a guess, I'll measure later) and is already working,
 it doesn't seem worthwhile.
 
 Right now, you must have libffi installed on your system.  I used the
 one supplied by Debian/Ubuntu.
] 
[remove trace apparently left in by accident
Simon Marlow <simonmar@microsoft.com>**20080103163805] 
[Fix warnings with newer gcc versions (I hope)
Simon Marlow <simonmar@microsoft.com>**20080103140338] 
[implement prefix unboxed tuples (part of #1509)
Isaac Dupree <id@isaac.cedarswampstudios.org>**20080102124001] 
[FIX #1898: add a missing UNTAG_CLOSURE() in checkBlackHoles
Simon Marlow <simonmar@microsoft.com>**20080103112717] 
[fix validation failure on non-i386
Simon Marlow <simonmar@microsoft.com>**20080102151740] 
[expand "out of stack slots" panic to suggest using -fregs-graph, see #1993
Simon Marlow <simonmar@microsoft.com>**20080102150737] 
[Warning clean, and fix compilation with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20080102114529] 
[Link libgmp.a statically into libHSrts.dll on Windows
Clemens Fruhwirth <clemens@endorphin.org>**20080101154017] 
[Embedd DLL name into its import library, so client libs reference them properly in .idata
Clemens Fruhwirth <clemens@endorphin.org>**20080101152157] 
[Add package dependencies to link pass when building ghc package (required for windows DLL build)
Clemens Fruhwirth <clemens@endorphin.org>**20080101152101] 
[Fix building libHSrts.dll by using ghc-pkg instead of grepping in base.cabal
Clemens Fruhwirth <clemens@endorphin.org>**20071230193952] 
[Add installPackage to dependencies of make.library.* as it's used by the rule
Clemens Fruhwirth <clemens@endorphin.org>**20071229162707] 
[Install dynlibs correctly
Clemens Fruhwirth <clemens@endorphin.org>**20071228184024
 
 Add dynlibdir target to config.mk.in, setting it to @libdir@.
 Invoke installPackage with dynlibdir at libraries/Makefile
 Make installPackage.hs hand dynlibdir to Cabal.
] 
[import ord that alex secretly imported
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071228175727] 
[add missing import that happy -agc secretly provided
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071227171335] 
[correct type mistake, hidden by happy -agc coercions!
Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226140743] 
[API changes for cabal-HEAD
Clemens Fruhwirth <clemens@endorphin.org>**20071227143114
 
 Rename interfacedir to haddockdir
 Change empty(Copy|Register)Flags to default(Copy|Register)Flags
 Wrap content of RegisterFlags with toFlag (the Flag type is actually just Maybe)
] 
[Extend API for compiling to and from Core
Tim Chevalier <chevalier@alum.wellesley.edu>**20071225200411
 
 Added API support for compiling Haskell to simplified Core, and for
 compiling Core to machine code. The latter, especially, should be
 considered experimental and has only been given cursory testing. Also
 fixed warnings in DriverPipeline. Merry Christmas.
] 
[When complaining about non-rigid context, give suggestion of adding a signature
simonpj@microsoft.com**20071224122217] 
[Improve handling of newtypes (fixes Trac 1495)
simonpj@microsoft.com**20071221090406
 
 In a few places we want to "look through" newtypes to get to the
 representation type.  But we need to be careful that  we don't fall 
 into an ininite loop with e.g.
 	newtype T = MkT T
 
 The old mechansim for doing this was to have a field nt_rep, inside 
 a newtype TyCon, that gave the "ultimate representation" of the type.
 But that failed for Trac 1495, which looked like this:
    newtype Fix a = Fix (a (Fix a))
    data I a = I a
 Then, expanding the type (Fix I) went on for ever.
 
 The right thing to do seems to be to check for loops when epxanding
 the *type*, rather than in the *tycon*.  This patch does that, 
 	- Removes nt_rep from TyCon
 	- Make Type.repType check for loops
 See Note [Expanding newtypes] in Type.lhs.
 
 At the same time I also fixed a bug for Roman, where newtypes were not
 being expanded properly in FamInstEnv.topNormaliseType.  This function
 and Type.repType share a common structure.
 
 
 	Ian, see if this merges easily to the branch
 	If not, I don't think it's essential to fix 6.8
 
] 
[Fix Trac #1981: seq on a type-family-typed expression
simonpj@microsoft.com**20071221085542
 
 We were crashing when we saw
 	case x of DEFAULT -> rhs
 where x had a type-family type.  This patch fixes it.
 
 MERGE to the 6.8 branch.
 
 
] 
[Comment only
simonpj@microsoft.com**20071220164621] 
[Fix nasty recompilation bug in MkIface.computeChangedOccs
simonpj@microsoft.com**20071220164307
 
 	MERGE to 6.8 branch
 
 In computeChangedOccs we look up the old version of a Name.
 But a WiredIn Name doesn't have an old version, because WiredIn things
 don't appear in interface files at all.
 
 Result: ghc-6.9: panic! (the 'impossible' happened)
   (GHC version 6.9 for x86_64-unknown-linux):
 	lookupVers1 base:GHC.Prim chr#{v}
 
 This fixes the problem.  The patch should merge easily onto the branch.
 
 
] 
[Fix Trac #1988; keep the ru_fn field of a RULE up to date
simonpj@microsoft.com**20071220131912
 
 The ru_fn field was wrong when we moved RULES from one Id to another.
 The fix is simple enough.
 
 However, looking at this makes me realise that the worker/wrapper stuff
 for recursive newtypes isn't very clever: we generate demand info but
 then don't properly exploit it.  
 
 This patch fixes the crash though.
 
] 
[Add better panic message in getSRTInfo (Trac #1973)
simonpj@microsoft.com**20071220180335] 
[Remove obselete code for update-in-place (which we no longer do)
simonpj@microsoft.com**20071220173432] 
[Implement generalised list comprehensions
simonpj@microsoft.com**20071220111300
 
   This patch implements generalised list comprehensions, as described in 
   the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell
   Workshop 2007).  If you don't use the new comprehensions, nothing
   should change.
   
   The syntax is not exactly as in the paper; see the user manual entry 
   for details.
   
   You need an accompanying patch to the base library for this stuff 
   to work.
   
   The patch is the work of Max Bolingbroke [batterseapower@hotmail.com], 
   with some advice from Simon PJ.
   
   The related GHC Wiki page is 
     http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions 
 
] 
[More bindist-publishing fixes and refactoring
Ian Lynagh <igloo@earth.li>**20071218144505] 
[Fix publishing the docs
Ian Lynagh <igloo@earth.li>**20071216122544] 
[Eliminate external GMP dependencies
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071217093839
 - Ensure the stage1 compiler uses ghc's own GMP library on Mac OS
 - Need to rebuild installPackage and ifBuildable with stage1 compiler as they
   go into bindists
] 
[Include ~/Library/Frameworks in the framework searchpath
Ian Lynagh <igloo@earth.li>**20071217233457
 Patch from Christian Maeder
] 
[Make ghcii.sh executable
Ian Lynagh <igloo@earth.li>**20071217195734] 
[Don't rely on distrib/prep-bin-dist-mingw being executable
Ian Lynagh <igloo@earth.li>**20071217195554] 
[Add dead code elimination in cmmMiniInline
Simon Marlow <simonmar@microsoft.com>**20071220151734
 cmmMiniInline counts the uses of local variables, so it can easily
 eliminate assigments to unused locals.  This almost never gets
 triggered, as we don't generate any dead assignments, but it will be
 needed by a forthcoming cleanup in CgUtils.emitSwitch.
] 
[always try to remove the new file before restoring the old one (#1963)
Simon Marlow <simonmar@microsoft.com>**20071214123345] 
[FIX #1980: must check for ThreadRelocated in killThread#
Simon Marlow <simonmar@microsoft.com>**20071217164610] 
[Fix a bug in gen_contents_index
Ian Lynagh <igloo@earth.li>**20071212121154
 The library doc index thought that the docs were in $module.html, rather
 than $package/$module.html.
] 
[Fix lifting of case expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000837
 
 We have to explicity check for empty arrays in each alternative as recursive
 algorithms wouldn't terminate otherwise.
] 
[Use (UArr Int) instead of PArray_Int# in vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000739] 
[Fix bug in VectInfo loading
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214230914] 
[Remove unused vectorisation built-in
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214011015] 
[Treat some standard data cons specially during vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034855
 
 This is a temporary hack which allows us to vectorise literals.
] 
[More vectorisation-related built ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034839] 
[Track changes to package ndp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212062714] 
[Add vectorisation built-ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212040521] 
[FIX #1963: catch Ctrl-C and clean up properly
Simon Marlow <simonmar@microsoft.com>**20071213154056] 
[Document the new threshold flags
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214003003] 
[Separate and optional size thresholds for SpecConstr and LiberateCase
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214002719
 
 This patch replaces -fspec-threshold by -fspec-constr-threshold and
 -fliberate-case-threshold. The thresholds can be disabled by
 -fno-spec-constr-threshold and -fno-liberate-case-threshold.
] 
[Make HscTypes.tyThingId respond not panic on ADataCon
simonpj@microsoft.com**20071204152903] 
[Use Unix format for RnPat (no other change)
simonpj@microsoft.com**20071213140532] 
[Improve free-variable handling for rnPat and friends (fixes Trac #1972)
simonpj@microsoft.com**20071213140213
 
 As well as fixing the immediate problem (Trac #1972) this patch does
 a signficant simplification and refactoring of pattern renaming.
 
 Fewer functions, fewer parameters passed....it's all good.  But it
 took much longer than I expected to figure out.
 
 The most significant change is that the NameMaker type does *binding*
 as well as *making* and, in the matchNameMaker case, checks for unused
 bindings as well.  This is much tider.
 
 (No need to merge to the 6.8 branch, but no harm either.)
 
 
] 
[Allow more than 3 simplifier iterations to be run in phase 0
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040835
 
 The number of iterations during the first run of phase 0 was erroneously
 hardcoded to 3. It should be *at least* 3 (see comments in code) but can be
 more.
] 
[Document -ddump-simpl-phases
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040822] 
[New flag: -ddump-simpl-phases
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040644
 
 This outputs the core after each simplifier phase (i.e., it produces less
 information that -ddump-simpl-iterations).
] 
[Don't dump simplifier iterations with -dverbose-core2core
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034635
 
 SimonPJ says this is the correct behaviour. We still have
 -ddump-simpl-iterations.
] 
["list --simple-output" should be quiet when there are no packages to list
Simon Marlow <simonmar@microsoft.com>**20071212102230
 
 Previously:
 
 $ ghc-pkg list --user --simple-output
 ghc-pkg: no matches
 $
 
 Now:
 
 $ ghc-pkg list --user --simple-output
 $
] 
[Fix vectorisation bug
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206233015] 
[Vectorisation-related built ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206040829] 
[Teach vectorisation about some temporary conversion functions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206032547] 
[Vectorise case of unit correctly
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221305] 
[Teach vectorisation about singletonP
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221240] 
[Optimise desugaring of parallel array comprehensions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221213] 
[Teach vectorisation about tuple datacons
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205050221] 
[Track additions to package ndp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205042649] 
[Track changes to package ndp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205033859] 
[Improve pretty-printing of InstDecl
simonpj@microsoft.com**20071210083053
 
 Fixes Trac #1966. 
 
] 
[Comments only
Pepe Iborra <mnislaih@gmail.com>**20071208204815] 
[Refactoring only
Pepe Iborra <mnislaih@gmail.com>**20071208195222
 
 Suspensions in the Term datatype used for RTTI
 always get assigned a Type, so there is no reason
 to juggle around with a (Maybe Type) anymore. 
 
] 
[Change the format used by :print to show the content of references
Pepe Iborra <mnislaih@gmail.com>**20071208193013
     
     This comes as result of the short discussion linked below.
     
     http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html
 
] 
[Help the user when she tries to do :history without :trace
Pepe Iborra <mnislaih@gmail.com>**20071208180918
 
 Teach GHCi to show a "perhaps you forgot to use :trace?" when
 it finds that the user is trying to retrieve an empty :history
 
] 
[Prevent the binding of unboxed things by :print
Pepe Iborra <mnislaih@gmail.com>**20071208181830] 
[Coercions from boxy splitters must be sym'ed in pattern matches
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071208105018] 
[Properly keep track of whether normalising given or wanted dicts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071207071302
 - The information of whether given or wanted class dictionaries where
   normalised by rewriting wasn't always correctly propagated in TcTyFuns,
   which lead to malformed dictionary bindings.
 - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in
   the wrong position in case bindings (which led to CoreLint failures).
] 
[TcPat.tcConPat uses equalities instead of GADT refinement
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071120071208
 * This patch implements the use of equality constraints instead of GADT
   refinements that we have been discussing for a while.
 * It just changes TcPat.tcConPat.  It doesn't have any of the simplification
   and dead code removal that is possible due to this change.
 * At the moment, this patch breaks a fair number of GADT regression tests.
] 
[Use installPackage for register --inplace as well as installing
Ian Lynagh <igloo@earth.li>**20071207234652
 We also need to do the GHC.Prim hack when registering inplace or the
 tests that use it fail.
] 
[Fix the libraries Makefile
Ian Lynagh <igloo@earth.li>**20071205125015
     x && y
 is not the same as
     if x; then y; fi
 as the latter doesn't fail when x fails
] 
[Copy hscolour.css into dist/... so it gets installed with the library docs
Ian Lynagh <igloo@earth.li>**20071205013703] 
[Add the hscolour.css from hscolour 1.8
Ian Lynagh <igloo@earth.li>**20071205011733] 
[BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it
Ian Lynagh <igloo@earth.li>**20071207121317] 
[#include ../includes/MachRegs.h rather than just MachRegs.h
Ian Lynagh <igloo@earth.li>**20071205170335
 This fixes building on NixOS. I'm not sure why it worked everywhere else,
 but not on NixOS, before.
] 
[Fix bindist creation: readline/config.mk is gone
Ian Lynagh <igloo@earth.li>**20071203123031] 
[FIX #1843: Generate different instructions on PPC
Ian Lynagh <igloo@earth.li>**20071203123237
 The old ones caused lots of
     unknown scattered relocation type 4
 errors. Patch from Chris Kuklewicz.
] 
[Refactor gen_contents_index
Ian Lynagh <igloo@earth.li>**20071207183538
 Also fixes it with Solaris's sh, spotted by Christian Maeder
] 
[Use GHC.Exts rather than GHC.Prim
Ian Lynagh <igloo@earth.li>**20071202234222] 
[Alter the base:GHC.Prim hack in installPackage, following changes in base
Ian Lynagh <igloo@earth.li>**20071202215719] 
[Remove debug warning, and explain why
simonpj@microsoft.com**20071207170507] 
[comment only
Simon Marlow <simonmar@microsoft.com>**20071206092422] 
[comment typo
Simon Marlow <simonmar@microsoft.com>**20071206092412] 
[add Outputable instance for OccIfaceEq
Simon Marlow <simonmar@microsoft.com>**20071206092403] 
[Workaround for #1959: assume untracked names have changed
Simon Marlow <simonmar@microsoft.com>**20071206092349
 This fixes the 1959 test, but will do more recompilation than is
 strictly necessary (but only when -O is on).  Still, more
 recompilation is better than segfaults, link errors or other random
 breakage.
] 
[FIX part of #1959: declaration versions were not being incremented correctly
Simon Marlow <simonmar@microsoft.com>**20071206084556
 We were building a mapping from ModuleName to [Occ] from the usage
 list, using the usg_mod field as the key.  Unfortunately, due to a
 very poor naming decision, usg_mod is actually the module version, not
 the ModuleName.  usg_name is the ModuleName.  Since Version is also an
 instance of Uniquable, there was no type error: all that happened was
 lookups in the map never succeeded.  I shall rename the fields of
 Usage in a separate patch.
 
 This doesn't completely fix #1959, but it gets part of the way there.
 
 I have to take partial blame as the person who wrote this fragment of
 code in late 2006 (patch "Interface file optimisation and removal of
 nameParent").
] 
[move FP_FIND_ROOT after the "GHC is required" check
Simon Marlow <simonmar@microsoft.com>**20071205101814] 
[FIX #1110: hackery also needed when running gcc for CPP
Simon Marlow <simonmar@microsoft.com>**20071205150230] 
[Teach :print to follow references (STRefs and IORefs)
Pepe Iborra <mnislaih@gmail.com>**20071204105511
 
 Prelude Data.IORef> :p l
 l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
 Prelude Data.IORef> p <- newIORef l
 Prelude Data.IORef> :p p
 p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
                                         (_t7::[Maybe Integer]))})
 Prelude Data.IORef> :sp p
 p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
 
 
 I used braces to denote the contents of a reference.
 Perhaps there is a more appropriate notation?
] 
[refactoring only
Pepe Iborra <mnislaih@gmail.com>**20071202125400] 
[Change --shared to -shared in Win32 DLL docs
simonpj@microsoft.com**20071204154023] 
[protect console handler against concurrent access (#1922)
Simon Marlow <simonmar@microsoft.com>**20071204153918] 
[Make eta reduction check more carefully for bottoms (fix Trac #1947)
simonpj@microsoft.com**20071204145803
 
 Eta reduction was wrongly transforming
 	f = \x. f x
 to
 	f = f
 
 Solution: don't trust f's arity information; instead look at its
 unfolding.  See Note [Eta reduction conditions]
 
 Almost all the new lines are comments!
 
 
] 
[Improve inlining for INLINE non-functions
simonpj@microsoft.com**20071204114955
 	
 (No need to merge to 6.8, but no harm if a subsequent patch needs it.)
 
 The proximate cause for this patch is to improve the inlining for INLINE
 things that are not functions; this came up in the NDP project.  See
 Note [Lone variables] in CoreUnfold.
 
 This caused some refactoring that actually made things simpler.  In 
 particular, more of the inlining logic has moved from SimplUtils to 
 CoreUnfold, where it belongs.
 
 
] 
[fix race conditions in sandboxIO (#1583, #1922, #1946)
Simon Marlow <simonmar@microsoft.com>**20071204114444
 using the new block-inheriting forkIO (#1048)
] 
[:cd with no argument goes to the user's home directory
Simon Marlow <simonmar@microsoft.com>**20071204113945
 Seems better than getting a confusing 'cannot find directory' exception.
] 
[forkIO starts the new thread blocked if the parent is blocked (#1048)
Simon Marlow <simonmar@microsoft.com>**20071204110947] 
[Improve eta reduction, to reduce Simplifier iterations
simonpj@microsoft.com**20071203150039
 
 I finally got around to investigating why the Simplifier was sometimes
 iterating so often.  There's a nice example in Text.ParserCombinators.ReadPrec,
 which produced:
 
 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
 
 No progress is being made.  It turned out that an interaction between
 eta-expansion, casts, and eta reduction was responsible. The change is
 small and simple, in SimplUtils.mkLam: do not require the body to be
 a Lam when floating the cast outwards.  
 
 I also discovered a missing side condition in the same equation, so fixing
 that is good too.  Now there is no loop when compiling ReadPrec.
 
 Should do a full nofib run though.
 
] 
[Don't default to stripping binaries when installing
Ian Lynagh <igloo@earth.li>**20071202195817] 
[Improve pretty-printing for Insts
simonpj@microsoft.com**20071128173125] 
[Reorganise TcSimplify (again); FIX Trac #1919
simonpj@microsoft.com**20071128173146
 
 This was a bit tricky.  We had a "given" dict like (d7:Eq a); then it got
 supplied to reduceImplication, which did some zonking, and emerged with
 a "needed given" (d7:Eq Int). That got everything confused.
 
 I found a way to simplify matters significantly.  Now reduceContext
 	- first deals with methods/literals/dictionaries
 	- then deals with implications
 Separating things in this way not only made the bug go away, but
 eliminated the need for the recently-added "needed-givens" results returned
 by checkLoop.  Hurrah.
 
 It's still a swamp.  But it's a bit better.
 
] 
[FIX #1914: GHCi forgot all the modules that were loaded before an error
Simon Marlow <simonmar@microsoft.com>**20071130130734] 
[FIX #1744: ignore the byte-order mark at the beginning of a file
Simon Marlow <simonmar@microsoft.com>**20071130101100] 
[FIX Trac #1935: generate superclass constraints for derived classes
simonpj@microsoft.com**20071128150541
 
 This bug only reports a problem with phantom types, but actually
 there was quite a long-standing and significant omission in the
 constraint generation for derived classes.  See
 Note [Superclasses of derived instance] in TcDeriv.
 
 The test deriving-1935 tests both cases.
 
 
] 
[Print a bit more info in VarBinds (no need to merge)
simonpj@microsoft.com**20071128150354] 
[Check for duplicate bindings in CoreLint
simonpj@microsoft.com**20071128150214] 
[add comment
Simon Marlow <simonmar@microsoft.com>**20071128111417] 
[FIX #1916: don't try to convert float constants to int in CMM optimizer
Bertram Felgenhauer <int-e@gmx.de>**20071122095513] 
[give a more useful message when the static flags have not been initialised (#1938)
Simon Marlow <simonmar@microsoft.com>**20071127135435] 
[Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860
Ian Lynagh <igloo@earth.li>**20071127203959
 This is a bit unpleasant, as "make binary-dist" really shouldn't actually
 build anything, but it works.
] 
[Remove the --print-docdir flag
Ian Lynagh <igloo@earth.li>**20071127195605
 It wasn't doing the right thing for bindists. Let's rethink...
] 
[FIX #1925: the interpreter was not maintaining tag bits correctly
Simon Marlow <simonmar@microsoft.com>**20071127122614
 See comment for details
] 
[add missing instruction: ALLOC_AP_NOUPD
Simon Marlow <simonmar@microsoft.com>**20071127122604] 
[Check tag bits on the fun pointer of a PAP
Simon Marlow <simonmar@microsoft.com>**20071126160420] 
[canonicalise the path to HsColour
Simon Marlow <simonmar@microsoft.com>**20071126141614] 
[Consistently put www. on the front of haskell.org in URLs
Ian Lynagh <igloo@earth.li>**20071126215256] 
[Fix some more URLs
Ian Lynagh <igloo@earth.li>**20071126214147] 
[Tweak some URLs
Ian Lynagh <igloo@earth.li>**20071126194148] 
[Fix some links
Ian Lynagh <igloo@earth.li>**20071126184406] 
[Copy gmp stamps into bindists, so we don't try and rebuild gmp
Ian Lynagh <igloo@earth.li>**20071125211919] 
[On Windows, Delete the CriticalSection's we Initialize
Ian Lynagh <igloo@earth.li>**20071125125845] 
[On Windows, add a start menu link to the flag reference
Ian Lynagh <igloo@earth.li>**20071125124429] 
[Remove html/ from the paths we put in the start menu on Windows
Ian Lynagh <igloo@earth.li>**20071125124150] 
[MERGED: Make ":" in GHCi repeat the last command
Ian Lynagh <igloo@earth.li>**20071125122020
 Ian Lynagh <igloo@earth.li>**20071124231857
  It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or
  known about by the developers. In 6.8.1 it was accidentally broken.
  This patch brings it back, but as "repeat the last command", similar to
  pressing enter in gdb. This is almost as good for people who want it to
  reload, and means that it can also be used to repeat commands like :step.
] 
[MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864
Ian Lynagh <igloo@earth.li>**20071124212305
 Ian Lynagh <igloo@earth.li>**20071124171220
] 
[Don't make a library documentation prologue
Ian Lynagh <igloo@earth.li>**20071124211943
 It's far too large now, and no-one complained when 6.8.1 didn't have one.
] 
[Don't put package version numbers in links in index.html
Ian Lynagh <igloo@earth.li>**20071124211629] 
[Define install-strip in Makefile
Ian Lynagh <igloo@earth.li>**20071124205037] 
[Define install-strip in distrib/Makefile
Ian Lynagh <igloo@earth.li>**20071124204803] 
[Install gmp from bindists; fixes trac #1848
Ian Lynagh <igloo@earth.li>**20071124185240] 
[(native gen) fix code generated for GDTOI on x86_32
Bertram Felgenhauer <int-e@gmx.de>**20071121063942
 See trac #1910.
] 
[Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in
Ian Lynagh <igloo@earth.li>**20071124163028
 configure will set INSTALL to ./install-sh if it can't find it in the path,
 so we need to replace the . with the path to our root.
] 
[Make install-sh executable /before/ we try to find it
Ian Lynagh <igloo@earth.li>**20071124162450] 
[Document --info in the +RTS -? help
Ian Lynagh <igloo@earth.li>**20071123204352] 
[MERGED: If we have hscolour then make source code links in teh haddock docs
Ian Lynagh <igloo@earth.li>**20071123233113
 Fri Nov 23 13:15:59 PST 2007  Ian Lynagh <igloo@earth.li>
] 
[Tidy and trim the type environment in mkBootModDetails
simonpj@microsoft.com**20071123153519
 
 Should fix Trac #1833
 
 We were failing to trim the type envt in mkBootModDetails, so several
 functions all called (*), for example, were getting into the interface.
 Result chaos.  It only actually bites when we do the retyping-loop thing,
 which is why it's gone so long without a fix.
 
 
] 
[refactor: HscNothing and boot modules do not need desugaring
Simon Marlow <simonmar@microsoft.com>**20071123135237] 
[FIX #1910: fix code generated for GDTOI on x86_32
Bertram Felgenhauer <int-e@gmx.de>*-20071121102627] 
[Properly ppr InstEqs in wanteds of implication constraints
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071122093002] 
[FIX #1910: fix code generated for GDTOI on x86_32
Bertram Felgenhauer <int-e@gmx.de>**20071121102627] 
[Add built-in Double operations to vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071122002517] 
[Teach vectorisation about Double
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121054932] 
[Vectorise polyexprs with notes
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121053102] 
[Make rebindable do-notation behave as advertised
simonpj@microsoft.com**20071121174914
 
 Adopt Trac #1537.  The patch ended up a bit bigger than I expected,
 so I suggest we do not merge this into the 6.8 branch.  But there
 is no funadamental reason why not.
 
 With this patch, rebindable do-notation really does type as if you
 had written the original (>>) and (>>=) operations in desguared form.
 
 I ended up refactoring some of the (rather complicated) error-context
 stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its
 various calls. That means we could get rid of tcFunResTy, and the
 SubCtxt type.  This should improve error messages slightly
 in complicated situations, because we have an Origin to hand
 to instCall (in the (isSigmaTy actual_ty) case of tc_sub1).
 
 Thanks to Pepe for the first draft of the patch.
 
] 
[Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
simonpj@microsoft.com**20071116152446
 
 This is intended only for debugging use: it makes it easier to
 compare two variants without the variations between uniques mattering.
 
 (Of course, you can't actually feed the output to the C compiler
 or assembler and expect anything sensible to happen!)
 
] 
[Add -dcore-lint when validating libraries
simonpj@microsoft.com**20071105164733] 
[Fix Trac #1913: check data const for derived types are in scope
simonpj@microsoft.com**20071121151428
 
 When deriving an instance, the data constructors should all be in scope.
 This patch checks the condition.
 
 
] 
[Fix Trac #1909: type of map in docs
simonpj@microsoft.com**20071120160152] 
[Move file locking into the RTS, fixing #629, #1109
Simon Marlow <simonmar@microsoft.com>**20071120140859
 File locking (of the Haskell 98 variety) was previously done using a
 static table with linear search, which had two problems: the array had
 a fixed size and was sometimes too small (#1109), and performance of
 lockFile/unlockFile was suboptimal due to the linear search.
 Also the algorithm failed to count readers as required by Haskell 98
 (#629).
 
 Now it's done using a hash table (provided by the RTS).  Furthermore I
 avoided the extra fstat() for every open file by passing the dev_t and
 ino_t into lockFile.  This and the improvements to the locking
 algorithm result in a healthy 20% or so performance increase for
 opening/closing files (see openFile008 test).
] 
[FIX Trac #1825: standalone deriving Typeable
simonpj@microsoft.com**20071120125732
 
 Standalone deriving of typeable now requires you to say
 	instance Typeable1 Maybe
 which is exactly the shape of instance decl that is generated
 by a 'deriving( Typeable )' clause on the data type decl.
 
 This is a bit horrid, but it's the only consistent way, at least
 for now.  If you say something else, the error messages are helpful.
 
 MERGE to 6.8 branch
 
] 
[FIX #1715: egregious bug in ifaceDeclSubBndrs
simonpj@microsoft.com**20071120111723
 
 ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type
 families an IfaceSyn can introduce subordinate binders.  Result:
 chaos.
 
 The fix is easy though.  Merge to 6.8 branch.
 
 
] 
[Always do 'setup makefile' before building each library
Simon Marlow <simonmar@microsoft.com>**20071120103329
 This forces preprocessing to happen, which is necessary if any of the
 .hsc files have been modified.  Without this change, a 'setup
 makefile' would be required by hand after a .hsc file changed.
 Fortunately 'setup makefile' isn't much extra work, and I've made it
 not overwrite GNUmakefile if it hasn't changed, which avoids
 recalculating the dependencies each time.
] 
[FIX #1847 (improve :browse! docs, fix unqual)
claus.reinke@talk21.com**20071108013147
 
 - add example to docs, explain how to interpret 
   output of `:browse! Data.Maybe`
 - print unqualified names according to current 
   context, not the context of the target module
 
] 
[Track changes to package ndp
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120033716] 
[Temporary hack for passing PArrays from unvectorised to vectorised code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120024545] 
[Bind NDP stuff to [:.:] arrays
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119020302] 
[Don't treat enumerations specially during vectorisation for the moment
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013729] 
[Fix bugs in vectorisation of case expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013714] 
[More built-in NDP combinators
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119012205] 
[New vectorisation built-ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051940] 
[Fix bug in conversion unvect/vect
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051926] 
[Extend built-in vectorisation environments
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045219] 
[Fix bug in generation of environments for vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045203] 
[Add builtin var->var mapping to vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118042605] 
[Extend vectorisation built-in mappings with datacons
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118034351] 
[Change representation of parallel arrays of enumerations
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118033355] 
[Add vectorisation-related builtin
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118031513] 
[Teach vectorisation about Bool
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117042714] 
[Incomplete support for boxing during vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040739] 
[Make sure some TyCons always vectorise to themselves
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040537] 
[Simple conversion vectorised -> unvectorised
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117023029] 
[Fix bug in case vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117015014] 
[Vectorisation of algebraic case expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116074814] 
[More vectorisation-related built-ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116061831] 
[Vectorisation utilities
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116051037] 
[Add vectorisation built-ins
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116050959] 
[Fix vectorisation of binders in case expressions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116021833] 
[Two small typos in the flags summary (merge to 6.8 branch)
simonpj@microsoft.com**20071119134639] 
[Improve the situation for Trac #959: civilised warning instead of a trace msg
simonpj@microsoft.com**20071119122938
 
 This doesn't fix the root cause of the bug, but it makes the report
 more civilised, and points to further info.
 
] 
[FIX Trac #1806: test for correct arity for datacon in infix pattern patch
simonpj@microsoft.com**20071119114301
 
 Happily the fix is easy; pls merge
 
] 
[Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac
Ian Lynagh <igloo@earth.li>**20071117154502
 Patch from Brian P. O'Hanlon
] 
[Attempt at fixing #1873, #1360
Simon Marlow <simonmar@microsoft.com>**20071116152148
 
 I think I figured out a reasonable way to manage the GHCi context,
 comments welcome.
 
 Rule 1: external package modules in the context are persistent.  That
 is, when you say 'import Data.Maybe' it survives over :load, :add,
 :reload and :cd.
 
 Rule 2: :load and :add remove all home-package modules from the
 context and add the rightmost target, as a *-module if possible.  This
 is as before, and makes sense for :load because we're starting a new
 program; the old home-package modules don't make sense any more.  For
 :add, it usually does what you want, because the new target will
 become the context.
 
 Rule 3: any modules from the context that fail to load during a
 :reload are remembered, and re-added to the context at the next
 successful :reload.
 
 Claus' suggestion about adding the "remembered" modules to the prompt
 prefixed with a ! is implemented but commented out.  I couldn't
 decide whether it was useful or confusing.
 
 One difference that people might notice is that after a :reload where
 there were errors, GHCi would previously dump you in the most recent
 module that it loaded.  Now it dumps you in whatever subset of the
 current context still makes sense, and in the common case that will
 probably be {Prelude}.
] 
[Wibble to fix Trac #1901 (shorten messsage slightly)
simonpj@microsoft.com**20071116150341] 
[Improve links from flag reference to the relevant section; and improve doc of RankN flags
simonpj@microsoft.com**20071116145816] 
[FIX Trac #1901: check no existential context in H98 mode
simonpj@microsoft.com**20071116145609] 
[Improve documentation of data type declarations (Trac #1901)
simonpj@microsoft.com**20071116081841] 
[Change the command-line semantics for query commands
Simon Marlow <simonmar@microsoft.com>**20071116132046
 
 From the help text:
 
   Commands that query the package database (list, latest, describe,
   field) operate on the list of databases specified by the flags
   --user, --global, and --package-conf.  If none of these flags are
   given, the default is --global --user.
 
 This makes it possible to query just a single database (e.g. the
 global one without the user one), which needed tricks to accomplish
 before.
] 
[use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output"
Simon Marlow <simonmar@microsoft.com>**20071116122018
 The former now does the right thing: it uses the global database only,
 and picks the most recent package with the given name.
] 
[Disallow installing packages whose names  differ in case only.
Simon Marlow <simonmar@microsoft.com>**20071116121153
 --force overrides.  Requested by Duncan Coutts, with a view to
 treating package names as case-insensitive in the future.
] 
[FIX BUILD (with GHC 6.2.x): update .hi-boot file
Simon Marlow <simonmar@microsoft.com>**20071116101227] 
[FIX #1828: installing to a patch with spaces in 
Simon Marlow <simonmar@microsoft.com>**20071115155747
 We have to pass the path to gcc when calling windres, which itself
 might have spaces in.  Furthermore, we have to pass the path to gcc's
 tools to gcc.  This means getting the quoting right, and after much
 experimentation and reading of the windres sources I found something
 that works: passing --use-temp-files to windres makes it use its own
 implementation of quoting instead of popen(), and this does what we
 want.  Sigh.
] 
[on Windows, install to a directory with spaces (test for #1828)
Simon Marlow <simonmar@microsoft.com>**20071115155327] 
[FIX #1679: crash on returning from a foreign call
Simon Marlow <simonmar@microsoft.com>**20071115131635
 We forgot to save a pointer to the BCO over the foreign call.  Doing
 enough allocation and GC during the call could provoke a crash.
] 
[Avoid the use of unversioned package dependencies
Simon Marlow <simonmar@microsoft.com>**20071115103249
 Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add
 the version number.
] 
[FIX #1596 (remove deprecated --define-name)
Simon Marlow <simonmar@microsoft.com>**20071114165323
 Also remove the old command-line syntax for ghc-pkg, which was not
 documented.  Do not merge.
] 
[FIX #1837: remove deprecated support for unversioned dependencies (do not merge)
Simon Marlow <simonmar@microsoft.com>**20071114161044
 
] 
[wibble
Pepe Iborra <mnislaih@gmail.com>**20071114233356] 
[Make pprNameLoc more robust in absence of loc information
Pepe Iborra <mnislaih@gmail.com>**20071114233343] 
[Try to manage the size of the text rendered for ':show bindings'
Pepe Iborra <mnislaih@gmail.com>**20071114231601] 
[Make the Term ppr depth aware
Pepe Iborra <mnislaih@gmail.com>**20071114183417] 
[Use paragraph fill sep where possible
Pepe Iborra <mnislaih@gmail.com>**20071114181233] 
[Make SpecConstr work again
simonpj@microsoft.com**20071115084242
 
 In a typo I'd written env instead of env', and as a result RULES are
 practically guaranteed not to work in a recursive group.  This pretty
 much kills SpecConstr in its tracks!
 
 Well done Kenny Lu for spotting this.  The fix is easy.
 
 Merge into 6.8 please.
 
 
 
] 
[Documentation only - fix typo in flags reference
Tim Chevalier <chevalier@alum.wellesley.edu>**20071115055748] 
[Avoid making Either String an instance of Monad in the Haddock parser
David Waern <david.waern@gmail.com>**20071114204050] 
[FIX 1463 (implement 'ghc-pkg find-module')
claus.reinke@talk21.com**20071109162652
 
 - the ticket asks for a module2package lookup in ghc-pkg
   (this would be useful to have in cabal, as well)
 
 - we can now ask which packages expose a module we need,
   eg, when preparing a cabal file or when getting errors
   after package reorganisations:
 
   $ ./ghc-pkg-inplace find-module Var
   c:/fptools/ghc/driver/package.conf.inplace:
       (ghc-6.9.20071106)
   
   $ ./ghc-pkg-inplace find-module Data.Sequence
   c:/fptools/ghc/driver/package.conf.inplace:
       containers-0.1
 
 - implemented as a minor variation on listPackages
 
 (as usual, it would be useful if one could combine 
 multiple queries into one)
 
] 
[remove --define-name from the --help usage message (#1596)
Simon Marlow <simonmar@microsoft.com>**20071114153417
 
] 
[FIX #1837: emit deprecated message for unversioned dependencies
Simon Marlow <simonmar@microsoft.com>**20071114153010] 
[Fix #782, #1483, #1649: Unicode GHCi input
Simon Marlow <simonmar@microsoft.com>**20071114151411
 GHCi input is now treated universally as UTF-8, except for the Windows
 console where we do the correct conversion from the current code
 page (see System.Win32.stringToUnicode).
 
 That leaves non-UTF-8 locales on Unix as unsupported, but (a) we only
 accept source files in UTF-8 anyway, and (b) UTF-8 is quite ubiquitous
 as the default locale.
 
] 
[Fix build
David Waern <david.waern@gmail.com>**20071114125842
 I had forgot to update HaddockLex.hi-boot-6, so the build with 6.2.2 
 failed. This fixes that.
] 
[FIX Trac 1662: actually check for existentials in proc patterns
simonpj@microsoft.com**20071114112930
 
 I'd fixed the bug for code that should be OK, but had forgotten to 
 make the test for code that should be rejected! 
 
 Test is arrowfail004
 
] 
[FIX Trac 1888; duplicate INLINE pragmas
simonpj@microsoft.com**20071114104701
 
 There are actually three things here
 - INLINE pragmas weren't being pretty-printed properly
 - They were being classified into too-narrow boxes by eqHsSig
 - They were being printed in to much detail by hsSigDoc
 
 All easy.  Test is rnfail048.
 
] 
[Run the -frule-check pass more often (when asked)
simonpj@microsoft.com**20071114104632] 
[GHCi debugger: added a new flag, -fno-print-binding-contents
Pepe Iborra <mnislaih@gmail.com>**20071113174539
 
 The contents of bindings show at breakpoints and by :show bindings
 is rendered using the same printer that :print uses.
 But sometimes the output it gives spans over too many lines and the
 user may want to be able to disable it.
] 
[Fix Trac 1865: GHCi debugger crashes with :print
Pepe Iborra <mnislaih@gmail.com>**20071113170113] 
[Replaced two uses of head b explicit pattern matching
Pepe Iborra <mnislaih@gmail.com>**20071013113136] 
[Print binding contents in :show bindings
Pepe Iborra <mnislaih@gmail.com>**20071006123952] 
[ Leftovers from the 1st GHCi debugger prototype
Pepe Iborra <mnislaih@gmail.com>**20071004204718] 
[Following an indirection doesn't count as a RTTI step
Pepe Iborra <mnislaih@gmail.com>**20070928091941] 
[FIX #1653 (partially): add -X flags to completion for :set
Simon Marlow <simonmar@microsoft.com>**20071113153257] 
[Merge from Haddock: Add <<url>> for images
David Waern <david.waern@gmail.com>**20071112220537
 A merge of this patch:
 
   Mon Aug  7 16:22:14 CEST 2006  Simon Marlow <simonmar@microsoft.com>
     * Add <<url>> for images
     Submitted by: Lennart Augustsson
 
 Please merge to the 6.8.2 branch.
] 
[Improve documentation of INLINE, esp its interactions with other transformations
simonpj@microsoft.com**20071112160240] 
[Comment re Trac #1220
simonpj@microsoft.com**20071112154109] 
[Merge from Haddock: Modify lexing of /../
David Waern <david.waern@gmail.com>**20071112023856
 
   Tue Aug 28 11:19:54 CEST 2007  Simon Marlow <simonmar@microsoft.com>
     * Modify lexing of /../ 
     This makes /../ more like '..', so that a single / on a line doesn't
     trigger a parse error.  This should reduce the causes of accidental
     parse errors in Haddock comments; apparently stray / characters are
     a common source of failures.
 
 Please merge this to the 6.8.2 branch.
] 
[Merge from Haddock: allow blank lines inside code blocks
David Waern <david.waern@gmail.com>**20071112013439
 
   Tue Jan  9 14:14:34 CET 2007  Simon Marlow <simonmar@microsoft.com>
     * allow blank lines inside a @...@ code block
 
 Please merge this to the 6.8.2 branch
] 
[Merge of a patch from the old Haddock branch:
David Waern <david.waern@gmail.com>**20071112013143
 
   Fri Jan  5 12:13:41 CET 2007  Simon Marlow <simonmar@microsoft.com>
     * Fix up a case of extra vertical space after a code block
 
 Please merge this to the 6.8.2 branch
] 
[Remove ex-extralibs from libraries/Makefile
Ian Lynagh <igloo@earth.li>**20071111213618] 
[Remove the X11 and HGL libraries from extralibs
Ian Lynagh <igloo@earth.li>**20071111213447
 Don Stewart, X11 maintainer, requested we remove X11, and HGL depends on it
 on Linux (and we don't try to build HGL on Windows).
] 
[arrows is no longer an extralib
Ian Lynagh <igloo@earth.li>**20071027123656] 
[Turn -fprint-bind-result off by default
Ian Lynagh <igloo@earth.li>**20071111001126] 
[TAG 2007-11-11
Ian Lynagh <igloo@earth.li>**20071111161540] 
[Define CPP in distrib/Makefile-bin-vars.in; fixes #1855
Ian Lynagh <igloo@earth.li>**20071110180302
 Patch from Christian Maeder
] 
[Tweak gen_contents_index to work with Solaris's sh
Ian Lynagh <igloo@earth.li>**20071110180014] 
[Update install-sh
Ian Lynagh <igloo@earth.li>**20071110173950
 This comes from the Debian automake 1:1.10+nogfdl-1 package.
] 
[Support more doc targets (html, pdf, etc) in the libraries Makefile
Ian Lynagh <igloo@earth.li>**20071110171328] 
[Build Cabal user guide during "make", not only "make install-docs"
Ian Lynagh <igloo@earth.li>**20071110171247] 
[Use INSTALL_SCRIPT, not INSTALL_PROGRAM, when installing scripts; fixes #1858
Ian Lynagh <igloo@earth.li>**20071110152309] 
[Rename Parser.ly in the extralibs tarball; fixes #1859
Ian Lynagh <igloo@earth.li>**20071110151529
 If Cabal doesn't see the .ly file then it won't try to run happy, and
 thus won't fail if happy isn't installed.
] 
[Add a path to the DocBook XSL Stylesheets search path
Ian Lynagh <igloo@earth.li>**20071110150649
 Slackware puts the stylesheets in /usr/share/xml/docbook/xsl-stylesheets*
 Patch from Andrea Rossato.
] 
[Replace "tail -n +2" with "sed 1d", as Solaris doesn't understand the former
Ian Lynagh <igloo@earth.li>**20071031001218] 
[Fix typo: -XNoRank2Types -> -XRank2Types
Ian Lynagh <igloo@earth.li>**20071109135656] 
[Fix Trac #1654: propagate name changes into CoreRules
simonpj@microsoft.com**20071108175108
 
 This patch is on the HEAD.  It fixes a nasty and long-standing bug
 whereby we weren't substituting the ru_fn field of a CoreRule in 
 CoreSubst.substSpec, which ultimately led to a puzzling "nameModule"
 error trying to put the rules in the interface file.
 
 
] 
[eliminate a bit of duplication
Simon Marlow <simonmar@microsoft.com>*-20071105143714] 
[Pad static literals to word size in the code generator
Simon Marlow <simonmar@microsoft.com>**20071108132842] 
[FIX #1617: reloading didn't change the :browse output as it should
Simon Marlow <simonmar@microsoft.com>**20071107161454
 The problem was that because the interface hadn't changed, we were
 re-using the old ModIface.  Unfortunately the ModIface contains the
 GlobalRdrEnv for the module, and that *had* changed.  The fix is to
 put the new GlobalRdrEnv in the ModIface even if the interface has not
 otherwise changed.
 
 ModIface is not really the right place for the GlobalRdrEnv, but
 neither is ModDetails, so we should think about a better way to do
 this.
] 
[FIX BUILD
Simon Marlow <simonmar@microsoft.com>**20071107161612
 Sorry, should have pushed with previous batch of changes.
] 
[FIX #1556: GHC's :reload keeps the context, if possible
Simon Marlow <simonmar@microsoft.com>**20071107124118] 
[FIX #1561: don't use tabs in pretty-printed output at all.
Simon Marlow <simonmar@microsoft.com>**20071107113201
 Tabs aren't guaranteed to be 8 spaces on every output device, so we
 shouldn't be using them.  Instead I added a little optimisation to
 use chunks of 8 spaces for long indentations.
 
] 
[FIX #1765, #1766
Simon Marlow <simonmar@microsoft.com>**20071107111757
 - :def! now overwrites a previous command with the same name
 - :def on its own lists the defined macros
 - ":undef f g" undefines both f and g
] 
[#1617: Add :browse! and various other additions to GHCi
Simon Marlow <simonmar@microsoft.com>**20071107102648
    
   - :browse!
     a variant of :browse that lists children separately,
     not in context, and gives import qualifiers in comments
 
 SimonM: I also added sorting by source location for interpreted
 modules in :browse, and alphabetic sorting by name otherwise.  For
 :browse *M, the locally-defined names come before the external ones.
 
   - :{ ..lines.. :} (multiline commands)
     allow existing commands to be spread over multiple lines
     to improve readability, both interactively and in .ghci
     (includes a refactoring that unifies the previous three
     command loops into one, runCommands, fed from cmdqueue,
     file, or readline)
 
   - :set
       now shows GHCi-specific flag settings (printing/
       debugger), as well as non-language dynamic flag 
       settings
     :show languages
       show active language flags
     :show packages
       show active package flags as well as implicitly 
       loaded packages
 
] 
[FIX #1838: use System.Directory.getHomeDirectory instead of getEnv "HOME"
Simon Marlow <simonmar@microsoft.com>**20071107100653] 
[catch up with removal of config.mk in the readline package
Simon Marlow <simonmar@microsoft.com>**20071107095952] 
[Fix Trac #1813: generalise over *all* type variables at top level, even phantom ones
simonpj@microsoft.com**20071106153151
 
 See Note [Silly type synonym] in TcType for further details.  This bug
 (or at least infelicity) has been in GHC for quite a long time.
 
] 
[Fix Trac #1814 (staging interaction in Template Haskell and GHCi), and add comments
simonpj@microsoft.com**20071106135548
 
 An Id bound by GHCi from a previous Stmt is Global but Internal, and
 I'd forgotten that, leading to unnecessary restrictions when using TH
 and GHCi together.
 
 This patch fixes the problem and adds lots of explanatory comments (which
 is where most of the extra lines come from).
 
 
] 
[Improve error messages
simonpj@microsoft.com**20071106105258] 
[Improve manual entry for binding lexically scoped type variables in pattern signatures
simonpj@microsoft.com**20071106105151] 
[Remove trailing spaces from programlisting lines
simonpj@microsoft.com**20071106104921] 
[Remove unhelpful sentence (see Trac #1832)
simonpj@microsoft.com**20071106104315
 
 Merge to 6.8 branch
 
] 
[fix stage 1 compilation
Simon Marlow <simonmar@microsoft.com>**20071106142057] 
[warning police
Simon Marlow <simonmar@microsoft.com>**20071106140538] 
[GHC API: add checkAndLoadModule
Simon Marlow <simonmar@microsoft.com>**20071106140121
 Does what the name suggests: it performs the function of both
 checkModule and load on that module, avoiding the need to process each
 module twice when checking a batch of modules.  This will make Haddock
 and ghctags much faster.
 
 Along with this is the beginnings of a refactoring of the HscMain
 interface.  HscMain now exports functions for separately running the
 parser, typechecher, and generating ModIface and ModDetails.
 Eventually the plan is to complete this interface and use it to
 replace the existing one.
] 
[update to use latest changes to the GHC API (works much quicker now)
Simon Marlow <simonmar@microsoft.com>**20071106135430] 
[warning police
Simon Marlow <simonmar@microsoft.com>**20071106104019] 
[Various improvements
Simon Marlow <simonmar@microsoft.com>**20071105164054
  - take the GHC topdir as a runtime argument
  - deal with files one at a time (fix space leak)
] 
[build ghctags-inplace
Simon Marlow <simonmar@microsoft.com>**20071105163954] 
[updates to ghctags code
Simon Marlow <simonmar@microsoft.com>**20071105163927] 
[eliminate a bit of duplication
Simon Marlow <simonmar@microsoft.com>**20071105143714] 
[catch up with changes to checkModule
Simon Marlow <simonmar@microsoft.com>**20071105142217] 
[reorder the imports
Simon Marlow <simonmar@microsoft.com>**20070625134151] 
[add $(GHCTAGS)
Simon Marlow <simonmar@microsoft.com>**20070625133450] 
[follow changes in HsRecFields
Simon Marlow <simonmar@microsoft.com>**20070625133119] 
[merged patches relating to GhcTags from #946
Simon Marlow <simonmar@microsoft.com>**20070625132158
 
 * accomodate changes in the GHC API
 * refactoring for more readable source code
 * if the whole group fails, try one file at a time
 * desperate attempts to handle the GHC build
] 
[Rules to create TAGS using ghctags
Simon Marlow <simonmar@microsoft.com>**20070625132047] 
[request for documentation of a new argument
nr@eecs.harvard.edu**20070625131906] 
[new README file for utils/ghctags
nr@eecs.harvard.edu**20061013202756] 
[proper HC entry for bootstrapping in Makefile
Norman Ramsey <nr@eecs.harvard.edu>**20060920042839] 
[first cut at missing case for ids defined in pattern
Norman Ramsey <nr@eecs.harvard.edu>**20060920042757] 
[change representation of FoundThing
Norman Ramsey <nr@eecs.harvard.edu>**20060917050800
 refactored FoundThing to use GHC's native representation of
 source-code locations and to carry the module name so that the TAGS
 file can contain a qualified name as well as the unqualified name
] 
[get names of data constructors
Norman Ramsey <nr@eecs.harvard.edu>**20060917015539] 
[do notation for the Maybe monad
Norman Ramsey <nr@eecs.harvard.edu>**20060917003410] 
[load all files at once and compute tags for all
Norman Ramsey <nr@eecs.harvard.edu>**20060917002430] 
[tell GHC not to generate code (thanks Simon M)
Norman Ramsey <nr@eecs.harvard.edu>**20060917002353] 
[cover more cases; take GHC options on command line
Norman Ramsey <nr@eecs.harvard.edu>**20060916232755
 Bit of a dog's breakfast here:
   * generate tags for more cases in the syntax
   * accept -package ghc and other args on command line
   * scrub away old code for snaffling thru text
] 
[initial, very incomplete tags generator
Norman Ramsey <nr@eecs.harvard.edu>**20060915235033
 The ultimate goal is to replace hasktags with 
 a tags generator based on GHC-as-a-library.
 This file is a very incomplete first cut.
] 
[Inline implication constraints
simonpj@microsoft.com**20071105220807
 
 This patch fixes Trac #1643, where Lennart found that GHC was generating
 code with unnecessary dictionaries.  The reason was that we were getting
 an implication constraint floated out of an INLINE (actually an instance
 decl), and the implication constraint therefore wasn't inlined even 
 though it was used only once (but inside the INLINE).  Thus we were 
 getting:
 
 	ic = \d -> <stuff>
 	foo = _inline_me_ (...ic...)
 
 Then 'foo' gets inlined in lots of places, but 'ic' now looks a bit 
 big.  
 
 But implication constraints should *always* be inlined; they are just
 artefacts of the constraint simplifier.
 
 This patch solves the problem, by adding a WpInline form to the HsWrap
 type. 
 
 
] 
[Comment warning about transparent newtypes
simonpj@microsoft.com**20071105220744] 
[Wibble to earlier case-merge fix
simonpj@microsoft.com**20071105220627
 
 This fix avoids a bogus WARN in SimplEnv.substId
 
] 
[Improve pretty-printing of Core slightly (avoid indenting let bodies)
simonpj@microsoft.com**20071105220535] 
[Fix an old but subtle bug in the Simplifier
simonpj@microsoft.com**20071105161314
 
 I got a Core Lint failure when compiling System.Win32.Info in the
 Win32 package.  It was very delicate: adding or removing a function
 definition elsewhere in the module (unrelated to the error) made the
 error go away.
 
 Happily, I found it.  In SimplUtils.prepareDefault I was comparing an
 InId with an OutId.  We were getting a spurious hit, and hence doing
 a bogus CaseMerge.
 
 This bug has been lurking ever since I re-factored the way that case
 expressions were simplified, about 6 months ago!
 
] 
[Make CoreLint give a more informative error message
simonpj@microsoft.com**20071105161217] 
[Comments about TH staging
simonpj@microsoft.com**20071105145340] 
[Fix freeHaskellFunctionPtr for Darwin/i386
Aaron Tomb <atomb@galois.com>**20071029202636] 
[MERGED: Set interfacedir (using $topdir, not $httptopdir)
Ian Lynagh <igloo@earth.li>**20071103180803
 Mon Oct 29 10:48:25 PDT 2007  Ian Lynagh <igloo@earth.li>
] 
[Teach ghc-pkg about $httptopdir
Ian Lynagh <igloo@earth.li>**20071029161130] 
[MERGED: installPackage needs to treat $httptopdir the same as $topdir
Ian Lynagh <igloo@earth.li>**20071103180259
 Sun Oct 28 06:45:34 PDT 2007  Ian Lynagh <igloo@earth.li>
] 
[MERGED: Define and use $httptopdir for the haddock docs locations
Ian Lynagh <igloo@earth.li>**20071103180023
 Sun Oct 28 05:35:52 PDT 2007  Ian Lynagh <igloo@earth.li>
] 
[We need to copy .buildinfo files into the bindists
Ian Lynagh <igloo@earth.li>**20071028131752] 
[(>>>) now comes from GHC.Desugar
Simon Marlow <simonmar@microsoft.com>**20071102155954] 
[Refactor error recovery slightly
simonpj@microsoft.com**20071102130115
 
 Mostly this patch is refacoring, but it also avoids post-tc zonking if
 the typechecker found errors.  This is good because otherwise with
 DEBUG you can get the "Inventing strangely-kinded TyCon" warning.
 
] 
[Avoid Haddock bug #1821
simonpj@microsoft.com**20071102130043] 
[Update error message to mention -XPatternSignatures instead of -fglasgow-exts
simonpj@microsoft.com**20071101180302] 
[Rejig the error messages a bit; fixes a minor bug
simonpj@microsoft.com**20071101175022
 
 The type checker was only reporting the first message if an equality
 failed to match.  This patch does a bit of refactoring and fixes the
 bug, which was in the bogus use of eqInstMisMatch 
 in tcSimplify.report_no_instances.b
 
 This is really a bug in 6.8 too, so this would be good to merge across
 to the 6.8 branch.
 
] 
[Refactor Haddock options
David Waern <davve@dtek.chalmers.se>**20071101131757
 
 This patch renames the DOC_OPTIONS pragma to OPTIONS_HADDOCK. It also
 adds "-- # ..."-style Haddock option pragmas, for compatibility with
 code that use them.
 
 Another change is that both of these two pragmas behave like
 OPTIONS_GHC, i.e. they are only allowed at the top of the module, they
 are ignored everywhere else and they are stored in the dynflags. There is
 no longer any Haddock options in HsSyn.
 
 Please merge this to the 6.8.2 branch when 6.8.1 is out, if appropriate.
 
] 
[clean ghci-inplace
Simon Marlow <simonmar@microsoft.com>**20071031093932] 
[clean Haddock droppings
Simon Marlow <simonmar@microsoft.com>**20071031093923] 
[Fix warning in OSMem for darwin
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071030133003] 
[FIX BUILD: a glitch in the new rules and inlining stuff
simonpj@microsoft.com**20071030113857
 
 Don't re-add the worker info to a binder until completeBind. It's not
 needed in its own RHS, and it may be replaced, via the substitution
 following postInlineUnconditionally.
 
 (Fixes build of the stage2 compiler which fell over when Coercion.lhs
 was being compiled.)
 
] 
[Fix LiberateCase
simonpj@microsoft.com**20071029170620
 
 	Merge to STABLE please
 
 Liberate case was being far too gung-ho about what to specialise. This
 bug only showed up when a recursive function 'f' has a nested recursive
 function 'g', where 'g' calls 'f' (as well as recursively calling 'g').
 This exact situation happens in GHC/IO.writeLines.
 
 This patch puts things right; see Note [When to specialise].  Result:
 much less code bloat.
 
 
 
 
] 
[Improve error-message output slightly
simonpj@microsoft.com**20071029162637] 
[Improve documentation of orphan instances (thanks to Adrian Hey)
simonpj@microsoft.com**20071029162505
 
 Please push to stable branch
 
 Simon
 
] 
[fix installation of haddock.css and friends
Simon Marlow <simonmar@microsoft.com>**20071029120732] 
[In a pattern binding, a type sig in the pattern cannot bind a type variable
simonpj@microsoft.com**20071027153330
 
 In a pattern binding with a pattern type signature, such as
 
 	(Just (x::a)) = e
 
 the pattern type signature cannot bind type variables.  Hence
 'a' must be in scope already for the above example to be legal.
 
 This has been the situation for some time, but Dan changed it when
 adding view patterns.  This one-line change restores the old behaviour.
 
] 
[Substantial improvement to the interaction of RULES and inlining
simonpj@microsoft.com**20071029111056
 
 	(Merge to 6.8 branch after testing.)
 
 There were a number of delicate interactions between RULEs and inlining
 in GHC 6.6.  I've wanted to fix this for a long time, and some perf
 problems in the 6.8 release candidate finally forced me over the edge!
 
 The issues are documented extensively in OccurAnal, Note [Loop breaking
 and RULES], and I won't duplicate them here.  (Many of the extra lines in
 OccurAnal are comments!)
 
 This patch resolves Trac bugs #1709, #1794, #1763, I believe.
 
 
] 
[Add newline in debug print
simonpj@microsoft.com**20071026150224] 
[Explicit pattern match in default case of addTickLHsBind
simonpj@microsoft.com**20071024134828] 
[Generalise the types of mk_FunBind, mk_easy_FunBind, mkVarBind
simonpj@microsoft.com**20071024134750] 
[Fix the build with GHC < 6.4 (foldl1' didn't exist)
Ian Lynagh <igloo@earth.li>*-20071027210526] 
[Fix the build with GHC < 6.4 (foldl1' didn't exist)
Ian Lynagh <igloo@earth.li>**20071027210526] 
[MERGED: We need to install-docs when making the Windows bindist
Ian Lynagh <igloo@earth.li>**20071027203220] 
[We need to set _way=* in rts/ both when making and installing bindists
Ian Lynagh <igloo@earth.li>**20071027142914
 This is a hack, but it means we get libHSrts*.a etc rather than just
 libHSrts.a.
] 
[Fix a whole heap of speling errrs in the docs
Josef Svenningsson <josef.svenningsson@gmail.com>**20071007213858] 
[Only build/install the man page if XSLTPROC is defined
Ian Lynagh <igloo@earth.li>**20071027122155] 
[install the Cabal docs, and make them show up in a binary distribution
Simon Marlow <simonmar@microsoft.com>**20071026122456] 
[cp => $(CP)
Simon Marlow <simonmar@microsoft.com>**20071026111054] 
[get rid of the html subdirectory under share/doc/ghc/users_guide
Simon Marlow <simonmar@microsoft.com>**20071026110919] 
[Make 'improvement' work properly in TcSimplify
simonpj@microsoft.com**20071027155459
 
 	(Please merge this, and the preceding 
 	handful from me to the 6.8 branch.)
 
 This patch fixes a serious problem in the type checker, whereby
 TcSimplify was going into a loop because it thought improvement
 had taken place, but actually the unificataion was actually deferred.
 
 We thereby fix Trac #1781, #1783, #1795, and #1797!
 
 In fixing this I found what a mess TcSimplify.reduceContext is! 
 We need to fix this.
 
 The main idea is to replace the "improvement flag" in Avails with
 a simpler and more direct test: have any of the mutable type variables
 in the (zonked) 'given' or 'irred' constraints been filled in?
 This test uses the new function TcMType.isFilledMetaTyVar; the test
 itself is towards the end of reduceContext.
 
 I fixed a variety of other infelicities too, and left some ToDos.
 
 
] 
[An implication constraint can abstract over EqInsts
simonpj@microsoft.com**20071027155433] 
[In an AbsBinds, the 'dicts' can include EqInsts
simonpj@microsoft.com**20071027154903
 
 An AbsBinds abstrats over evidence, and the evidence can be both
 Dicts (class constraints, implicit parameters) and EqInsts (equality
 constraints).  So we need to
   - use varType rather than idType
   - use instToVar rather than instToId
   - use zonkDictBndr rather than zonkIdBndr in zonking
 
 It actually all worked before, but gave warnings.
 
 
] 
[More notes
simonpj@microsoft.com**20071027154702] 
[Comments only
simonpj@microsoft.com**20071027154642] 
[Add anyM to IOEnv
simonpj@microsoft.com**20071027154551] 
[Add a note to NOTES
simonpj@microsoft.com**20071027100220] 
[Make compileToCore return the module name and type environment along with bindings
Tim Chevalier <chevalier@alum.wellesley.edu>**20071027100530
 
   compileToCore returned just a list of CoreBind, which isn't enough,
 since to do anything with the resulting Core code, you probably also
 want the type declarations. I left compileToCore as it is, but added a
 function compileToCoreModule that returns a complete Core module (with
 module name, type environment, and bindings). I'm not sure that
 returning the type environment is the best way to represent the type
 declarations for the given module, but I don't want to reinvent the
 External Core wheel for this.
 
] 
[binary-dist: Makefile-vars needs HADDOCK_DOCS=YES
Simon Marlow <simonmar@microsoft.com>**20071025135816] 
[fix the links in the library documentation index
Simon Marlow <simonmar@microsoft.com>**20071025152245] 
[default to installing runhaskell and hsc2hs again, but provide knobs to turn them off
Simon Marlow <simonmar@microsoft.com>**20071025084222] 
[Adding hpc documentation about sum and map, push to STABLE.
andy@unsafeperformio.com**20071025050341] 
[Fixing typo in runtime documentation for hpc, push to stable
andy@unsafeperformio.com**20071025045456] 
[Correct a comment
Ian Lynagh <igloo@earth.li>**20071024114549] 
[Fix ghc package in bindists; it wasn't adding the depenedency on readline
Ian Lynagh <igloo@earth.li>**20071024120633] 
[Fix installing the ghc package .hi files in a bindist
Ian Lynagh <igloo@earth.li>**20071024114219] 
[Build the manpage when building, not when installing
Ian Lynagh <igloo@earth.li>**20071024112914] 
[Hack to make sure we get all the RTS ways in bindists
Ian Lynagh <igloo@earth.li>**20071024004155] 
[Fix installing the documentation in the bindists
Ian Lynagh <igloo@earth.li>**20071023234624] 
[-ftype-families -> -XTypeFamilies
Ian Lynagh <igloo@earth.li>**20071024142828] 
[FIX #1791: fail with out-of-heap when allocating more than the max heap size in one go
Simon Marlow <simonmar@microsoft.com>**20071024095420
 Normally the out-of-heap check is performed post-GC, but there are
 cases where we can detect earlier that we definitely have exhausted
 the heap size limit.
] 
[Fix more warnings
Simon Marlow <simonmar@microsoft.com>**20071023131351] 
[FIX BUILD (on 32-bit platforms): hs_hpc_module() type mismatch
Simon Marlow <simonmar@microsoft.com>**20071023082233] 
[patch from #1782; fixes check-packages target on Solaris
Simon Marlow <simonmar@microsoft.com>**20071022133337] 
[add PIC relocations for x86_64, and use a simpler hack in place of x86_64_high_symbol()
Simon Marlow <simonmar@microsoft.com>**20071018125220
 This is Wolfgang Thaller's patch sent to cvs-ghc recently, with extra
 commentary by me.  It turns out that this patch is not just a cleanup,
 it is also necessary for GHCi to work on x86_64 with shared libraries,
 because previously lookupSymbol() was creating jump-table entries for
 all symbols looked up that resolved outside 2Gb, whereas Wolfgang's
 version only generates jump-table entries for 32-bit symbol references
 in object code that we load.
] 
[fix creation of ghc-inplace for non-std ways
Simon Marlow <simonmar@microsoft.com>**20071017152820] 
[remove an incorrect assertion
Simon Marlow <simonmar@microsoft.com>**20071016151829] 
[second attempt to fix C compiler warnings with -fhpc
Simon Marlow <simonmar@microsoft.com>**20071019133243
 The hs_hpc_module() prototype in RtsExternal.h didn't match its usage:
 we were passing StgWord-sized parameters but the prototype used C
 ints.  I think it accidentally worked because we only ever passed
 constants that got promoted.  The constants unfortunately were
 sometimes negative, which caused the C compiler to emit warnings.
 
 I suspect PprC.pprHexVal may be wrong to emit negative constants in
 the generated C, but I'm not completely sure.  Anyway, it's easy to
 fix this in CgHpc, which is what I've done.
 
] 
[Zonk quantified tyvars with skolems
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071019115653
 
 We used to zonk quantified type variables to regular TyVars.  However, this
 leads to problems.  Consider this program from the regression test suite:
 
   eval :: Int -> String -> String -> String
   eval 0 root actual = evalRHS 0 root actual
 
   evalRHS :: Int -> a
   evalRHS 0 root actual = eval 0 root actual
 
 It leads to the deferral of an equality
 
   (String -> String -> String) ~ a
 
 which is propagated up to the toplevel (see TcSimplify.tcSimplifyInferCheck).
 In the meantime `a' is zonked and quantified to form `evalRHS's signature.
 This has the *side effect* of also zonking the `a' in the deferred equality
 (which at this point is being handed around wrapped in an implication
 constraint).
 
 Finally, the equality (with the zonked `a') will be handed back to the
 simplifier by TcRnDriver.tcRnSrcDecls calling TcSimplify.tcSimplifyTop.
 If we zonk `a' with a regular type variable, we will have this regular type
 variable now floating around in the simplifier, which in many places assumes to
 only see proper TcTyVars.
 
 We can avoid this problem by zonking with a skolem.  The skolem is rigid
 (which we requirefor a quantified variable), but is still a TcTyVar that the
 simplifier knows how to deal with.
] 
[Fix typo that prevented zonking of rhs of EqInsts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018131040
 
 MERGE TO STABLE
] 
[implement #1468, :browse on its own uses the currently-loaded module
Simon Marlow <simonmar@microsoft.com>**20071019115751] 
[FIX #1784: EM_AMD64 and EM_X86_64 might both be defined to the same value
Simon Marlow <simonmar@microsoft.com>**20071019110223] 
[Tell Cabal what it's version number is while bootstrapping it
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20071018222128
 This means that it'll work with all the packages that specify a cabal-version
] 
[FIX #1450: asynchronous exceptions are now printed by +RTS -xc
Simon Marlow <simonmar@microsoft.com>**20071018134951] 
[fix -fbreak-on-exception for unregsterised
Simon Marlow <simonmar@microsoft.com>**20071018110621] 
[fix :print when !tablesNextToCode
Simon Marlow <simonmar@microsoft.com>**20071018105340] 
[fix breakpoints in unregisterised mode
Simon Marlow <simonmar@microsoft.com>**20071018101929] 
[Change some ints to unsigned ints
Simon Marlow <simonmar@microsoft.com>**20071018095503
 Fixes some gratuitous warnings when compiling via C with -fhpc
] 
[fix warnings when compiling via C
Simon Marlow <simonmar@microsoft.com>**20071018095417] 
[rollback "accounting wibble: we were missing an alloc_blocks .. "
Simon Marlow <simonmar@microsoft.com>**20071018094415
 I misread the code, now added a comment to explain why it isn't necessary
] 
[recordMutable: test for gen>0 before calling recordMutableCap
Simon Marlow <simonmar@microsoft.com>**20071017125657
 For some reason the C-- version of recordMutable wasn't verifying that
 the object was in an old generation before attempting to add it to the
 mutable list, and this broke maessen_hashtab.  This version of
 recordMutable is only used in unsafeThaw#.
] 
[re-instate missing parts of "put the @N suffix on stdcall foreign calls in .cmm code"
Simon Marlow <simonmar@microsoft.com>**20071017144007
 These changes were apparently lost during "massive changes to add a
 'zipper' representation of C-"
] 
[Don't barf on error message with non-tc tyvars
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018060336
 
 MERGE TO STABLE
] 
[Fix deferring on tyvars in TcUnify.subFunTys
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018044352] 
[TcUnify.subFunTys must take type families into account
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071017114326
 * A bug reported by Andrew Appleyard revealed that subFunTys did take
   neither type families nor equalities into account.  In a fairly obscure
   case there was also a coercion ignored.
] 
[Refactoring: extract platform-specific code from sm/MBlock.c
Simon Marlow <simonmar@microsoft.com>**20071017134145
 Also common-up some duplicate bits in the platform-specific code
] 
[fix an error message (barf -> sysErrorBelch)
Simon Marlow <simonmar@microsoft.com>**20071017121855] 
[fix warning on Windows
Simon Marlow <simonmar@microsoft.com>**20071017121645] 
[Don't clean gmp when validating (speeds up validation on Windows)
Simon Marlow <simonmar@microsoft.com>**20071017100908] 
[document float2Int# and double2Int#
Simon Marlow <simonmar@microsoft.com>**20070925121139] 
[Update HsExpr.hi-boot-6 for view pattern changes
simonpj@microsoft.com**20071017120212] 
[Fix #1709: do not expose the worker for a loop-breaker
simonpj@microsoft.com**20071016131840
 
 The massive 'Uni' program produced a situation in which a function that
 had a worker/wrapper split was chosen as a loop breaker.  If the worker
 is exposed in the interface file, then an importing module may go into
 an inlining loop: see comments on TidyPgm.tidyWorker.
 
 This patch fixes the inlining bug.  The code that gives rise to this
 bizarre case is still not good (it's a bunch of implication constraints
 and we are choosing a bad loop breaker) but the first thing is to fix the
 bug.
 
 It's rather hard to produce a test case!
 
 Please merge to the 6.8 branch.
 
 
 
] 
[Fix #1662: do not simplify constraints for vanilla pattern matches
simonpj@microsoft.com**20071016124710
 
 See Note [Arrows and patterns] in TcPat.  
 
 This fixes Trac 1662.   Test is arrows/should_compile/arrowpat.hs
 
 Please merge
 
] 
[Eliminate over-zealous warning in CoreToStg
simonpj@microsoft.com**20071016124606] 
[Show inlined function in the header of 'Inlining done' message
simonpj@microsoft.com**20071016124535] 
[Show program size in the simplifier-bailing-out message
simonpj@microsoft.com**20071016124450] 
[View patterns, record wildcards, and record puns
Dan Licata <drl@cs.cmu.edu>**20071010150254
 This patch implements three new features:
 * view patterns (syntax: expression -> pat in a pattern)
 * working versions of record wildcards and record puns
 See the manual for detailed descriptions.
 
 Other minor observable changes:
 * There is a check prohibiting local fixity declarations
   when the variable being fixed is not defined in the same let
 * The warn-unused-binds option now reports warnings for do and mdo stmts
 
 Implementation notes: 
 
 * The pattern renamer is now in its own module, RnPat, and the
 implementation is now in a CPS style so that the correct context is
 delivered to pattern expressions.
 
 * These features required a fairly major upheaval to the renamer.
 Whereas the old version used to collect up all the bindings from a let
 (or top-level, or recursive do statement, ...) and put them into scope
 before renaming anything, the new version does the collection as it
 renames.  This allows us to do the right thing with record wildcard
 patterns (which need to be expanded to see what names should be
 collected), and it allows us to implement the desired semantics for view
 patterns in lets.  This change had a bunch of domino effects brought on
 by fiddling with the top-level renaming.
 
 * Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD,
 which did not maintain the invariant necessary for loadDecl.  See note
 [Tricky iface loop] for details.
] 
[FIX profiling after my storage manager changes
Simon Marlow <simonmar@microsoft.com>**20071015103939] 
[More docu for skolemOccurs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071015075644] 
[Slightly improved comments in TcTyClsDecls
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071010142023] 
[TcTyFuns: remove some duplicate code
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071004142315] 
[TcTyFuns.eqInstToRewrite
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071003145715] 
[Add allocateInGen() for allocating in a specific generation, and cleanups
Simon Marlow <simonmar@microsoft.com>**20071012124413
 Now allocate() is a synonym for allocateInGen().  
 
 I also made various cleanups: there is now less special-case code for
 supporting -G1 (two-space collection), and -G1 now works with
 -threaded.
] 
[optimise isAlive()
Simon Marlow <simonmar@microsoft.com>**20071012103810] 
[accounting wibble: we were missing an alloc_blocks++ in allocateLocal()
Simon Marlow <simonmar@microsoft.com>**20071012101711] 
[threadStackOverflow should be using allocateLocal
Simon Marlow <simonmar@microsoft.com>**20071012100405] 
[FIX #1759 while respecting the ticks
andy@galois.com**20071015033319] 
[Improving the combine mode for hpc
andy@galois.com**20071014171009
 
 we now have
 Processing Coverage files:
   sum         Sum multiple .tix files in a single .tix file
   combine     Combine two .tix files in a single .tix file
   map         Map a function over a single .tix file
 
 Where sum joins many .tix files, combine joins two files (with
 extra functionality possible), and map just applied a function
 to single .tix file.
 
 These changes were improvements driven by hpc use cases.
 
 END OF DESCRIPTION***
 
 Place the long patch description above the ***END OF DESCRIPTION*** marker.
 The first line of this file will be the patch name.
 
 
 This patch contains the following changes:
 
 M ./utils/hpc/Hpc.hs -1 +3
 M ./utils/hpc/HpcCombine.hs -33 +84
 M ./utils/hpc/HpcFlags.hs -11 +59
] 
[Fix DoCon: Another try at getting extractResults right
simonpj@microsoft.com**20071012162325
 
 For some reason TcSimplify.extractResults is quite difficult to get right.
 This is another attempt; finally I think I have it.
 
 Strangely enough, it's only Sergey's DoCon program that shows up the
 bug, which manifested as a failure in the Simplifier
 
         lookupRecBndr $dGCDRing{v a1Lz} [lid]
 
 But it was due to extractResults producing multiple bindings for
 the same dictionary.
 
 Please merge this to the stable branch (after previous patches to
 TcSimplify though).
 
 
] 
[mention what SCC stands for
Simon Marlow <simonmar@microsoft.com>**20071011135736] 
[Add a proper write barrier for MVars
Simon Marlow <simonmar@microsoft.com>**20071011135505
 Previously MVars were always on the mutable list of the old
 generation, which meant every MVar was visited during every minor GC.
 With lots of MVars hanging around, this gets expensive.  We addressed
 this problem for MUT_VARs (aka IORefs) a while ago, the solution is to
 use a traditional GC write-barrier when the object is modified.  This
 patch does the same thing for MVars.
 
 TVars are still done the old way, they could probably benefit from the
 same treatment too.
] 
[we need to #include "Stg.h" first, we can't rely on GHC to inject it
Simon Marlow <simonmar@microsoft.com>**20071010153244
 This fixes the unreg build, and in general building the RTS code
 via-C. I'm not sure at what stage this was broken, but I think it
 was working accidentally before.
] 
[Fix Trac #1680; check for unboxed tuples in TcType.marshalableTyCon
simonpj@microsoft.com**20071011123426] 
[Fix Trac #1759: do not let ticks get in the way of spotting trivially-true guards
simonpj@microsoft.com**20071010164731
 
 GHC spots that an 'otherwise' guard is true, and uses that knowledge to 
 avoid reporting spurious missing-pattern or overlaps with -Wall.
 
 The HPC ticks were disguising the 'otherwise', which led to this failure.
 Now we check.  The key change is defining DsGRHSs.isTrueLHsExpr.
 
 Test is ds062
 
 
] 
[Fix Trac #1755; check for stage errors in TH quoted Names
simonpj@microsoft.com**20071010150250
 
 There are a number of situations in which you aren't allowed to use
 a quoted Name in a TH program, such as
 	\x -> 'x
 But we weren't checking for that!  Now we are.
 
 Merge to stable branch.
 
 Test is TH_qname.
 
 
] 
[checkWellStaged: reverse comparsion (no change in semantics), plus some comments
simonpj@microsoft.com**20071010124013] 
[Add traceTc in tcSimplifyDefault
simonpj@microsoft.com**20071010123933] 
[Improve pretty-printing of splices in HsSyn
simonpj@microsoft.com**20071010123726] 
[Fix Trac #1678; be more careful about catching and reporting exceptions in spliced TH monadic computations
simonpj@microsoft.com**20071010145705
 
 Many of the new lines are comments to explain the slightly-convoluted
 in which exceptions get propagated out of the Q monad.
 
 This fixes Trac 1679; test is TH_runIO (as well as the exising TH_fail).
 
 Please merge
 
 
] 
[Comments only
simonpj@microsoft.com**20071010145646] 
[FIX BUILD (when compiling base via C): declare n_capabilities
Simon Marlow <simonmar@microsoft.com>**20071010103704] 
[GHCi: use non-updatable thunks for breakpoints
Simon Marlow <simonmar@microsoft.com>**20071010093241
 The extra safe points introduced for breakpoints were previously
 compiled as normal updatable thunks, but they are guaranteed
 single-entry, so we can use non-updatable thunks here.  This restores
 the tail-call property where it was lost in some cases (although stack
 squeezing probably often recovered it), and should improve
 performance.
] 
[FIX #1681: withBreakAction had too large a scope in runStmt
Simon Marlow <simonmar@microsoft.com>**20071010085820] 
[tiny refactoring
Simon Marlow <simonmar@microsoft.com>**20071009145002] 
[small reworking of the loop-breaker-choosing algorithm
Simon Marlow <simonmar@microsoft.com>**20071009145305
 Previously inline candidates were given higher preference as
 non-loop-breakers than constructor applications, but the reason for
 this was that making a wrapper into a loop-breaker is to be avoided at
 all costs.  This patch refines the algorithm slightly so that wrappers
 are explicitly avoided by giving them a much higher score, and other
 inline candidates are given lower scores than constructor
 applications.
 
 This makes almost zero difference to a complete nofib run, so it
 amounts to just a tidyup.
] 
[Fix warnings when build w/o readline
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071010101840] 
[Update documentation for win32 DLL linking
Clemens Fruhwirth <clemens@endorphin.org>**20071010074415] 
[FIX: tidy up TcSimplify following equality constraints additions
simonpj@microsoft.com**20071010093334
 
 The combination of "type refinement" for GADTs and the new equality
 constraints has made TcSimplify rather complicated.  And wrong:
 it generated bogus code for cholewo-eval.
 
 This patch is still far from entirely satisfactory.  There are
 too many places where invariants are unclear, and the code is 
 still a bit of a mess.  But I believe it's better, and it passes
 the regression tests!  So I think it's good enough for the 6.8 release.
 
 Please merge.
 
 The main changes are:
 
 - get rid of extractLocalResults (which was always suspicious)
 
 - instead, treat the 'refinement' along with 'givens', by 
   adding a field to RedEnv, red_reft which travels with red_givens
 
 - I also reworked extractResults a bit, which looked wrong to me
   This entailed changing the Given constructor in Avail to take
   an Inst rather than a TcId
 
 
] 
[Improve pretty-printing for HsSyn
simonpj@microsoft.com**20071010093058] 
[Fix Trac #1746: make rule-matching work properly with Cast expressions
simonpj@microsoft.com**20070929104406
 
 The Cast case of the rule-matcher was simply wrong.
 
 This patch fixes it; see Trac #1746.
 
 I also fixed the rule generation in SpecConstr to generate a wild-card
 for the cast expression, which we don't want to match on.  This makes
 the rule more widely applicable; it wasn't the cause of the bug.
 
] 
[Small comment only
simonpj@microsoft.com**20070929104309] 
[export n_capabilities, see #1733
Simon Marlow <simonmar@microsoft.com>**20071009142701] 
[FIX #1743, create a fresh unique for each Id we bind at a breakpoint
Simon Marlow <simonmar@microsoft.com>**20071009142554] 
[remove vestiges of way 'u' (see #1008)
Simon Marlow <simonmar@microsoft.com>**20071009130942] 
[also call initMutex on every task->lock, see #1391
Simon Marlow <simonmar@microsoft.com>**20071009122409] 
[remove the "-unreg" flag and the unregisterised way, see #1008
Simon Marlow <simonmar@microsoft.com>**20071009122338] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071009105138] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003170005] 
[refactoring only: use the parameterised InstalledPackageInfo
Simon Marlow <simonmar@microsoft.com>**20071003163536
 This required moving PackageId from PackageConfig to Module
] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003174016] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003173448] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003173202] 
[warning removal
Simon Marlow <simonmar@microsoft.com>**20071003172715] 
[remove most warnings
Simon Marlow <simonmar@microsoft.com>**20071003090804] 
[mkIfaceExports: sort the children of AvailTC
Simon Marlow <simonmar@microsoft.com>**20071002114917
 This fixes a problem with spurious recompilations: each time a module
 was recompiled, the order of the children would change, causing extra
 recompilation.
 
 MERGE TO STABLE
] 
[error message fix (#1758)
Simon Marlow <simonmar@microsoft.com>**20071008134958] 
[FIX validate for PPC Mac OS X - RegAllocStats.hs
Thorkil Naur <naur@post11.tele.dk>**20071005144105] 
[FIX validate for PPC Mac OS X - RegAllocLinear.hs
Thorkil Naur <naur@post11.tele.dk>**20071005143607] 
[FIX validate for PPC Mac OS X - Linker.c
Thorkil Naur <naur@post11.tele.dk>**20071005144908] 
[FIX validate for PPC Mac OS X - Evac.h
Thorkil Naur <naur@post11.tele.dk>**20071005144454] 
[FIX #1748: -main-is wasn't handling the case of a single hierarchical module
Simon Marlow <simonmar@microsoft.com>**20071008131305
 test case is driver062.5
] 
[FIX BUILD FD_SETSIZE signed
jochemberndsen@dse.nl**20070927132649
 On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int
 for portability.
] 
[FIX BUILD addDLL returns const char*
jochemberndsen@dse.nl**20070927132619
 addDLL returns const char*, not just a char*.
 Fix compiler warning
] 
[FIX BUILD `set -o igncr'-issue on FreeBSD
jochemberndsen@dse.nl**20070926203750
 `set -o igncr' does not work on non-cygwin-systems.
 Fail silently if this command does not work, instead
 of aborting the build.
 
] 
[comment-out "use vars" in 3 places (see #1739)
Simon Marlow <simonmar@microsoft.com>**20071008115740] 
[Change DOCOPTIONS pragma to DOC_OPTIONS
David Waern <davve@dtek.chalmers.se>**20071002143849
 
 MERGE TO STABLE
] 
[FIX: parsing of doc options
David Waern <davve@dtek.chalmers.se>**20071002143713
 
 Lexing of the doc options pragma was changed, but but no change was 
 made to the parser to reflect that. This patch fixes this problem.
 
 MERGE TO STABLE
] 
[FIX: add missing case to OccName.isSymOcc
David Waern <davve@dtek.chalmers.se>**20071002143459] 
[Remove warnings from WwLib
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071002130736] 
[FIX: mkWWcpr takes open alg types into account
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071002130407
 - This fixed the failures of GMapAssoc and GMapTop for optmising ways
 
 MERGE TO STABLE
] 
[FIX #1738: KPush rule of FC must take dataConEqTheta into account
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071001154343
 
 MERGE TO STABLE
] 
[FIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929122624
 
 MERGE TO STABLE
] 
[Some more traceTcs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929121941] 
[FIX: Make boxy splitters aware of type families
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070928225541
 
 MERGE TO STABLE
] 
[Finally, I managed to squash an infamous bug in :print
Pepe Iborra <mnislaih@gmail.com>**20070927151300
   
   It turns out the newtype handling code in :print
   was slipping non mutable Tyvars in the types reconstructed.
   The error message eventually produced was rather obscure:
   
   [src/Tp.hs:75:28-64] *MainTp> :p x
   *** Exception: No match in record selector Var.tcTyVarDetails
   [src/Tp.hs:75:28-64] *MainTp>
   
   Due to non mutable tyvars, unifyType was failing.
   A well placed assertion in the unifyType code would have made
    my life much easier.
   Which reminds me I should install a -ddump-* system in the 
   RTTI subsystem, or future hackers will run away in swearing.
 
 
 MERGE TO STABLE
 
] 
[Be a bit more flexible in terminal identification for do_bold
Pepe Iborra <mnislaih@gmail.com>**20070927141549
   
   In Os X for instance, by default we have TERM=xterm-color 
 
 MERGE TO STABLE
 
] 
[html_installed_root shouldn't contain $$pkgid
Ian Lynagh <igloo@earth.li>**20070927130427
 This actually didn't break anything, as the shell expanded $pkgid to the
 empty string, but it was still wrong.
] 
[Comments and debug output only
simonpj@microsoft.com**20070927110842] 
[further stub filename fix: I managed to break non-stubdir -fvia-C compilation
Simon Marlow <simonmar@microsoft.com>**20070927102539] 
[also acquire/release task->lock across fork()
Simon Marlow <simonmar@microsoft.com>**20070927091331
 further attempt to fix #1391 on MacOS
] 
[FIX -stubdir bug: the .hc file was #including the wrong _stub.h filename
Simon Marlow <simonmar@microsoft.com>**20070926134539
 Using -stubdir together with hierarchical modules, -fvia-C, and --make
 is essentially broken in 6.6.x.  Recently discovered by Cabal's use of
 -stubdir.
 
 Test cases: driver027/driver028 (I've updated them to use -fvia-C, in
 order to test for this bug).
] 
[Add STANDARD_OPTS to SRC_HC_OPTS in rts/Makefile so we get -I../includes for .cmm files
Ian Lynagh <igloo@earth.li>**20070926122637
 Patch from Clemens Fruhwirth
] 
[fix #1734, panic in :show modules after load failure
Simon Marlow <simonmar@microsoft.com>**20070926100732] 
[Remove current package from preloaded package set
Clemens Fruhwirth <clemens@endorphin.org>**20070926084802] 
[Fixing #1340, adding HPC Documentation
andy@galois.com**20070926055331] 
[TAG 2007-09-25
Ian Lynagh <igloo@earth.li>**20070925164536] 
[fix to previous fix to THUNK_SELECTOR machinery
Simon Marlow <simonmar@microsoft.com>**20070925132600
 It turns out I didn't get it quite right in the case of compacting
 collection.  This should make it work again.
] 
[Be more specific about file-header pragmas
simonpj@microsoft.com**20070924162847
 
 Document the rules for pragmas that must occur at the top of a file.
 
 Please merge this patch
 
] 
[comments only: point to relevant bug reports
Simon Marlow <simonmar@microsoft.com>**20070924103323] 
[FIX #1038: failure of selector-thunk machinery to do its job
Simon Marlow <simonmar@microsoft.com>**20070917151834
 After a couple of abortive attempts, I think I've got this right.
 When the GC sees a chain of the form 
 
    snd (_, snd (_, snd (_, ...)))
 
 it can now deal with an arbitrary nesting depth, whereas previously it
 had a depth limit which was necessitated by the use of recursion.  Now
 we chain all the selector thunks together in the heap, and go back and
 update them all when we find the value at the end of the chain.
 
 While I was here I removed some old cruft in eval_thunk_selector()
 which was carefully manintaing invariants that aren't necessary any
 more, the main one being that evacuate() can safely be passed a
 to-space pointer now.
 
 In addition to validate I've tested building a stage3 compiler with
 and without +RTS -c, so I'm reasonably sure this is safe.
 
] 
[attempt to fix #1391, hold locks across fork() and initialize them in the child
Simon Marlow <simonmar@microsoft.com>**20070914145519] 
[Put packages in ../$$pkgid not ../$$pkg
Ian Lynagh <igloo@earth.li>**20070923204940] 
[Notice when C modules have changed when deciding whether or not to link
Ian Lynagh <igloo@earth.li>**20070923181620
 Based on a patch from Lemmih
] 
[Whitespace changes only
Ian Lynagh <igloo@earth.li>**20070923174242] 
[Remove remaining bits of bindist "make in-place"
Ian Lynagh <igloo@earth.li>**20070923163640] 
[Add an entry for strings treated as ISO-8859-1 to the users guide bug list
Ian Lynagh <igloo@earth.li>**20070923131845] 
[Fix bug #1725 (Haddock links between packages)
sven.panne@aedion.de**20070923120636
 Resolving this bug is a bit tricky, it boils down to the question: Should the
 Haddock links between packages include the package version or not?
 
 Pro: We can differentiate between various versions of the same package,
 installed all at once. (How often does this really happen in practice?)
 
 Cons: When package A refers to a package B, and B is later upgraded, links
 in A's documentation will break. Furthermore, if an *additional* version of
 B is installed, which version should A refer to?
 
 Because IMHO it is not clear what to do when version numbers are included,
 let's leave them out. If somebody has a better idea, feel free to submit a
 better patch.
 
 MERGE TO STABLE
] 
[Unbreak "dist" target for fresh trees
sven.panne@aedion.de**20070923094358
 The previous hack to include Parser.hs in source distros broke the possibility
 of doing a "make dist" in a fresh tree, i.e. one which has just been checked
 out and configured, but *not* built. Of course you will need Happy for such a
 source distro later, but at least the freedom to do this is important.
 
 The ultimate goal should be that something like "make dist" will work in a
 freshly checked out tree, with no prerequisite steps (this is very common in
 most projects). We should move towards that goal, not away from it...
 
 
 MERGE TO STABLE
] 
[make stamp.inplace-gcc-lib copy $(LD) instead of $(GccDir)ld.exe to avoid building problem
shelarcy <shelarcy@gmail.com>**20070920130159] 
[Removed duplicate entry for derbugging flag -ddump-tc from the user guide
v.dijk.bas@gmail.com**20070920121306] 
[Fix building with compilers which don't have an integer for a patch level
Ian Lynagh <igloo@earth.li>**20070921165316] 
[Move OPTIONS pragmas above comments
Ian Lynagh <igloo@earth.li>**20070921163552
 Fixes building with -Werror (i.e. validate) and GHC < 6.6
] 
[massive convulsion in ZipDataflow
Norman Ramsey <nr@eecs.harvard.edu>**20070921134124
 
 After my talk, I got the idea of 'shallow rewriting' for the
 dataflow framework.  Here it is implemented, along with
 some related ideas late making Graph and not LGraph primary.
 
 The only bad thing is that the whole bit is stitched together
 out of ill-fitting pieces, kind of like Frankenstein's monster.
 A new ZipDataflow will rise out of the ashes.
] 
[incomplete start on set of intervals for stack model
Norman Ramsey <nr@eecs.harvard.edu>**20070921134035] 
[Small changes to mk-ing flow graphs
simonpj@microsoft.com**20070919150544
 
 - ZipCfg: add mkBlockId :: Unique -> BlockId
 - MkZipCfg: change sequence --> catAGrpahs
 - MkZipCfgCmm: add mkCmmIfThen
 
 Not fully validated, but I don't think anything will break
 
 
] 
[Mostly comments, following NR/SPJ meeting
simonpj@microsoft.com**20070919150345] 
[Remove a redundant part of distrib/Makefile's "make install"
Ian Lynagh <igloo@earth.li>**20070920183903] 
[Fix Trac #1718: interaction of error, unlifted tuples, and casts
simonpj@microsoft.com**20070920120049
 
 See Note [Float coercions (unlifted)] in Simplify
 
 Test is simpl018
 
] 
[Hack to get haskell-src's Parser.hs into source distributions
Ian Lynagh <igloo@earth.li>**20070919194222] 
[Fix --print-docdir for relocatable builds; fixes #1226
Ian Lynagh <igloo@earth.li>**20070919140100] 
[Use $(RelocatableBuild) rather than $(Windows)
Ian Lynagh <igloo@earth.li>**20070919140037] 
[Fix exponential-time behaviour with type synonyms; rename -XPartiallyAppliedTypeSynonyms to -XLiberalTypeSynonyms
simonpj@microsoft.com**20070919171207
 
 Fixes exponential behaviour present in GHC 6.6!
 
 I renamed the flag because the old (not very old) name wasn't
 describing what it does.
 
] 
[FIX #1688: Givens in checkLoop are not that rigid after all
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070919150738
 - This patch re-instates the policy of 6.6.1 to zonk the given constraints
   in the simplifier loop.
 
 MERGE TO STABLE
] 
[FIX #1713: watch out for type families in splitAppTy functions
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070919122011
 
   MERGE TO STABLE
] 
[Catch any exceptions thrown by getEnv; fixes #1704
Ian Lynagh <igloo@earth.li>**20070918215752] 
[Make the error message mentioning -XPatternSignatures spell the flag correctly
simonpj@microsoft.com**20070919142821] 
[Give Windows its own definitions of docdir (and htmldir etc)
Ian Lynagh <igloo@earth.li>**20070918201249] 
[Include build.mk or validate{,-settings}.mk through custom-settings.mk
Ian Lynagh <igloo@earth.li>**20070918200637] 
[Install extra-gcc-opts in bindists
Ian Lynagh <igloo@earth.li>**20070918194839] 
[Add validate.mk to .darcs-boring
Ian Lynagh <igloo@earth.li>**20070918184509] 
[add support for EM_AMD64 elf machine type, openbsd/amd64 ghci works
Don Stewart <dons@galois.com>**20070916034845] 
[patch Linker.c for amd64/openbsd
Don Stewart <dons@galois.com>**20070916012728] 
[MERGED: Another attempt at getting bindists working everywhere
Ian Lynagh <igloo@earth.li>**20070918163331
 Ian Lynagh <igloo@earth.li>**20070916005328] {
] 
[Tune coalescing in non-iterative register allocator
Ben.Lippmeier@anu.edu.au**20070917132614
 
 If iterative coalescing isn't turned on, then do a single aggressive
 coalescing pass for the first build/color cycle and then back off to 
 conservative coalescing for subseqent passes.
 
 Aggressive coalescing is a cheap way to eliminate lots of the reg-reg
 moves, but it can make the graph less colorable - if we turn it on 
 for every pass then allocation for code with a large amount of register
 pressure (ie SHA1) doesn't converge in a sensible number of cycles.
] 
[Bugfix to iterative coalescer
Ben.Lippmeier@anu.edu.au**20070917124241
 
 Coalescences must be applied to the unsimplified graph in the same order 
 they were found by the iterative coalescing algorithm - otherwise
 the vreg rewrite mapping will be wrong and badness will ensue.
] 
[Add -dasm-lint
Ben.Lippmeier@anu.edu.au**20070917113024
 
 When -dasm-lint is turned on the register conflict graph is checked for 
 internal consistency after each build/color pass. Make sure that all 
 edges point to valid nodes, that nodes are colored differently to their
 neighbours, and if the graph is supposed to be colored, that all nodes
 actually have a color.
] 
[Count CmmTops processed so far in the native code generator
Ben.Lippmeier@anu.edu.au**20070914164234
 To help with debugging / nicer -ddump-asm-regalloc-stages
] 
[Change spill cost function back to inverse length of live range.
Ben.Lippmeier@anu.edu.au**20070914161408
 
 On further testing it turns out that using Chaitin's spill cost formula
 of counting the number of uses of a var and then dividing by the degree
 of the node isn't actually a win. Perhaps because this isn't counting 
 the number of actual spills inserted in the output code.
 
 This would be worth revisiting if other work manages to increase the 
 register pressure in the native code.
] 
[Replace missing '#' on options pragma
Ben.Lippmeier@anu.edu.au**20070914094320] 
[Better cleaning of spills in spill cleaner
Ben.Lippmeier@anu.edu.au**20070914093907
 
 Track what slots each basic block reloads from. When cleaning spill 
 instructions we can use this information to decide whether the slot 
 spilled to will ever be read from on this path.
] 
[added node to push a closure onto the current call context
Norman Ramsey <nr@eecs.harvard.edu>**20070917172939] 
[tightened some dataflow code as part of preparing a talk
Norman Ramsey <nr@eecs.harvard.edu>**20070917161715] 
[added 'filterRegsUsed' to CmmExpr
Norman Ramsey <nr@eecs.harvard.edu>**20070917161634] 
[Writing out .tix file only if you are the original process, not a child.
andy@galois.com**20070917230641
 This lets us gain coverage on programs that use fork, like xmonad.
 
 * To be merged to STABLE *
 
] 
[removing the functions hs_hpc_read and hs_hpc_write inside Hpc.c, they are dead code.
andy@galois.com**20070917230201
 
 * To be merged to STABLE. *
 
] 
[Clean stage<n>/ghc-inplace.c
Ian Lynagh <igloo@earth.li>**20070917094300] 
[Comments only
simonpj@microsoft.com**20070917161133] 
[Loosen the syntax of types slightly
simonpj@microsoft.com**20070917160708
 
 This change allows you to write
 	f :: (Eq a) => (Ord b) => a -> b -> b
 Previously you could only have a forall and context after '->'
 but not after '=>' which is strange and inconsistent.
 
 Making the parser a bit more generous didn't change the number
 of shift/reduce conflicts.
 
 tc236 tests.
 
 
] 
[avoid platform dependencies: my_uintptr_t ==> StgWord
Simon Marlow <simonmar@microsoft.com>**20070917120156] 
[FIX: TypeFamilies: should_compile/Simple12
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070916130419
 - checkTauTvUpdate now distinguishes between whether
   (1) a type variables occurs only in type family parameters
       (in which case unification is to be deferred)
   (2) other variable occurences
       (which case we fail with a cannot create infinite type message, as before)
] 
[Keep valgrind happy when calling timer_create
sven.panne@aedion.de**20070916111927
 Fill all of the sigevent structure with zeroes before individual fields are
 set. Although not strictly necessary, this keeps tools like valgrind from
 complaining about passing uninitialized data, which is a good thing.
 
 MERGE TO STABLE
] 
[reloads are now sunk as deep as possible
Norman Ramsey <nr@eecs.harvard.edu>**20070915215414] 
[added instance declarations so we can fold over local registers used in Middle and Last nodes
Norman Ramsey <nr@eecs.harvard.edu>**20070915215337] 
[added monadic mapM_blocks.  the fear, the fear...
Norman Ramsey <nr@eecs.harvard.edu>**20070915215303] 
[fix misspelled constructor
Norman Ramsey <nr@eecs.harvard.edu>**20070915215238] 
[add another way to run in the fuel monad (this is a mess right now)
Norman Ramsey <nr@eecs.harvard.edu>**20070915215138] 
[lay ground for more readable dumping of CmmGraph
Norman Ramsey <nr@eecs.harvard.edu>**20070915201849] 
[add a function to help identify unique predecessors
Norman Ramsey <nr@eecs.harvard.edu>**20070915201746] 
[scrub away remaining MidNop
Norman Ramsey <nr@eecs.harvard.edu>**20070915201719] 
[changes needed to get map_blocks to actually compile :-(
Norman Ramsey <nr@eecs.harvard.edu>**20070915201651] 
[remove an unwanted language extension
Norman Ramsey <nr@eecs.harvard.edu>**20070915201525] 
[drop the old, redundant implementation of postorder_dfs
Norman Ramsey <nr@eecs.harvard.edu>**20070915201448] 
[eliminate the last vestige of UniqSM from ZipCfg
Norman Ramsey <nr@eecs.harvard.edu>**20070915201414] 
[add map_blocks to ZipCfg
Norman Ramsey <nr@eecs.harvard.edu>**20070915201355] 
[get rid of MidNop
Norman Ramsey <nr@eecs.harvard.edu>**20070915201243] 
[get freshBlockId out of ZipCfg and bury it in MkZipCfg where it belongs
Norman Ramsey <nr@eecs.harvard.edu>**20070915201030] 
[Make DESTDIR work again
sven.panne@aedion.de**20070916084339
 installPackage is a horror, using --force is probably not the perfect way
 to make DESTDIR functionality work again, but given the current state of
 affairs, I can't find a quick and clean solution.
 
 MERGE TO STABLE
] 
[Resurrect the "lib" subdirectory in the installation tree, it was somehow lost
sven.panne@aedion.de**20070916084122
 Having all package directory directly in the toplevel installation directory
 would be a bad thing because of potential name clashes, and it wasn't done this
 way earlier, so reinstantiate the old layout.
 
 MERGE TO STABLE
] 
[Overhaul of the rewrite rules
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070915074119
 - Cleaned up and simplified rules
 - Added many missing cases
 - The rules OccursCheck and swap have been eliminated and integrate with
   the other rules; ie, Subst and Unify perform the occurs check themselves
   and they can deal with left-to-right and right-to-left oriented rewrites.
   This makes the code simpler and more efficient.
 - Also added comments.
] 
[added foldUFM_Directly, used where appropriate, killed all warnings
Norman Ramsey <nr@eecs.harvard.edu>**20070915190617] 
[(temporarily) check consistency of new postorder DFS no matter what DEBUG is
Norman Ramsey <nr@eecs.harvard.edu>**20070915133904] 
[Wibbles to MkZipCfgCmm stuff
simonpj@microsoft.com**20070914170119
 
 Watch out: I've added MkZipCfg.sequence, which clashes with the
 Prelude (like some other names in MkZipCfg.  Maybe you can think
 of a better name for it.
 
] 
[make remove_entry_label actually work inside ZipDataflow
Norman Ramsey <nr@eecs.harvard.edu>**20070914145435] 
[export 'entry' from ZipCfg, at least for now
Norman Ramsey <nr@eecs.harvard.edu>**20070914145417] 
[Remove export of remove_entry_label
simonpj@microsoft.com**20070914135211] 
[replace #ifdef DEBUG with debugIsOn in cmm/MkZipCfg
Norman Ramsey <nr@eecs.harvard.edu>**20070914134202] 
[new signatures for splicing functions, new postorder_dfs
Norman Ramsey <nr@eecs.harvard.edu>**20070913173653] 
[tidying cmm/CmmSpillReload.hs
Norman Ramsey <nr@eecs.harvard.edu>**20070913173512] 
[tidying cmm/CmmLiveZ.hs
Norman Ramsey <nr@eecs.harvard.edu>**20070913173446] 
[Unbreak "clean" and "distclean" targets when there is no testsuite
sven.panne@aedion.de**20070915085845] 
[Use sed to make stage-specific ghc-inplace.c's
Ian Lynagh <igloo@earth.li>**20070914233446
 When trying to do it with -D we were having trouble getting the double
 quotes through in all Windows configurations.
] 
[Fix copy+paste-o, spotted by Simon Marlow
Ian Lynagh <igloo@earth.li>**20070914142650] 
[Add documentation about -shared, shared library name mangling, and a xrefs
Clemens Fruhwirth <clemens@endorphin.org>**20070914204538] 
[distclean: ghcprof-inplace
Simon Marlow <simonmar@microsoft.com>**20070914125542] 
[distclean: <lib>/.depend[.bak]
Simon Marlow <simonmar@microsoft.com>**20070914125532] 
[distclean: extra-gcc-opts, testsuite
Simon Marlow <simonmar@microsoft.com>**20070914125444] 
[fix install-docs for non-html docs
Simon Marlow <simonmar@microsoft.com>**20070914093738] 
[Refer to "boot" libs, not "core" libs
Ian Lynagh <igloo@earth.li>**20070914132658] 
[Give darcs-all a -s (silent) flag
Ian Lynagh <igloo@earth.li>**20070913202330] 
[warning police
Ben.Lippmeier@anu.edu.au**20070913161443] 
[Better calculation of spill costs / selection of spill candidates.
Ben.Lippmeier@anu.edu.au**20070913155407
 
 Use Chaitin's formula for calculation of spill costs.
   Cost to spill some vreg = (num writes + num reads) / degree of node
 
 With 2 extra provisos:
   1) Don't spill vregs that live for only 1 instruction.
   2) Always prefer to spill vregs that live for a number of instructions
        more than 10 times the number of vregs in that class.
 
 Proviso 2 is there to help deal with basic blocks containing very long
 live ranges - SHA1 has live ranges > 1700 instructions. We don't ever
 try to keep these long lived ranges in regs at the expense of others.
 
 Because stack slots are allocated from a global pool, and there is no
 slot coalescing yet, without this condition the allocation of SHA1 dosn't
 converge fast enough and eventually runs out of stack slots.
 
 Prior to this patch we were just choosing to spill the range with the
 longest lifetime, so we didn't bump into this particular problem.
 
] 
[comment wibbles
Ben.Lippmeier@anu.edu.au**20070912160759] 
[Bump version number 6.7 -> 6.9
Ian Lynagh <igloo@earth.li>**20070913181733] 
[More library installation path fiddling
Ian Lynagh <igloo@earth.li>**20070913174242] 
[libsubdir for libraries is now always $$pkgid
Ian Lynagh <igloo@earth.li>**20070913173926] 
[Define RelocatableBuild variable
Ian Lynagh <igloo@earth.li>**20070913155331
 default YES on Windows, NO otherwise.
] 
[We need to thread lots more paths through installPackage to make bindists work
Ian Lynagh <igloo@earth.li>**20070913154830] 
[Comments only
simonpj@microsoft.com**20070913152440] 
[Comments, and remove export of checkAmbiguity
simonpj@microsoft.com**20070911085734] 
[Define and use PprTyThing.pprTypeForUser
simonpj@microsoft.com**20070911085123
 
 When printing types for the user, the interactive UI often wants to
 leave foralls implicit.  But then (as Claus points out) we need to be
 careful about name capture. For example with this source program
 
 	class C a b where
 	  op :: forall a. a -> b
 
 we were erroneously displaying the class in GHCi (with suppressed
 foralls) thus:
 
 	class C a b where
 	  op :: a -> b
 
 which is utterly wrong. 
 
 This patch fixes the problem, removes GHC.dropForAlls (which is dangerous),
 and instead supplies PprTyThing.pprTypeForUser, which does the right thing.
 
 
] 
[Minor refactoring: give an explicit name to the pretty-printing function for TyThing, and use it
simonpj@microsoft.com**20070911085005] 
[Improve documentation for Template Haskell
simonpj@microsoft.com**20070911082212] 
[Better modelling of newtypes in the Term datatype
Pepe Iborra <mnislaih@gmail.com>**20070912165855
 
 This helps to get pretty printing right,
 nested newtypes were not being shown correctly by :print
 
 
] 
[GHCi debugger: Added a -fprint-evld-with-show flag
Pepe Iborra <mnislaih@gmail.com>**20070912153505
     
     The flag enables the use of Show instances in :print.
     By default they are not used anymore
 
] 
[Update .darcs-boring
Ian Lynagh <igloo@earth.li>**20070913015704] 
[export stopTimer(), we need this in the unix package
Simon Marlow <simonmar@microsoft.com>**20070912200057] 
[move generic graph-colouring code into util
Simon Marlow <simonmar@microsoft.com>**20070912114110
 It is needed by cmm/StackColor, and hence is needed even when there is no
 native code generator.
] 
[remove remaining redundancies from ZipCfgCmmRep
Norman Ramsey <nr@eecs.harvard.edu>**20070912165851
   -- LastBranch no longer takes parameters
   -- LastJump and LastReturn no longer carry CmmActuals;
      instead, those are carried by a CopyOut in the same basic block
 
] 
[Forgot to import Data.List.find
v.dijk.bas@gmail.com**20070912143346] 
[Remove warning flags from individual compiler modules
Ian Lynagh <igloo@earth.li>**20070912162200
 We now set the flags once and for all in compiler/Makefile.
] 
[Give push-all the ability to pull with a --pull flag
Ian Lynagh <igloo@earth.li>**20070912140743
 OK, so the name is a bit wrong now...
] 
[Handle doc-index*.html, not just doc-index.html
Ian Lynagh <igloo@earth.li>**20070912135407
 haddock sometimes makes doc-index-A.html etc files. Not sure why it
 doesn't for me.
 Patch from Judah Jacobson.
] 
[Fix installation code
Ian Lynagh <igloo@earth.li>**20070912113954] 
[Further tweaking of haddock doc installation
Ian Lynagh <igloo@earth.li>**20070911224734
 On Windows we now always use a path beginning $topdir/ so bindists are
 relocatable.
 
 We also now tell "Setup configure" where we are putting the
 documentation, and tell installPackage to override as little as
 possible.
] 
[make in-place has bitrotted, so don't advertise or support it
Ian Lynagh <igloo@earth.li>**20070911202202] 
[TAG ghc-6.8 branched 2007-09-03
Ian Lynagh <igloo@earth.li>**20070903155416] 
[Fix repeated section name in documentation.
judah.jacobson@gmail.com**20070907211616] 
[Clean ups for multi-way building of the GHC package
Clemens Fruhwirth <clemens@endorphin.org>**20070912171126] 
[change the zipper representation of calls
Norman Ramsey <nr@eecs.harvard.edu>**20070912153852
 This patch combines two changes:
   1. As requested by SimonPJ, the redundancy inherent in having
      LastCall bear actual parameters has been removed.  The actual
      parameters are now carried by a separate CopyOut node.
   2. The internal (to zipper) representation of calls has changed;
      the representation of calling conventions is more orthogonal,
      and there is now no such thing as a 'safe' or 'final' call
      to a CallishMachOp.   This change has affected the interface
      to MkZipCfgCmm, which now provides a static guarantee.  Simon's
      new upstream code will be affected; I've patched the existing
      code in CmmCvt (which becomes ever hairier).
   
] 
[make it easier to have debugging code typechecked even when debugging is turned off
Norman Ramsey <nr@eecs.harvard.edu>**20070912152502] 
[fix a typo!
Norman Ramsey <nr@eecs.harvard.edu>**20070912102545] 
[cleaned up all warnings (and added many type signatures) in Outputable
Norman Ramsey <nr@eecs.harvard.edu>**20070912102526] 
[overlooked ZipCfgExtras for a name change
Norman Ramsey <nr@eecs.harvard.edu>**20070912093920] 
[extra prettyprinting only when debugging
Norman Ramsey <nr@eecs.harvard.edu>**20070912093844] 
[renaming, reorganizing, and better doco for ZipCfg
Norman Ramsey <nr@eecs.harvard.edu>**20070911225542] 
[esacpe backslashes in the filename in the .rc file
Simon Marlow <simonmar@microsoft.com>**20070912111658] 
[Remove --export-all-symbols for DLL linking, it is default and prevents us from using .def files
Clemens Fruhwirth <clemens@endorphin.org>**20070831104624] 
[Call windres with explicit preprocessor path in case gcc is not in $PATH
Clemens Fruhwirth <clemens@endorphin.org>**20070806085120] 
[Weak.c incorrectly claims it's being compiled along RTS Main.c
Clemens Fruhwirth <clemens@endorphin.org>**20070806084524] 
[Sign extension hack to work around PC64 relocation limitation for binutils <2.17 for x86_64.
Clemens Fruhwirth <clemens@endorphin.org>**20070912094430
 
 binutils <2.17 can't generate PC64 relocations for x86_64. Hence we
 emit only 32 bit PC relative offsets, and artifically stick a zero in
 front of them to make them 64 bit (see PprMach.sh ppr_item in
 pprDataItem). This works as long as the offset is <32bit AND it's
 positive. This is not the case for offsets in jump tables, they are
 all negative. This hack sign extends them with a MOVSXL instruction
 into the dead index register, then adding the properly sign extended
 offset to the jump table base label giving the correct target address
 for the following jump.
] 
[foldl1' was added to Data.List in GHC 6.4.x
Simon Marlow <simonmar@microsoft.com>**20070912110909] 
[update .hi-boot-6 to track .lhs-boot
Simon Marlow <simonmar@microsoft.com>**20070912104312] 
[update to track .lhs-boot file
Simon Marlow <simonmar@microsoft.com>**20070912103417] 
[Refactoring & documenting the Term pprinter used by :print
Pepe Iborra <mnislaih@gmail.com>**20070911180411] 
[Custom printer for the Term datatype that won't output TypeRep values
Pepe Iborra <mnislaih@gmail.com>*-20070911151454
 
 The term pretty printer used by :print shouldn't output 
 the contents of TypeRep values, e.g. inside Dynamic values
] 
[Try and rewrite reloads to reg-reg moves in the spill cleaner
Ben.Lippmeier@anu.edu.au**20070911173833] 
[Fix type error in MkZipCfg
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070912010458
 - Fixes a bug introduced with the patch named 
   'check for unreachable code only with -DDEBUG'
 - Breakage occured only without -DDEBUG (which is 'valdiate's default!)
] 
[scrape some unused barnacles off of ZipCfg and put them into ZipCfgExtras
Norman Ramsey <nr@eecs.harvard.edu>**20070911154533] 
[split the CmmGraph constructor interface from the representation
Norman Ramsey <nr@eecs.harvard.edu>**20070911150635
 Interface MkZipCfgCmm should now be sufficient for all construction
 needs, though some identifiers are re-exported from (and explained in)
 MkZipCfg.  ZipCfgCmmRep should be used only by modules involved in
 analysis, optimization, or translation of Cmm programs.
] 
[correct two single-identifier bugs that stopped the Adams optimization from working
Norman Ramsey <nr@eecs.harvard.edu>**20070911142914] 
[default ppr method for CmmGraph now tells more about the representation
Norman Ramsey <nr@eecs.harvard.edu>**20070911142701
 (Previously, ppr had tried to make the zipper representation look as
 much like the ListGraph representation as possible.  This decision was
 unhelpful for debugging, so although the old code has been retained,
 the new default is to tell it like it is.  It may be possible to
 retire PprCmmZ one day, although it may be desirable to retain it as
 the internal form becomes less readable.
 
] 
[prettyprint 'hinted' things in a more readable way
Norman Ramsey <nr@eecs.harvard.edu>**20070911142535] 
[check for unreachable code only with -DDEBUG
Norman Ramsey <nr@eecs.harvard.edu>**20070911142410] 
[add a big diagnostic for failures in CmmCvt.toZgraph
Norman Ramsey <nr@eecs.harvard.edu>**20070911142338] 
[Don't try and coalesce nodes with themselves
Ben.Lippmeier@anu.edu.au**20070911151211] 
[Try and allocate vregs spilled/reloaded from some slot to the same hreg
Ben.Lippmeier@anu.edu.au**20070911145054] 
[Better handling of live range joins via spill slots in spill cleaner
Ben.Lippmeier@anu.edu.au**20070911130247] 
[Make sure to coalesce all the nodes found during iterative scanning
Ben.Lippmeier@anu.edu.au**20070910162909] 
[Add iterative coalescing to graph coloring allocator
Ben.Lippmeier@anu.edu.au**20070907172315
 
 Iterative coalescing interleaves conservative coalesing with the regular
 simplify/scan passes. This increases the chance that nodes will be coalesced
 as they will have a lower degree than at the beginning of simplify. The end
 result is that more register to register moves will be eliminated in the
 output code, though the iterative nature of the algorithm makes it slower
 compared to non-iterative coloring.
 
 Use -fregs-iterative  for graph coloring allocation with iterative coalescing
     -fregs-graph      for non-iterative coalescing.
 
 The plan is for iterative coalescing to be enabled with -O2 and have a 
 quicker, non-iterative algorithm otherwise. The time/benefit tradeoff
 between iterative and not is still being tuned - optimal graph coloring
 is NP-hard, afterall..
] 
[Custom printer for the Term datatype that won't output TypeRep values
Pepe Iborra <mnislaih@gmail.com>**20070911151454
 
 The term pretty printer used by :print shouldn't output 
 the contents of TypeRep values, e.g. inside Dynamic values
] 
[FIX #1466 (partly), which was causing concprog001(ghci) to fail
Simon Marlow <simonmar@microsoft.com>**20070911130228
 An AP_STACK now ensures that there is at least AP_STACK_SPLIM words of
 stack headroom available after unpacking the payload.  Continuations
 that require more than AP_STACK_SPLIM words of stack must do their own
 stack checks instead of aggregating their stack usage into the parent
 frame.  I have made this change for the interpreter, but not for
 compiled code yet - we should do this in the glorious rewrite of the
 code generator.
] 
[Fix type signatures
Pepe Iborra <mnislaih@gmail.com>**20070911113212] 
[Documentation for -fbreak-on-error
Pepe Iborra <mnislaih@gmail.com>**20070911101944] 
[GHCi debugger: new flag -fbreak-on-error
Pepe Iborra <mnislaih@gmail.com>**20070911101443
     
     This flag works like -fbreak-on-exception, but only stops
     on uncaught exceptions.
] 
[Remove obsolete -fdebugging flag
Pepe Iborra <mnislaih@gmail.com>**20070907135857
 
 A left over from the 1st GHCi debugger prototype
] 
[refactoring: eliminate DriverPipeline.CompResult and GHC.upsweep_compile
Simon Marlow <simonmar@microsoft.com>**20070910145747] 
[refactoring: inline hscMkCompiler
Simon Marlow <simonmar@microsoft.com>**20070910145718] 
[FIX #1677; poor error message for misspelled module declaration
Simon Marlow <simonmar@microsoft.com>**20070911085452] 
[Synched documentation links with current directory layout
sven.panne@aedion.de**20070911071801
 Somehow the "html" subdirs are gone, this change was not completely
 intentional, but it is nice, anyway. Those subdirs never served any
 real purpose...
 
 MERGE TO STABLE
] 
[Add a BeConservative setting to the make system
Ian Lynagh <igloo@earth.li>**20070910133528
 If it is set, we don't try to use clock_gettime
] 
[Nicer GHCi debugger underlining
Pepe Iborra <mnislaih@gmail.com>**20070910145319
 
 Improved the underlining of blocks.
 With this patch it does:
 
 Stopped at break020.hs:(6,20)-(7,29)
 _result :: t1 () = _
 5  
                      vv
 6  in_another_decl _ = do line1 0
 7                         line2 0
                                  ^^
 8  
 
 Instead of
 
 Stopped at break020.hs:(6,20)-(7,29)
 _result :: t1 () = _
 5  
 6  in_another_decl _ = do line1 0
                        ^^
 7                         line2 0
                                  ^^
 8  
 
 
] 
[FIX #1669 (GHCi debugger underlining is in the wrong place)
Pepe Iborra <mnislaih@gmail.com>**20070910142129
 
 We weren't taking into account the offset added by the line numbers:
 
 Stopped at break020.hs:10:2-8
 _result :: IO () = _
 9  main = do
 10    line1 0
      ^^^^^^^
 11    line2 0
 
 
 This patch adjusts that 
 
] 
[Turn off orphan warnings
Ian Lynagh <igloo@earth.li>**20070910122756
 We also avoid using -fno-warn-orphans with older GHCs that don't understand
 the flag.
] 
[Add some more bits to the boring file
Ian Lynagh <igloo@earth.li>**20070907212208] 
[Add a --names-only flag for list --simple-output
Ian Lynagh <igloo@earth.li>**20070907181944
 We use this in the testsuite to find out which libraries we should run
 the tests from.
] 
[FIX #903: mkWWcpr: not a product
Simon Marlow <simonmar@microsoft.com>**20070910103830
 This fixes the long-standing bug that prevents some code with
 mutally-recursive modules from being compiled with --make and -O,
 including GHC itself.  See the comments for details.
 
 There are some additional cleanups that were forced/enabled by this
 patch: I removed importedSrcLoc/importedSrcSpan: it wasn't adding any
 useful information, since a Name already contains its defining Module.
 In fact when re-typechecking an interface file we were wrongly
 replacing the interesting SrcSpans in the Names with boring
 importedSrcSpans, which meant that location information could degrade
 after reloading modules.  Also, recreating all these Names was a waste
 of space/time.
] 
[Cleaned up version of Tom's unflattened skolemOccurs
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070910083457] 
[The RTS is Haddock-less, tell make about it
sven.panne@aedion.de**20070910065759
 MERGE TO STABLE
] 
[Include package documentation, n-th attempt...
sven.panne@aedion.de**20070909154053
 MERGE TO STABLE
] 
[Yet another attempt to get the paths for the installed documentation correct
sven.panne@aedion.de**20070909124922
 MERGE TO STABLE
] 
[Add a "show" target here, too, quite useful for debugging the build process
sven.panne@aedion.de**20070909123813
 MERGE TO STABLE
] 
[Never try to build Haddock docs in ghc/compiler, even with HADDOCK_DOCS=YES
sven.panne@aedion.de**20070909123401
 MERGE TO STABLE
] 
[Removed install-dirs target, it is unnecessary and leads to stray empty directories
sven.panne@aedion.de**20070909121157
 MERGE TO STABLE
] 
[Removed install-dirs from phony targets, it is unused
sven.panne@aedion.de**20070909102815
 MERGE TO STABLE
] 
[Add a crucial missing ;
Ian Lynagh <igloo@earth.li>**20070908231024] 
[implement the outOfLine primitive in MkZipCfg (proposed as mkBlock)
Norman Ramsey <nr@eecs.harvard.edu>**20070908155141] 
[withUnique and mkBlock as requested by SLPJ (but only one is implemented)
Norman Ramsey <nr@eecs.harvard.edu>**20070907172030] 
[no registers are available after a call
Norman Ramsey <nr@eecs.harvard.edu>**20070907170843] 
[wrote an analysis to help in sinking Reload instructions
Norman Ramsey <nr@eecs.harvard.edu>**20070907165955] 
[We seem to use Outputable unconditionally these days
sven.panne@aedion.de**20070908142712
 MERGE TO STABLE
] 
[Removed setting of default values for variables which are never empty
sven.panne@aedion.de**20070908131809
 The standard autoconf variables like prefix, exec_prefix, ... are always set by
 configure, so there is no need to provide explicit defaults in the Makefile.
 
 The lines were introduced about a decade ago, perhaps there were some bugs in
 ancient autoconfs, but today I can't think of a reason why this should be still
 necessary.
] 
[Use := for PACKAGE_TARNAME, no reason for not doing so
sven.panne@aedion.de**20070908124645
 MERGE TO STABLE
] 
[Removed unused oldincludedir, things are already complicated enough
sven.panne@aedion.de**20070908124448
 MERGE TO STABLE
] 
[Added comment about GNU coding standards/autoconf history
sven.panne@aedion.de**20070908123317
 MERGE TO STABLE
] 
[Fixing Hpc's Finite Map compat lib for ghc 6.2.1
andy@galois.com**20070908055320] 
[updating hpc toolkit
andy@galois.com**20070908051600
 
 The hpc overlay has been ported from hpc-0.4
 The new API for readMix is now used.
 
] 
[Fixing hpc to allow use of hash function to seperate source files on source path
andy@galois.com**20070907223357] 
[Make various assertions work when !DEBUG
Ian Lynagh <igloo@earth.li>**20070908003112] 
[Fix assertions in RtClosureInspect
Ian Lynagh <igloo@earth.li>**20070907233330] 
[In ASSERT and friends, use all the expressions we are passed even if !DEBUG
Ian Lynagh <igloo@earth.li>**20070907233324
 Otherwise we may get unused variable warnings. GHC should optimise them
 all out for us.
] 
[Don't put directories for unbuildable libraries in bindists
Ian Lynagh <igloo@earth.li>**20070907210037
 We think there is a library there, and then installPackage fails to
 install it.
] 
[a good deal of salutory renaming
Norman Ramsey <nr@eecs.harvard.edu>**20070907161246
 I've renamed a number of type and data constructors within Cmm so that
 the names used in the compiler may more closely reflect the C--
 specification 2.1.  I've done a bit of other renaming as well.
 Highlights:
 
   CmmFormal and CmmActual now bear a CmmKind (which for now is a
                                               MachHint as before)
   CmmFormals = [CmmFormal] and CmmActuals = [CmmActual]
   
   suitable changes have been made to both code and nonterminals in the
   Cmm parser (which is as yet untested)
 
   For reasons I don't understand, parts of the code generator use a
   sequence of 'formal parameters' with no C-- kinds.  For these we now
   have the types
     type CmmFormalWithoutKind   = LocalReg
     type CmmFormalsWithoutKinds = [CmmFormalWithoutKind]
 
   A great many appearances of (Tau, MachHint) have been simplified to
   the appropriate CmmFormal or CmmActual, though I'm sure there are
   more opportunities.
 
   Kind and its data constructors are now renamed to
      data GCKind = GCKindPtr | GCKindNonPtr 
   to avoid confusion with the Kind used in the type checker and with CmmKind.
 
 Finally, in a somewhat unrelated bit (and in honor of Simon PJ, who
 thought of the name), the Whalley/Davidson 'transaction limit' is now
 called 'OptimizationFuel' with the net effect that there are no longer
 two unrelated uses of the abbreviation 'tx'.
 
 
] 
[Made TcTyFuns warning clean
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907121113] 
[fix for Simple9
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070906171703
 
 No longer include non-indexed arguments
 in lookup of matching type function clause.
 By including non-indexed (additional) arguments,
 the lookup always fails.
] 
[Improved error messages for higher-rank equality contexts
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907101901] 
[FIX: Type families test Simple14
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070907092217] 
[refactor duplicated code in main/HscMain 
Norman Ramsey <nr@eecs.harvard.edu>**20070907132442
   I kept making mistakes because all the ZipCfg and CPS stuff
   was called from two different places (compiling Haskell and 
   compiling Cmm).  Now it is called from a single place, and therefore
   successfully turned off by default.
 
   I still don't know why turning it on causes rts/Apply.cmm not to
   compile; that development is new since yesterday.
 
] 
[in CmmExpr, always have (Show GlobalReg), regardless of DEBUG setting
Norman Ramsey <nr@eecs.harvard.edu>**20070907132417] 
[Rejig boot
Ian Lynagh <igloo@earth.li>**20070907122847
 find on Windows doesn't understand -L, so stop trying to be clever and
 just autoreconf everything.
 
 Also, print out the names of directories as we autoreconf them, so that
 if autoreconfing one breaks then we know which one it was.
] 
[Fix publishing
Ian Lynagh <igloo@earth.li>**20070907121414
 Paths like c:/foo/bar get misinterpreted by rsync (really SSH?), as it
 thinks we want /foo/bar on the machine c.
] 
[Fix building with old compilers which don't understand -fno-warn-orphans
Ian Lynagh <igloo@earth.li>**20070906195737] 
[Tiny optimisation/simplification to FunDeps.grow
simonpj@microsoft.com**20070907101133] 
[Warning police
simonpj@microsoft.com**20070907101103] 
[Add clarifying comments
simonpj@microsoft.com**20070907101046] 
[Fix zonking in mkExports
simonpj@microsoft.com**20070906090346
 
 I'd missed zonk, so that an error message for missing type signature
 read (unhelpfully)
 
   main/GHC.hs:1070:0:
      Warning: Definition but no type signature for `upsweep''
               Inferred type: upsweep' :: forall t1. t
 
 The trouble was that 't' hadn't been zonked.
 
 Push to the stable branch
 
] 
[adding new files to do with new cmm functionality
Norman Ramsey <nr@eecs.harvard.edu>**20070907075754] 
[Set do_bold based on $TERM, not platform
Ian Lynagh <igloo@earth.li>**20070906175535] 
[Updates to work with latest cabal.
Duncan Coutts <duncan@haskell.org>**20070906131726] 
[massive changes to add a 'zipper' representation of C--
Norman Ramsey <nr@eecs.harvard.edu>**20070906161948
 
 Changes too numerous to comment on, but here is some old history that
 I saved: 
 
 
 Wed Aug 15 11:07:13 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * type synonyms made consistent with new Cmm types
 
     M ./compiler/nativeGen/MachInstrs.hs -2 +2
 
 Mon Aug 20 19:22:14 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * pushing return info beyond cmm into codegen
 
     M ./compiler/codeGen/Bitmap.hs r3
     M ./compiler/codeGen/CgBindery.lhs r3
     M ./compiler/codeGen/CgCallConv.hs r3
     M ./compiler/codeGen/CgCase.lhs r3
     M ./compiler/codeGen/CgClosure.lhs r3
     M ./compiler/codeGen/CgCon.lhs r3
     M ./compiler/codeGen/CgExpr.lhs r3
     M ./compiler/codeGen/CgForeignCall.hs -6 +7 r3
     M ./compiler/codeGen/CgHeapery.lhs r3
     M ./compiler/codeGen/CgHpc.hs +1 r3
     M ./compiler/codeGen/CgInfoTbls.hs r3
     M ./compiler/codeGen/CgLetNoEscape.lhs r3
     M ./compiler/codeGen/CgMonad.lhs r3
     M ./compiler/codeGen/CgParallel.hs r3
     M ./compiler/codeGen/CgPrimOp.hs +3 r3
     M ./compiler/codeGen/CgProf.hs r3
     M ./compiler/codeGen/CgStackery.lhs r3
     M ./compiler/codeGen/CgTailCall.lhs r3
     M ./compiler/codeGen/CgTicky.hs r3
     M ./compiler/codeGen/CgUtils.hs -1 +1 r3
     M ./compiler/codeGen/ClosureInfo.lhs r3
     M ./compiler/codeGen/CodeGen.lhs r3
     M ./compiler/codeGen/SMRep.lhs r3
     M ./compiler/nativeGen/AsmCodeGen.lhs -2 +2 r1
     M ./compiler/nativeGen/MachCodeGen.hs -3 +3 r1
     M ./compiler/nativeGen/MachInstrs.hs r1
     M ./compiler/nativeGen/MachRegs.lhs r1
     M ./compiler/nativeGen/NCGMonad.hs r1
     M ./compiler/nativeGen/PositionIndependentCode.hs r1
     M ./compiler/nativeGen/PprMach.hs r1
     M ./compiler/nativeGen/RegAllocInfo.hs r1
     M ./compiler/nativeGen/RegisterAlloc.hs r1
 
 Mon Aug 20 20:54:41 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * put CmmReturnInfo into a CmmCall (and related types)
 
     M ./compiler/cmm/Cmm.hs -2 +1 r3
     M ./compiler/cmm/CmmBrokenBlock.hs -13 +12 r1
     M ./compiler/cmm/CmmCPS.hs -3 +3
     M ./compiler/cmm/CmmCPSGen.hs -8 +6 r1
     M ./compiler/cmm/CmmLint.hs -1 +1
     M ./compiler/cmm/CmmLive.hs -1 +1
     M ./compiler/cmm/CmmOpt.hs -3 +3
     M ./compiler/cmm/CmmParse.y -6 +6 r3
     M ./compiler/cmm/PprC.hs -3 +3
     M ./compiler/cmm/PprCmm.hs -7 +4 r2
     M ./compiler/codeGen/CgForeignCall.hs -7 +6 r2
     M ./compiler/codeGen/CgHpc.hs -1 r1
     M ./compiler/codeGen/CgPrimOp.hs -3 r1
     M ./compiler/codeGen/CgUtils.hs -1 +1 r1
     M ./compiler/nativeGen/AsmCodeGen.lhs -2 +2
     M ./compiler/nativeGen/MachCodeGen.hs -3 +3 r1
 
 Tue Aug 21 18:09:13 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * add call info in nativeGen
 
     M ./compiler/nativeGen/AsmCodeGen.lhs r1
     M ./compiler/nativeGen/MachInstrs.hs r1
     M ./compiler/nativeGen/MachRegs.lhs r1
     M ./compiler/nativeGen/NCGMonad.hs r1
     M ./compiler/nativeGen/PositionIndependentCode.hs r1
     M ./compiler/nativeGen/PprMach.hs r1
     M ./compiler/nativeGen/RegAllocInfo.hs r1
 
 Wed Aug 22 16:41:58 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * ListGraph is now a newtype, not a synonym
   The resultant bookkeepping is unenviable, but the change
   greatly simplifies our ability to make Cmm things propertly
   Outputable for both list-graph and zipper-graph representations.
 
     M ./compiler/cmm/Cmm.hs -5 +3
     M ./compiler/cmm/CmmCPS.hs -2 +2
     M ./compiler/cmm/CmmCPSGen.hs -1 +1
     M ./compiler/cmm/CmmContFlowOpt.hs -3 +3
     M ./compiler/cmm/CmmCvt.hs -2 +2
     M ./compiler/cmm/CmmInfo.hs -2 +3
     M ./compiler/cmm/CmmLint.hs -1 +1
     M ./compiler/cmm/CmmOpt.hs -2 +2
     M ./compiler/cmm/PprC.hs -1 +1
     M ./compiler/cmm/PprCmm.hs -5 +8
     M ./compiler/cmm/PprCmmZ.hs -7 +1
     M ./compiler/codeGen/CgMonad.lhs -1 +1
     M ./compiler/nativeGen/AsmCodeGen.lhs -15 +15
     M ./compiler/nativeGen/MachCodeGen.hs -2 +2
     M ./compiler/nativeGen/PositionIndependentCode.hs -6 +6
     M ./compiler/nativeGen/PprMach.hs -3 +2
     M ./compiler/nativeGen/RegAllocColor.hs +1
     M ./compiler/nativeGen/RegAllocLinear.hs -4 +5
     M ./compiler/nativeGen/RegCoalesce.hs -6 +6
     M ./compiler/nativeGen/RegLiveness.hs -12 +12
 
 Thu Aug 23 13:44:49 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * diagnostic assistance in case fromJust fails
 
     M ./compiler/nativeGen/MachCodeGen.hs -2 +5
 
 Thu Aug 23 14:07:28 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * give every block, even the first, a label
     With branch-chain elimination, the first block of a procedure
     might be the target of a branch.  This actually happens to 
     a dozen or more procedures in the run-time system.
 
     M ./compiler/nativeGen/PprMach.hs -8 +3
 
 Fri Aug 24 17:27:04 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * clean up the code in PprMach
 
     M ./compiler/nativeGen/PprMach.hs -16 +14
 
 Fri Aug 24 19:35:03 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * a bunch of impedance matching to get the compiler to build, plus 
    * the plus is diagnostics for unreachable code, which required
      moving a lot of prettyprinting code
 
     M ./compiler/cmm/Cmm.hs -7 +5
     M ./compiler/cmm/CmmCPSZ.hs -1 +1
     M ./compiler/cmm/CmmCvt.hs -8 +8
     M ./compiler/cmm/CmmParse.y -4 +3
     M ./compiler/cmm/MkZipCfg.hs -19 +9
     M ./compiler/cmm/PprCmmZ.hs -118 +4
     M ./compiler/cmm/ZipCfg.hs -1 +13
     M ./compiler/cmm/ZipCfgCmm.hs -10 +129
     M ./compiler/main/HscMain.lhs -4 +4
     M ./compiler/nativeGen/NCGMonad.hs -2 +2
     M ./compiler/nativeGen/RegAllocInfo.hs -3 +3
 
 Fri Aug 31 14:38:02 BST 2007  Norman Ramsey <nr@eecs.harvard.edu>
   * fix a warning about an import
 
     M ./compiler/nativeGen/RegAllocColor.hs -1 +1
 
] 
[Make installPackage install settings from the [package].buildinfo file.
judah.jacobson@gmail.com**20070906010044
 
 M ./libraries/installPackage.hs -1 +14
] 
[Wibble some variable definitions to fix installation of bindists
Ian Lynagh <igloo@earth.li>**20070906140430] 
[Remove hardtop_plat/FPTOOLS_TOP_ABS_PLATFORM
Ian Lynagh <igloo@earth.li>**20070906122036
 They are now the same as hardtop/FPTOOLS_TOP_ABS, so use those instead.
 
 Also removed some substitutions of / for \, as we now use a Haskell
 program to find the top path, and it only makes paths with /s in.
] 
[Cure space leak in coloring register allocator
Ben.Lippmeier@anu.edu.au**20070906131522
 
 We now do a deep seq on the graph after it is 'built', but before coloring.
 Without this, the colorer will just force bits of it and the heap will
 fill up with half evaluated pieces of graph from previous build/spill
 stages and zillions of apply thunks.
 
] 
[Small improvement to GraphColor.selectColor
Ben.Lippmeier@anu.edu.au**20070906103347
 
 When selecting a color for a node, try and avoid using colors that
 conflicting nodes prefer. Not sure if this'll make much difference,
 but it was easy enough to add..
 
] 
[Set GhcBootLibs=YES in mk/validate-settings.mk
Ian Lynagh <igloo@earth.li>**20070906113629] 
[Quote all the arguments to installPackage
Ian Lynagh <igloo@earth.li>**20070905232959
 Makes it obvious what's going on if any are empty.
] 
[warning police
Pepe Iborra <mnislaih@gmail.com>**20070906102417] 
[Cleanup of equality rewriting and no swapInsts for wanteds
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906115818
 - Removed code duplication
 - Added comments
 - Took out swapInsts for wanteds.  With the recent extension to swapInsts
   it does mess up error messages if applied to wanteds and i should not be
   necessary.
 NB: The code actually shrunk.  Line increase is due to comments.
] 
[Remove EqInsts from addSCs to avoid -DDEBUG warnings
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906095102] 
[EqInst related clean up
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906095018
 - Remove some unused and some superflous functions
 - Add comments regarding ancestor equalities
 - Tidied ancestor equality computation
 - Replace some incorrect instToId by instToVar (but there are still some
   bad ones around as we still get warnings with -DDEBUG)
 - Some cleaned up layout
 NB: Code growth is just due to more comments.
] 
[Remove dead code in TcSimplify
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906031719] 
[Fix -DDEBUG warning
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070906023914] 
[also swap for variables in completion algorithm
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070905134426] 
[FIX #1465, error messages could sometimes say things like "A.T doesn't match A.T"
Simon Marlow <simonmar@microsoft.com>**20070906093744
 This turned out to be a black hole, however we believe we now have a
 plan that does the right thing and shouldn't need to change again.
 Error messages will only ever refer to a name in an unambiguous way,
 falling back to <package>:<module>.<name> if no unambiguous shorter
 variant can be found.  See HscTypes.mkPrintUnqualified for the
 details.
 
 Earlier hacks to work around this problem have been removed (TcSimplify).
] 
[fix error in .hi-boot-6
Simon Marlow <simonmar@microsoft.com>**20070905112503] 
[Improve GraphColor.colorScan
Ben.Lippmeier@anu.edu.au**20070905164401
 
 Testing whether a node in the conflict graph is trivially 
 colorable (triv) is still a somewhat expensive operation.
 
 When we find a triv node during scanning, even though we remove
 it and its edges from the graph, this is unlikely to to make the
 nodes we've just scanned become triv - so there's not much point
 re-scanning them right away.
 
 Scanning now takes place in passes. We scan the whole graph for
 triv nodes and remove all the ones found in a batch before rescanning
 old nodes.
 
 Register allocation for SHA1.lhs now takes (just) 40% of total
 compile time with -O2 -fregs-graph on x86
 
] 
[Fix OS X warnings
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070906004831] 
[Declare ctime_r on Mac OS
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070906001613
 
 On Mac OS, ctime_r is not declared in time.h if _POSIX_C_SOURCE is defined. We
 work around this by providing a declaration ourselves.
 
] 
[FIX #1651: use family instances during interactive typechecking
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070905130244] 
[Add an OPTIONS -w pragma to utils/genprimopcode/Lexer.xx
Ian Lynagh <igloo@earth.li>**20070905184808
 SPJ reports that it has warnings (=> errors with -Werror) on Windows.
] 
[Build settings for validation are now in mk/validate-settings.mk
Ian Lynagh <igloo@earth.li>**20070905184614] 
[Don't give warnings in compat
Ian Lynagh <igloo@earth.li>**20070905182923
 There are lots of warnings in here due to things like modules being
 imported that, in some versions of GHC, aren't used. Thus we don't
 give any warnings in here, and therefore validating with -Werror won't
 make the build fail.
 
 An alternative would be to do
 SRC_HC_OPTS := $(filter-out -Werror,$(SRC_HC_OPTS))
 but if warnings are expected then there is little point in spewing them
 out anyway.
 
 On the other hand, there aren't any warnings for me (GHC 6.6 on Linux/amd64),
 so perhaps it would be worth fixing them instead.
] 
[Typo
Ian Lynagh <igloo@earth.li>**20070905161402] 
[Fix bindist creation on Windows
Ian Lynagh <igloo@earth.li>**20070905161354] 
[Fix up bindist creation and publishing
Ian Lynagh <igloo@earth.li>**20070905160641] 
[Refactor, improve, and document the deriving mechanism
simonpj@microsoft.com**20070905170730
 
 This patch does a fairly major clean-up of the code that implements 'deriving.
 
 * The big changes are in TcDeriv, which is dramatically cleaned up.
   In particular, there is a clear split into
 	a) inference of instance contexts for deriving clauses
 	b) generation of the derived code, given a context 
   Step (a) is skipped for standalone instance decls, which 
   have an explicitly provided context.
 
 * The handling of "taggery", which is cooperative between TcDeriv and
   TcGenDeriv, is cleaned up a lot
 
 * I have added documentation for standalone deriving (which was 
   previously wrong).
 
 * The Haskell report is vague on exactly when a deriving clause should
   succeed.  Prodded by Conal I have loosened the rules slightly, thereyb
   making drv015 work again, and documented the rules in the user manual.
 
 I believe this patch validates ok (once I've update the test suite)
 and can go into the 6.8 branch.
 
] 
[Further documentation about mdo, suggested by Benjamin Franksen
simonpj@microsoft.com**20070829083349] 
[Refactor MachRegs.trivColorable to do unboxed accumulation
Ben.Lippmeier@anu.edu.au**20070905125219
 
 trivColorable was soaking up total 31% time, 41% alloc when
 compiling SHA1.lhs with -O2 -fregs-graph on x86.
 
 Refactoring to use unboxed accumulators and walk directly
 over the UniqFM holding the set of conflicts reduces this 
 to 17% time, 6% alloc.
] 
[change of representation for GenCmm, GenCmmTop, CmmProc
Norman Ramsey <nr@eecs.harvard.edu>**20070905164802
 The type parameter to a C-- procedure now represents a control-flow
 graph, not a single instruction.  The newtype ListGraph preserves the 
 current representation while enabling other representations and a
 sensible way of prettyprinting.  Except for a few changes in the
 prettyprinter the new compiler binary should be bit-for-bit identical
 to the old.
] 
[enable and slay warnings in cmm/Cmm.hs
Norman Ramsey <nr@eecs.harvard.edu>**20070905164646] 
[fix warnings
Simon Marlow <simonmar@microsoft.com>**20070905114205] 
[FIX #1650: ".boot modules interact badly with the ghci debugger"
Simon Marlow <simonmar@microsoft.com>**20070905104716
 
 In fact hs-boot files had nothing to do with it: the problem was that
 GHCi would forget the breakpoint information for a module that had
 been reloaded but not recompiled.  It's amazing that we never noticed
 this before.
 
 The ModBreaks were in the ModDetails, which was the wrong place.  When
 we avoid recompiling a module, ModDetails is regenerated from ModIface
 by typecheckIface, and at that point it has no idea what the ModBreaks
 should be, so typecheckIface made it empty.  The right place for the
 ModBreaks to go is with the Linkable, which is retained when
 compilation is avoided.  So now I've placed the ModBreaks in with the
 CompiledByteCode, which also makes it clear that only byte-code
 modules have breakpoints.
 
 This fixes break022/break023
 
] 
[Fix boot: it was avoiding autoreconfing
Simon Marlow <simonmar@microsoft.com>**20070905101419
 Two problems here: find needs to dereference symbolic links (-L
 option, I really hope that's portable), and we need to notice when
 aclocal.m4 is updated.  
 
 Somehow I think this was easier when it just always ran
 autoreconf... what was wrong with that?
] 
[don't generate .hi-boot/.o-boot files in GHCi
Simon Marlow <simonmar@microsoft.com>**20070904141231] 
[refactoring only
Simon Marlow <simonmar@microsoft.com>**20070904141209] 
[completion for modules in 'import M'
Simon Marlow <simonmar@microsoft.com>**20070904104458] 
[make the GhcThreaded setting lazy, because GhcUnregisterised might not be set yet
Simon Marlow <simonmar@microsoft.com>**20070904101729] 
[{Enter,Leave}CriticalSection imports should be outside #ifdef __PIC__
Simon Marlow <simonmar@microsoft.com>**20070905084941] 
[warning police
Ben.Lippmeier@anu.edu.au**20070905094509] 
[Do conservative coalescing in register allocator
Ben.Lippmeier@anu.edu.au**20070903163404
 
 Avoid coalescing nodes in the register conflict graph if the
 new node will not be trivially colorable. Also remove the
 front end aggressive coalescing pass.
   
 For typical Haskell code the graph coloring allocator now does
 about as well as the linear allocator.
   
 For code with a large amount of register pressure it does much
 better, but takes longer.
   
 For SHA1.lhs from darcs on x86
    
           spills    reloads    reg-reg-moves
           inserted   inserted  left in code   compile-time
   linear    1068      1311        229            7.69(s)
   graph      387       902        340           16.12(s)
 
] 
[Use dlsym on OS X if available
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070905052213
 
 On OS X 10.4 and newer, we have to use dlsym because the old NS* interface has
 been deprecated. The patch checks for HAVE_DLFCN_H instead of switching on
 the OS version.
 
 There is one additional quirk: although OS X prefixes global symbols with an
 underscore, dlsym expects its argument NOT to have a leading underscore. As a
 hack, we simply strip it off in lookupSymbol. Something a bit more elaborate
 might be cleaner.
] 
[bug fix in Decomp step of completion algorithm for given equations
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070904123945] 
[fix of wanted equational class context
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be>**20070904080014
 
 Previously failed to account for equational
 class context for wanted dictionary contraints, e.g. wanted C a
 in 
 
 	class a ~ Int => C a
 	instance C Int
 
 should give rise to wanted a ~ Int and consequently discharge a ~ Int by
 unifying a with Int and then discharge C Int with the instance.
 
 All ancestor equalities are taken into account.
 
 
] 
[Set datarootdir to the value configure gives us (if any) so datadir works
Ian Lynagh <igloo@earth.li>**20070905013239
 We then set datarootdir to something else later on so that things still
 work when configure doesn't set it.
] 
[FIX: Correct Leave/EnterCriticalSection imports
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070905010217] 
[Don't hardwire the build path into the Haddock docs
sven.panne@aedion.de**20070904172855
 Formerly, the ghc-pkg was called to get the HTML dirs for other packages, but
 of course doing this at *build* time is totally wrong. Now we use a relative
 path, just like before. This is probably not perfect, but much better than
 before.
 
 As a sidenote: Cabal calls the relevant flag "html-location", ghc-pkg calls the
 field "haddock-html", and Haddock itself uses it as part of "read-interface".
 Too much creativity is sometimes a bad thing...
] 
[put the @N suffix on stdcall foreign calls in .cmm code
Simon Marlow <simonmar@microsoft.com>**20070904142853
 This applies to EnterCriticalSection and LeaveCriticalSection in the RTS
] 
[Add a -Warn flag
Ian Lynagh <igloo@earth.li>**20070904141028] 
[Always turn on -Wall -Werror when compiling the compiler, even for stage 1
Ian Lynagh <igloo@earth.li>**20070904140324] 
[Fix CodingStyle#Warnings URLs
Ian Lynagh <igloo@earth.li>**20070904140115] 
[OPTIONS_GHC overrides the command-line, not the other way around
Simon Marlow <simonmar@microsoft.com>**20070904100623] 
[fix cut-and-pasto
Simon Marlow <simonmar@microsoft.com>**20070904100526] 
[FIX #1651: unBox types when deferring unification
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070904072542
 - This fixes the first part of #1651; ie, the panic in ghci.
] 
[Better error message for unsolvable equalities
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070903074528] 
[Use := rather than = when assigning make variables to avoid cycles
Ian Lynagh <igloo@earth.li>**20070903235117] 
[Don't use autoconf's datarootdir as <2.60 doesn't have it
Ian Lynagh <igloo@earth.li>**20070903234504] 
[Use OPTIONS rather than OPTIONS_GHC for pragmas
Ian Lynagh <igloo@earth.li>**20070903233903
 Older GHCs can't parse OPTIONS_GHC.
 This also changes the URL referenced for the -w options from
 WorkingConventions#Warnings to CodingStyle#Warnings for the compiler
 modules.
] 
[Fix building RTS with gcc 2.*; declare all variables at the top of a block
Ian Lynagh <igloo@earth.li>**20070903165847
 Patch from Audrey Tang.
] 
[fix build (sorry, forgot to push with previous patch)
Simon Marlow <simonmar@microsoft.com>**20070903200615] 
[remove debugging code
Simon Marlow <simonmar@microsoft.com>**20070903200003] 
[NCG space leak avoidance refactor
Ben.Lippmeier@anu.edu.au**20070903132254] 
[Do aggressive register coalescing
Ben.Lippmeier@anu.edu.au**20070903115149
 Conservative and iterative coalescing come next.
] 
[Add coalescence edges back to the register graph
Ben.Lippmeier@anu.edu.au**20070828144424] 
[FIX #1623: disable the timer signal when the system is idle (threaded RTS only)
Simon Marlow <simonmar@microsoft.com>**20070903132523
 Having a timer signal go off regularly is bad for power consumption,
 and generally bad practice anyway (it means the app cannot be
 completely swapped out, for example).  Fortunately the threaded RTS
 already had a way to detect when the system was idle, so that it can
 trigger a GC and thereby find deadlocks.  After performing the GC, we
 now turn off timer signals, and re-enable them again just before
 running any Haskell code.
] 
[FIX #1648: rts_mkWord64 was missing
Simon Marlow <simonmar@microsoft.com>**20070903131625
 Also noticed a few others from RtsAPI were missing, so I added them all
] 
[FIX for #1080
Ross Paterson <ross@soi.city.ac.uk>**20070903141044
 
 Arrow desugaring now uses a private version of collectPatBinders and
 friends, in order to include dictionary bindings from ConPatOut.
 
 It doesn't fix arrowrun004 (#1333), though.
] 
[Fix space leak in NCG
Ben.Lippmeier@anu.edu.au**20070831090431] 
[GhcThreaded was bogusly off by default due to things being in the wrong order
Simon Marlow <simonmar@microsoft.com>**20070903103829] 
[bump MAX_THUNK_SELECTOR_DEPTH from 8 to 16
Simon Marlow <simonmar@microsoft.com>**20070903101912
 this "fixes" #1038, in that the example runs in constant space, but
 it's really only working around the problem.  I have a better patch,
 attached to ticket #1038, but I'm wary about tinkering with this
 notorious bug farm so close to the release, so I'll push it after
 6.8.1.
] 
[comments only
Simon Marlow <simonmar@microsoft.com>**20070831092224
 I had planned to do findEnclosingDecl a different way, so add a ToDo
 as a reminder.
] 
[Suppress some warnings on Windows
Ian Lynagh <igloo@earth.li>**20070902222048] 
[Fix warnings in ghc-pkg on Windows
Ian Lynagh <igloo@earth.li>**20070902221442] 
[Fix and supress some warnings, and turn on -Werror when validating
Ian Lynagh <igloo@earth.li>**20070902193918] 
[Explicitly set "docdir" when calling make, configure's --docdir seems to be ignored
sven.panne@aedion.de**20070902164342] 
[Use DESTDIR for installation
sven.panne@aedion.de**20070901175124] 
[Fixed TeX syntax
sven.panne@aedion.de**20070901124615] 
[Set -Wall -fno-warn-name-shadowing in compiler/ when stage /= 2
Ian Lynagh <igloo@earth.li>**20070901113018] 
[Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modules
Ian Lynagh <igloo@earth.li>**20070901112130] 
[Add a --print-docdir flag
Ian Lynagh <igloo@earth.li>**20070831231538] 
[Follow Cabal module movements in installPackage
Ian Lynagh <igloo@earth.li>**20070831181359] 
[Follow Cabal's move Distribution.Program -> Distribution.Simple.Program
Ian Lynagh <igloo@earth.li>**20070831175217] 
[Don't use the --docdir etc that autoconf provides
Ian Lynagh <igloo@earth.li>**20070831173903
 Older autoconfs (<2.60?) don't understand them.
] 
[Don't try to copy haddock index files if we haven't built the docs.
judah.jacobson@gmail.com**20070831050321
 
 M ./libraries/Makefile +2
] 
[Use cp -R instead of cp -a (it's more portable).
judah.jacobson@gmail.com**20070831050215
 
 M ./libraries/Makefile -3 +3
] 
[Fix installing the libraries when there is no DESTDIR
Ian Lynagh <igloo@earth.li>**20070831015442] 
[Make the doc index page obey DESTDIR
Ian Lynagh <igloo@earth.li>**20070831014537] 
[Make rts docs obey DESTDIR
Ian Lynagh <igloo@earth.li>**20070831014346] 
[Make the manpage obey DESTDIR
Ian Lynagh <igloo@earth.li>**20070831014253] 
[Obey DESTDIR when installing library docs
Ian Lynagh <igloo@earth.li>**20070831012351] 
[typo in DLL code
Simon Marlow <simonmar@microsoft.com>**20070830143105] 
[Windows: give a better error message when running out of memory
Simon Marlow <simonmar@microsoft.com>**20070830135146
 I think this fixes #1209
 
 Previously:
 
 outofmem.exe: getMBlocks: VirtualAlloc MEM_RESERVE 1025 blocks failed: Not enoug
 h storage is available to process this command.
 
 Now:
 
 outofmem.exe: out of memory
] 
[Remove NDP-related stuff from PrelNames
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831045411
 
 We don't need fixed Names for NDP built-ins. Instead, we can look them up
 ourselves during VM initialisation.
] 
[Vectorisation of enumeration types
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831041822] 
[Number data constructors from 0 when vectorising
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831032528] 
[Rename functions
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831032125] 
[Refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831015312] 
[Refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831012638] 
[Fix vectorisation of nullary data constructors
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070831005912] 
[Do not unnecessarily wrap array components
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830062958] 
[Remove dead code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830055444] 
[Fix vectorisation of unary data constructors
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830040252] 
[Fix vectorisation of sum type constructors
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830035225] 
[Track changes to package ndp (use PArray_Int# instead of UArr Int)
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830032104] 
[Find the correct array type for primitive tycons
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830025224] 
[Add code for looking up PA methods of primitive TyCons
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070830014257] 
[Delete dead code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070829145630] 
[Rewrite vectorisation of product DataCon workers
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070829145446] 
[Rewrite generation of PA dictionaries
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070829064258] 
[Complete PA dictionary generation for product types
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824230152] 
[Simplify generation of PR dictionaries for products
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824071925] 
[Remove unused vectorisation built-in
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824051524] 
[Adapt PArray instance generation to new scheme
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824051242] 
[Add UArr built-in
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824051213] 
[Modify generation of PR dictionaries for new scheme
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824043144] 
[Refactoring
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824040901] 
[Remove dead code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824035751] 
[Fix buildFromPRepr
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824035700] 
[Move code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824032930] 
[Move code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824032743] 
[Delete dead code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824031504] 
[Change buildToPRepr to work with the new representation scheme
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824031407] 
[Remove Embed and related stuff from vectorisation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824023030] 
[Encode generic representation of vectorised TyCons by a data type
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070824012140] 
[Remove dead code
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070823135810] 
[Conversions to/from generic array representation (not finished yet)
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070823135649] 
[Use n-ary sums and products for NDP's generic representation
Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070823060945
 
 Originally, we wanted to only use binary ones, at least initially. But this
 would a lot of fiddling with selectors when converting to/from generic
 array representations. This is both inefficient and hard to implement.
 Instead, we will limit the arity of our sums/product representation to, say,
 16 (it's 3 at the moment) and initially refuse to vectorise programs for which
 this is not sufficient. This allows us to implement everything in the library.
 Later, we can implement the necessary splitting.
] 
[Fix where all the documentation gets installed
Ian Lynagh <igloo@earth.li>**20070830223740
 The paths can also now be overridden with the standard configure flags
 --docdir=, --htmldir= etc. We were always advertising these, but now we
 actually obey them.
] 
[Added decidability check for type instances
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070830144901] 
[Warning police
Pepe Iborra <mnislaih@gmail.com>**20070829183155] 
[Use a Data.Sequence instead of a list in cvReconstructType
Pepe Iborra <mnislaih@gmail.com>**20070829175119
 
 While I was there I removed some trailing white space
] 
[Fix a bug in RtClosureInspect.cvReconstructType.
Pepe Iborra <mnislaih@gmail.com>**20070829174842
 Test is print025
] 
[Warning police
Pepe Iborra <mnislaih@gmail.com>**20070829165653] 
[UNDO: Extend ModBreaks with the srcspan's of the enclosing expressions
Pepe Iborra <mnislaih@gmail.com>**20070829102314
 
 Remnants of :stepover
 
] 
[remove "special Ids" section, replace with a link to GHC.Prim
Simon Marlow <simonmar@microsoft.com>**20070830112139
 This documentation was just duplicating what is in GHC.Prim now.
] 
[expand docs for unsafeCoerce#, as a result of investigations for #1616
Simon Marlow <simonmar@microsoft.com>**20070830111909] 
[Remove text about ghcprof.  It almost certainly doesn't work.
Simon Marlow <simonmar@microsoft.com>**20070829122126] 
[fix compiling GHC 6.7+ with itself - compat needs -package containers now
Simon Marlow <simonmar@microsoft.com>**20070829113500] 
[fix typo
Simon Marlow <simonmar@microsoft.com>**20070824141039] 
[no -auto-all for CorePrep
Simon Marlow <simonmar@microsoft.com>**20070829092414] 
[improvements to findPtr(), a useful hack for space-leak debugging in gdb
Simon Marlow <simonmar@microsoft.com>**20070829092400] 
[fix up some old text, remove things that aren't true any more
Simon Marlow <simonmar@microsoft.com>**20070828125821] 
[Windows: remove the {Enter,Leave}CricialSection wrappers
Simon Marlow <simonmar@microsoft.com>**20070829104811
 The C-- parser was missing the "stdcall" calling convention for
 foreign calls, but once added we can call {Enter,Leave}CricialSection
 directly.
] 
[Wibble
Pepe Iborra <mnislaih@gmail.com>**20070829085305] 
[FIX: Remove accidential change to darcs-all in type families patch
Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070829010011
 - The type families patch includes a change to darcs-all that breaks it for
   ssh repos at least for Perl 5.8.8 (on MacOS).
 - My Perl-fu is not sufficient to try to fix the modification, which was
   supposed to improve darcs-all on windows, so I just revert to the old
   code.
] 
[Remove INSTALL_INCLUDES; no longer used
Ian Lynagh <igloo@earth.li>**20070828205636] 
[Use DESTDIR when installing
Ian Lynagh <igloo@earth.li>**20070828205119] 
[Copy LICENSE files into the bindist, as Cabal now installs them
Ian Lynagh <igloo@earth.li>**20070828130428] 
[TAG 2007-08-28
Ian Lynagh <igloo@earth.li>**20070828215445] 
Patch bundle hash:
6ac237ac820859a91a197fed556d4346a51f72d2
