Remove Show instance for Forest

A Forest is just a list, and we have a Show instance for
lists already.  We don't need a special Show instance for
Forests.  If we change our minds we can add a newtype,
but I don't think it's worth it.

Fixes Trac #5960
Don't document '-fregs-liveness' or '-fllvm-tbaa', both hidden flags

No reason user should turn them off, just want for ghc developer
debugging uses.
Add a crucial forkM on the superclass context of IfaceClass in tcIfaceDecl

The absence of this was causing a loop when typechecking an interface
where the superclass context mentioned an associated type
   class C (T a) => D a where
     data T a

Fixes Trac #5970
Make the LocalRdrEnv keep track of all the Names that are in scope

This allows us to give a sensible error message when a Template Haskell
splice generates an occurrence without a binding site.

Fixes Trac #5959 and #5971
Merge branch 'master' of http://darcs.haskell.org/ghc
Fix a bug in threadStackOverflow() (maybe #5214)

If we overflow the current stack chunk and copy its entire contents
into the next stack chunk, we could end up with two UNDERFLOW_FRAMEs.
We had a special case to catch this in the case when the old stack
chunk was the last one (ending in STOP_FRAME), but it went wrong for
other chunks.

I found this bug while poking around in the core dump attached to
options and running the nofib suite: imaginary/wheel_sieve2 crashed
with +RTS -kc600 -kb300.

I don't know if this is the cause of all the symptoms reported in
threadStackOverflow: Tweak to stack chunk sizing

If the old stack is only half full, then the next chunk we allocate
will be twice as large, to accommodate large requests for stack.  In
that case, make sure that the chunk we allocate is at least as large
as the usual chunk size - there's no point allocating a 2k chunk
(double the default initial chunk size of 1k) if in the normal case we
would allocate a 32k chunk.
Add linker support for ELF on ARM

Add support for ELF objects on ARM to the runtime linker. While the list of
relocation types in the "ELF for the ARM Architecture" specification spans four
pages, we thankfully only see a handful of these in the wild. Thus, at the
moment we only support the following .rel relocation types,

 * R_ARM_ABS32
 * R_ARM_TARGET1
 * R_ARM_REL32
 * R_ARM_CALL
 * R_ARM_JUMP24
 * R_ARM_MOVT_ABS
 * R_ARM_MOVW_ABS_NC
 * R_ARM_THM_CALL
 * R_ARM_THM_JUMP24
 * R_ARM_THM_MOVT_ABS
 * R_ARM_THM_MOVW_ABS_NC
 * R_ARM_THM_JUMP8
 * R_ARM_THM_JUMP11

Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
Comments only
White space only
Don't crash if there's a malformed instance!

Fixes Trac #5951
A related group of changes that make lexically scoped type
variables work in Template Haskell

Triggered by fixing Trac #5968.
Don't do validity checking on types in Template Haskell type brackets
We might be in the "knot" of a type declaration: see Trac #5968.
Merge branch 'master' of http://darcs.haskell.org/ghc
Update documentation of DatatypeContexts (#5964)
Merge remote-tracking branch 'origin/master' into profiling

Conflicts:
	compiler/basicTypes/OccName.lhs
Fixed name collision
Reworked debug in code generation

The new idea is to exploit that codegen has the CgStmt wrapper for the
actual Cmm code in order to easily emit new blocks "inline". We can
use this infrastructure by inserting debug and context annotations about
the generated code.

When the code is then actually printed, we collect together all this
information and generate the tick map. Note that context (= timParent)
info can now originate from a different place then the debug
annotations (= timTicks), so we must make sure to merge suitably. Sadly,
the whole process still requires the tick map to get looped in...

I'm still a lot more pleased with this code, mainly because it is far less
intrusive to the codegen architecture. In fact, a lot of this commit is a
clean rollback to master!

As an added bonus, this change allows for far finer granularity (block
level!). Now we just need to figure out how to cleanly map this to Core
and we can finally talk about profiling "case" alternatives against each
other, amongst other things.
Set context field for type meta data

Apparently this was what kept LLVM from actually generating the debug data
for variables.

Also, some other minor fixes to the generated code. The missing "offset"
field caused type information to be faulty.
Renamed getTypeMeta

Its name sounds too much like getUniqMeta & co. I like typeToMeta more.