ghc.git
8 years agoFix for $topdir appearing in the haddock-html field
Duncan Coutts [Thu, 9 Jun 2011 11:15:49 +0000 (12:15 +0100)] 
Fix for $topdir appearing in the haddock-html field

I'd naively assumed that the haddock-html field would only use the
$httptopdir variable. Hopefully this will fix the windows build.

8 years agoMerge branch 'master' of http://darcs.haskell.org/ghc
Dimitrios Vytiniotis [Thu, 9 Jun 2011 10:01:11 +0000 (11:01 +0100)] 
Merge branch 'master' of darcs.haskell.org/ghc

8 years agoFix warnings in nativeGen/PPC/CodeGen.hs
Ian Lynagh [Wed, 8 Jun 2011 20:14:11 +0000 (21:14 +0100)] 
Fix warnings in nativeGen/PPC/CodeGen.hs

8 years agoRemove platform CPP from nativeGen/PPC/CodeGen.hs
Ian Lynagh [Wed, 8 Jun 2011 20:04:10 +0000 (21:04 +0100)] 
Remove platform CPP from nativeGen/PPC/CodeGen.hs

8 years agocmmTopCodeGen no longer takes DynFlags as an argument
Ian Lynagh [Wed, 8 Jun 2011 18:24:07 +0000 (19:24 +0100)] 
cmmTopCodeGen no longer takes DynFlags as an argument

It is in the NatM monad, which has DynFlags as part of its state.

8 years agoFill out the osElfTarget definition
Ian Lynagh [Wed, 8 Jun 2011 17:51:18 +0000 (18:51 +0100)] 
Fill out the osElfTarget definition

For now we panic in the OSUnknown case. It would probably be better
to make the enumerations complete instead, though.

8 years agoAdd a target32Bit function to Platform
Ian Lynagh [Wed, 8 Jun 2011 17:48:36 +0000 (18:48 +0100)] 
Add a target32Bit function to Platform

8 years agoRemove out-of-date comment
Ian Lynagh [Wed, 8 Jun 2011 17:37:16 +0000 (18:37 +0100)] 
Remove out-of-date comment

8 years agoWhitespace only in utils/Platform.hs
Ian Lynagh [Wed, 8 Jun 2011 17:34:30 +0000 (18:34 +0100)] 
Whitespace only in utils/Platform.hs

8 years agoMerge branch 'master' of http://darcs.haskell.org/ghc
Dimitrios Vytiniotis [Wed, 8 Jun 2011 17:27:25 +0000 (18:27 +0100)] 
Merge branch 'master' of darcs.haskell.org/ghc

8 years agoReorganized functional dependency reactions once more:
Dimitrios Vytiniotis [Wed, 8 Jun 2011 17:24:21 +0000 (18:24 +0100)] 
Reorganized functional dependency reactions once more:
 1) generating Derived FDs as happens for equality superclasses
 2) Kept the optimization of immediately discharging items
    if fundeps cause a match
 3) Restructured top-reactions and interactions with inerts to
    behave similarly to each other.

In particular, (1) fixes ticket #5236.

8 years agoWhitespace only in nativeGen/PPC/CodeGen.hs
Ian Lynagh [Wed, 8 Jun 2011 16:56:47 +0000 (17:56 +0100)] 
Whitespace only in nativeGen/PPC/CodeGen.hs

8 years agoFix segfault in array copy primops on 32-bit
Johan Tibell [Tue, 7 Jun 2011 12:44:23 +0000 (14:44 +0200)] 
Fix segfault in array copy primops on 32-bit

The second argument to C's memset was passed as a W8 while memset
expects an int.

Signed-off-by: David Terei <davidterei@gmail.com>
8 years agofix path to ghc-pwd
Simon Marlow [Mon, 6 Jun 2011 11:53:52 +0000 (12:53 +0100)] 
fix path to ghc-pwd

8 years agofix a cut/paste bug in debugging code
Simon Marlow [Mon, 6 Jun 2011 11:19:24 +0000 (12:19 +0100)] 
fix a cut/paste bug in debugging code

8 years agoMerge remote branch 'working/master'
Simon Marlow [Mon, 6 Jun 2011 10:39:00 +0000 (11:39 +0100)] 
Merge remote branch 'working/master'

8 years agoFix compilation of rts/win32/GetEnv.c
unknown [Sun, 5 Jun 2011 18:52:42 +0000 (19:52 +0100)] 
Fix compilation of rts/win32/GetEnv.c

8 years agoFix Windows build failure
Ian Lynagh [Sun, 5 Jun 2011 18:16:35 +0000 (19:16 +0100)] 
Fix Windows build failure

We were calling freeArgv with arguments of the wrong type.
But actually, we had our own copy of its loop anyway, so
now we just use that instead.

8 years agoMake dumpIfSet_dyn_or use dumpSDoc
Ian Lynagh [Sun, 5 Jun 2011 13:09:53 +0000 (14:09 +0100)] 
Make dumpIfSet_dyn_or use dumpSDoc

This means that for example
    ghc -ddump-simpl -ddump-to-file ...
now puts the simpl output in a file, rather htan sending it to stdout.

8 years agoadd comment
Simon Marlow [Sat, 4 Jun 2011 10:11:10 +0000 (11:11 +0100)] 
add comment

8 years agocomment typo
Simon Marlow [Sat, 4 Jun 2011 10:10:49 +0000 (11:10 +0100)] 
comment typo

8 years agoTidy up the ic_exports field of the InteractiveContext. Previously
Simon Marlow [Fri, 3 Jun 2011 23:13:04 +0000 (00:13 +0100)] 
Tidy up the ic_exports field of the InteractiveContext.  Previously
was [(Module, Maybe ImportDecl)], now it is just [ImportDecl].  So now
":m +A" and "import A" do exactly the same thing in GHCi, and use the
same code paths.

8 years agoIgnore ghc-extra-opts
Manuel M T Chakravarty [Fri, 3 Jun 2011 02:13:21 +0000 (12:13 +1000)] 
Ignore ghc-extra-opts

8 years agoHaddock fix in the vectoriser
Manuel M T Chakravarty [Fri, 3 Jun 2011 01:41:44 +0000 (11:41 +1000)] 
Haddock fix in the vectoriser

8 years agoPropagate scalar variables and tycons for vectorisation through 'HscTypes.VectInfo'.
Manuel M T Chakravarty [Fri, 3 Jun 2011 00:42:48 +0000 (10:42 +1000)] 
Propagate scalar variables and tycons for vectorisation through 'HscTypes.VectInfo'.

8 years agofix comment
Simon Marlow [Tue, 31 May 2011 13:05:37 +0000 (14:05 +0100)] 
fix comment

8 years agoFold constants during forward substitution in the Cmm mini-inliner
Johan Tibell [Fri, 6 May 2011 15:10:15 +0000 (17:10 +0200)] 
Fold constants during forward substitution in the Cmm mini-inliner

This exposes new constants that can be propagated.

8 years agoImplement forward substitution of constants in the Cmm mini-inliner
Johan Tibell [Fri, 6 May 2011 12:13:03 +0000 (14:13 +0200)] 
Implement forward substitution of constants in the Cmm mini-inliner

Currently the mini-inliner would only forward substitute assignments
to registers that were used exactly once, to not risk duplicating
computation.  For constants there's no such risk so we always
substitute.  Prior to the change the Cmm

    fn
    {
        bits64 a, b;

        a = 1;
        b = a + a;
        RET_N(b);
    }

would be optimized as

    fn()    { []
            }
        ca: _cb::I64 = 1;
            R1 = _cb::I64 + _cb::I64;
            jump (I64[Sp + 0]) ();
    }

but after it would be optimized as

    fn()    { []
            }
        ca: R1 = 2;
            jump (I64[Sp + 0]) ();
    }

Note that this pass does not deal with the now dead assignment.

8 years agocheck for bfd_uncompress_section_contents instead of bfd_init, because
Simon Marlow [Wed, 1 Jun 2011 08:58:21 +0000 (09:58 +0100)] 
check for bfd_uncompress_section_contents instead of bfd_init, because
the former will fail if libbfd is a static library and has a libz
dependency that we don't know about (#3756)

8 years agoFix a warning in DEBUG code
Ian Lynagh [Wed, 1 Jun 2011 00:07:01 +0000 (01:07 +0100)] 
Fix a warning in DEBUG code

8 years agoFix the build with GHC 6.12.3
Ian Lynagh [Tue, 31 May 2011 23:50:24 +0000 (00:50 +0100)] 
Fix the build with GHC 6.12.3

8 years agoFix a build failure on non-{x86,amd64}
Ian Lynagh [Tue, 31 May 2011 23:20:08 +0000 (00:20 +0100)] 
Fix a build failure on non-{x86,amd64}

8 years agoEliminate IF_ARCH_sparc
Ian Lynagh [Tue, 31 May 2011 21:15:33 +0000 (22:15 +0100)] 
Eliminate IF_ARCH_sparc

8 years agoRemove some unused CPP macros
Ian Lynagh [Tue, 31 May 2011 21:09:22 +0000 (22:09 +0100)] 
Remove some unused CPP macros

8 years agoRemove CPP from nativeGen/RegAlloc/Linear/FreeRegs.hs
Ian Lynagh [Tue, 31 May 2011 18:02:52 +0000 (19:02 +0100)] 
Remove CPP from nativeGen/RegAlloc/Linear/FreeRegs.hs

Fixes more failures on arches without an NCG

8 years agoParameterise the RegM monad on the FreeRegs type
Ian Lynagh [Tue, 31 May 2011 16:07:04 +0000 (17:07 +0100)] 
Parameterise the RegM monad on the FreeRegs type

8 years agoWhitespace only in nativeGen/RegAlloc/Linear/Base.hs
Ian Lynagh [Tue, 31 May 2011 15:56:40 +0000 (16:56 +0100)] 
Whitespace only in nativeGen/RegAlloc/Linear/Base.hs

8 years agoAdd missing type sigs in nativeGen/RegAlloc/Linear/Main.hs
Ian Lynagh [Tue, 31 May 2011 15:49:21 +0000 (16:49 +0100)] 
Add missing type sigs in nativeGen/RegAlloc/Linear/Main.hs

8 years agoWhitespace only in nativeGen/RegAlloc/Linear/Main.hs
Ian Lynagh [Tue, 31 May 2011 15:42:46 +0000 (16:42 +0100)] 
Whitespace only in nativeGen/RegAlloc/Linear/Main.hs

8 years agoRemove CPP from nativeGen/RegAlloc/Graph/TrivColorable.hs
Ian Lynagh [Tue, 31 May 2011 15:31:17 +0000 (16:31 +0100)] 
Remove CPP from nativeGen/RegAlloc/Graph/TrivColorable.hs

This fixes build problems on arches without an NCG.

8 years agoWhitespace only in nativeGen/RegAlloc/Graph/TrivColorable.hs
Ian Lynagh [Tue, 31 May 2011 15:01:39 +0000 (16:01 +0100)] 
Whitespace only in nativeGen/RegAlloc/Graph/TrivColorable.hs

8 years agoAdd an ArchUnknown constructor to the arch type
Ian Lynagh [Tue, 31 May 2011 14:51:22 +0000 (15:51 +0100)] 
Add an ArchUnknown constructor to the arch type

Fixes build problems on platforms for which we did not have
and Arch constructor.

8 years agoRemove CPP from nativeGen/TargetReg.hs
Ian Lynagh [Mon, 30 May 2011 20:47:01 +0000 (21:47 +0100)] 
Remove CPP from nativeGen/TargetReg.hs

It's still not quite right: It assumes it is compiling for
defaultTargetPlatform instead of targetPlatform. But it's a
step in the right direction, and fixes the build on arches
without a NCG.

8 years agomore typos (#5225)
Simon Marlow [Tue, 31 May 2011 10:16:19 +0000 (11:16 +0100)] 
more typos (#5225)

8 years agoFix typos in 7.0.1-notes.xml
Daniel Fischer [Mon, 30 May 2011 09:13:35 +0000 (11:13 +0200)] 
Fix typos in 7.0.1-notes.xml

8 years agoSpace between fromInteger and function in bugs.xml
Daniel Fischer [Mon, 30 May 2011 09:08:24 +0000 (11:08 +0200)] 
Space between fromInteger and function in bugs.xml

8 years agoFix typos in debugging.xml
Daniel Fischer [Mon, 30 May 2011 09:00:26 +0000 (11:00 +0200)] 
Fix typos in debugging.xml

8 years agoFix typos in ffi-chap.xml
Daniel Fischer [Mon, 30 May 2011 08:54:16 +0000 (10:54 +0200)] 
Fix typos in ffi-chap.xml

8 years agoFix typos in packages.xml
Daniel Fischer [Mon, 30 May 2011 07:59:50 +0000 (09:59 +0200)] 
Fix typos in packages.xml

8 years agoFix typos in profiling.xml
Daniel Fischer [Mon, 30 May 2011 07:47:44 +0000 (09:47 +0200)] 
Fix typos in profiling.xml

8 years agoFix typos in runtime_control.xml
Daniel Fischer [Mon, 30 May 2011 07:34:34 +0000 (09:34 +0200)] 
Fix typos in runtime_control.xml

8 years agoRemove repeated at in using.xml
Daniel Fischer [Mon, 30 May 2011 07:09:34 +0000 (09:09 +0200)] 
Remove repeated at in using.xml

8 years agoFix typos in shared_libs.xml
Daniel Fischer [Mon, 30 May 2011 06:58:03 +0000 (08:58 +0200)] 
Fix typos in shared_libs.xml

8 years agoFix two typos in flags.xml
Daniel Fischer [Mon, 30 May 2011 06:52:49 +0000 (08:52 +0200)] 
Fix two typos in flags.xml

8 years agoFix typos in using.xml
Daniel Fischer [Mon, 30 May 2011 06:47:52 +0000 (08:47 +0200)] 
Fix typos in using.xml

8 years agoFix typo everytime
Daniel Fischer [Mon, 30 May 2011 06:13:05 +0000 (08:13 +0200)] 
Fix typo everytime

8 years agoglasgow_exts.xml whitespace
Daniel Fischer [Mon, 30 May 2011 09:16:15 +0000 (11:16 +0200)] 
glasgow_exts.xml whitespace

8 years agobugs.xml whitespace
Daniel Fischer [Mon, 30 May 2011 09:03:46 +0000 (11:03 +0200)] 
bugs.xml whitespace

8 years agodebugging.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:55:17 +0000 (10:55 +0200)] 
debugging.xml whitespace

8 years agoffi-chap.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:50:22 +0000 (10:50 +0200)] 
ffi-chap.xml whitespace

8 years agoglasgow_exts.xml typos and whitespace
Daniel Fischer [Mon, 30 May 2011 08:49:21 +0000 (10:49 +0200)] 
glasgow_exts.xml typos and whitespace

8 years agointro.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:02:02 +0000 (10:02 +0200)] 
intro.xml whitespace

8 years agolicense.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:00:42 +0000 (10:00 +0200)] 
license.xml whitespace

8 years agoparallel.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:51:15 +0000 (09:51 +0200)] 
parallel.xml whitespace

8 years agophases.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:48:30 +0000 (09:48 +0200)] 
phases.xml whitespace

8 years agoprofiling.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:37:16 +0000 (09:37 +0200)] 
profiling.xml whitespace

8 years agoruntime_control.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:28:11 +0000 (09:28 +0200)] 
runtime_control.xml whitespace

8 years agoseparate_compilation.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:23:28 +0000 (09:23 +0200)] 
separate_compilation.xml whitespace

8 years agowin32-dlls.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:00:58 +0000 (09:00 +0200)] 
win32-dlls.xml whitespace

8 years agousing.xml whitespace
Daniel Fischer [Mon, 30 May 2011 06:37:25 +0000 (08:37 +0200)] 
using.xml whitespace

8 years agoflags.xml whitespace
Daniel Fischer [Mon, 30 May 2011 06:15:36 +0000 (08:15 +0200)] 
flags.xml whitespace

8 years agoghci.xml whitespace only
Daniel Fischer [Mon, 30 May 2011 05:54:24 +0000 (07:54 +0200)] 
ghci.xml whitespace only

8 years agofix format specs on 64-bit builds
Simon Marlow [Tue, 31 May 2011 08:47:59 +0000 (09:47 +0100)] 
fix format specs on 64-bit builds

8 years agoFix a cause of very occasional <<loop>> with parallel programs and
Simon Marlow [Tue, 31 May 2011 08:39:09 +0000 (09:39 +0100)] 
Fix a cause of very occasional <<loop>> with parallel programs and
-feager-blackholing (#5226).  See comments for details.

8 years agoFix some validation errors
David Terei [Sat, 28 May 2011 00:11:54 +0000 (17:11 -0700)] 
Fix some validation errors

8 years agoRemove some old unused prelnames
David Terei [Sat, 21 May 2011 10:06:37 +0000 (03:06 -0700)] 
Remove some old unused prelnames

8 years agoRemove very dead Java backend code.
David Terei [Mon, 9 May 2011 07:48:40 +0000 (00:48 -0700)] 
Remove very dead Java backend code.

8 years agoFix warnings in X86/CodeGen
David Terei [Mon, 9 May 2011 07:16:36 +0000 (00:16 -0700)] 
Fix warnings in X86/CodeGen

8 years agoAdd new mem{cpy,set,move} cmm prim ops.
David Terei [Sat, 23 Apr 2011 03:00:15 +0000 (20:00 -0700)] 
Add new mem{cpy,set,move} cmm prim ops.

8 years agoLLVM: Figure out llvm version we are calling
David Terei [Mon, 9 May 2011 09:29:21 +0000 (02:29 -0700)] 
LLVM: Figure out llvm version we are calling

8 years agoMake assignTemp_ less pessimistic
Johan Tibell [Thu, 19 May 2011 15:34:20 +0000 (17:34 +0200)] 
Make assignTemp_ less pessimistic

assignTemp_ is intended to make sure that the expression gets assigned
to a temporary in case that's needed in order to avoid a register
getting trashed due to a function call.

8 years agoRemove most of the CPP from AsmCodeGen
Ian Lynagh [Sun, 29 May 2011 18:06:28 +0000 (19:06 +0100)] 
Remove most of the CPP from AsmCodeGen

In particular, the "#error" for platforms without a NCG is gone,
which means the module should now build on all platforms again.

I'm not sure if this is the nicest way to handle multiple platforms
here, but it works for now.

8 years agoFix build on windows (hopefully)
Duncan Coutts [Sun, 29 May 2011 15:29:03 +0000 (16:29 +0100)] 
Fix build on windows (hopefully)

A missing ';' that just happened to work fine on non-windows due
to differing definitions of the ACQUIRE_LOCK macro.

8 years agoMake builds that use stage1 use "dist-install" consistently. This
Simon Marlow [Tue, 12 Apr 2011 12:30:02 +0000 (13:30 +0100)] 
Make builds that use stage1 use "dist-install" consistently.  This
makes it easier to remove everything built with stage1 in cases where
the build system or GHC wrongly thinks everything is up to date.

8 years agoEmit various bits of OS process info into the eventlog
Duncan Coutts [Thu, 26 May 2011 17:44:41 +0000 (18:44 +0100)] 
Emit various bits of OS process info into the eventlog

The process ID, parent process ID, rts name and version
The program arguments and environment.

8 years agoAdd capability sets to the tracing/events system
Duncan Coutts [Thu, 26 May 2011 15:42:37 +0000 (16:42 +0100)] 
Add capability sets to the tracing/events system

We trace the creation and shutdown of capabilities. All the capabilities
in the process are assigned to one capabilitiy set of OS-process type.

This is a second version of the patch. Includes work by Spencer Janssen.

8 years agoMake the tracing of the startup event more regular
Duncan Coutts [Thu, 26 May 2011 15:01:24 +0000 (16:01 +0100)] 
Make the tracing of the startup event more regular

Rather than doing it differently for the eventlog and Dtrace cases.

8 years agoRearrange shutdownCapability code slightly
Duncan Coutts [Thu, 26 May 2011 14:08:43 +0000 (15:08 +0100)] 
Rearrange shutdownCapability code slightly

This is mostly for the beneift of having sensible places to put tracing
code later. We want a code path that has somewhere to trace (in order):
 (1) starting up all capabilities;
 (2) N * starting up an individual capability;
 (3) N * shutting down an individual capability;
 (4) shutting down all capabilities.
This has to work in both threaded and non-threaded modes.

Locations (1) and (2) are provided by initCapabilities and
initCapability respectively. Previously, there was no loccation for (4)
and while shutdownCapability should be usable for (3) it was only called
in the !THREADED_RTS case.

Now, shutdownCapability is called unconditionally (and the body is
conditonal on THREADED_RTS) and there is a new shutdownCapabilities that
calls shutdownCapability in a loop.

8 years agoMerge branch 'ghc-generics'
Jose Pedro Magalhaes [Thu, 26 May 2011 16:27:34 +0000 (18:27 +0200)] 
Merge branch 'ghc-generics'

8 years agoMerge branch 'master' of http://darcs.haskell.org/ghc
Simon Peyton Jones [Thu, 26 May 2011 16:22:02 +0000 (17:22 +0100)] 
Merge branch 'master' of darcs.haskell.org/ghc

8 years agoSuppress the alarming SpecConstr message for normal users (Trac #5125)
Simon Peyton Jones [Thu, 26 May 2011 16:21:51 +0000 (17:21 +0100)] 
Suppress the alarming SpecConstr message for normal users (Trac #5125)

This is the offending message:
  SpecConstr
      Function `$wks2{v s2dJ} [lid]'
        has one call pattern, but the limit is 0
      Use -fspec-constr-count=n to set the bound
      Use -dppr-debug to see specialisations

The message isn't very good, and is for experts only. So now it
comes out only
    if you build with -DDEBUG
    or you specify -dppr-debug at runtime

8 years agoTreat the (~) type constructor a bit specially
Simon Peyton Jones [Thu, 26 May 2011 16:19:18 +0000 (17:19 +0100)] 
Treat the (~) type constructor a bit specially
when kind-checking in Core Lint.  It's unusual
becuase it is poly-kinded; for example

(~) Int a
and (~) Maybe b

are both ok.  We don't want the full generality
of kind polymorphism (yet anyway) so these changes
in effect give (~) its own private kinding rule.

It won't work right if (~) appears un-saturated,
and Lint now checks for that too.

8 years agoMerge remote branch 'origin/master' into ghc-generics
Simon Peyton Jones [Thu, 26 May 2011 13:33:00 +0000 (14:33 +0100)] 
Merge remote branch 'origin/master' into ghc-generics

8 years agoDo not be so eager about loading family-instance modules
Simon Peyton Jones [Thu, 26 May 2011 13:31:18 +0000 (14:31 +0100)] 
Do not be so eager about loading family-instance modules
when doing the overlap check.  We only need to load the
ones for modules whose family instances we need to compare!

This means that programs that don't use type families are
not penalised, which is important.

8 years agoRejig the way in which generic default method signatures are checked
Simon Peyton Jones [Thu, 26 May 2011 13:30:15 +0000 (14:30 +0100)] 
Rejig the way in which generic default method signatures are checked

- Check GenericSig in tcClassSigs, along with TypeSig
- Add the generic default methods to the type envt
- Look them up via tcLookupId in TcClassDcl.tcDefMeth

Much nicer!

8 years agoBump specConstr threshold to match to 10x factor added to
Simon Marlow [Thu, 26 May 2011 10:37:29 +0000 (11:37 +0100)] 
Bump specConstr threshold to match to 10x factor added to
CoreUnfold.sizeExpr (oops, forgot to push this patch along with the
others yesterday, and this caused a few test failures overnight).

8 years agoRemove unused ghci/ByteCodeFFI.lhs
Ian Lynagh [Wed, 25 May 2011 18:08:38 +0000 (19:08 +0100)] 
Remove unused ghci/ByteCodeFFI.lhs

8 years agoghc-pkg: report parser warnings when registering packages
Duncan Coutts [Wed, 25 May 2011 14:10:33 +0000 (15:10 +0100)] 
ghc-pkg: report parser warnings when registering packages

8 years agoProvide the pkgroot value in ghc-pkg dump & describe when necessary
Duncan Coutts [Wed, 25 May 2011 12:06:14 +0000 (13:06 +0100)] 
Provide the pkgroot value in ghc-pkg dump & describe when necessary

Tools handling installed packages need to be able to interpret the
paths which are relative to the ${pkgroot} which means they need to
know the value of ${pkgroot}. With ghc-pkg this is not always obvious
since ghc-pkg does not currently have any way machine interface for
reporting the location of its package dbs (global, user). The solution
we have arrived at is simply to emit the pkgroot as an extra field
when it is needed.

There are two cases:
 * --no-expand-pkgroot: ghc-pkg dump/describe will not expand the
   ${pkgroot} var, so it will appear literally in the output and the
   pkgroot field will be generated so that tools know what value to
   use for the ${pkgroot}.
 * --expand-pkgroot: ghc-pkg dump/describe will expand the ${pkgroot}
   and ${pkgrooturl} vars and will not generate the pkgroot field.

The defaults are:
 * ghc-pkg dump/describe --no-expand-pkgroot
 * ghc-pkg field --expand-pkgroot

8 years agosizeExpr: multiply all the sizes by 10, except for primops. This
Simon Marlow [Wed, 25 May 2011 12:06:05 +0000 (13:06 +0100)] 
sizeExpr: multiply all the sizes by 10, except for primops.  This
makes primops look cheap (but not free), and improves the Repro4.hs
example from #4978.

While I was making this change I accidentally discovered that
increasing the discount for scrutinised constructors was an
unambiguous win, so I did that too.