Generalise the type of fieldSz and use it more
Remove some __HADDOCK__ CPP

I think these are all redundant, now that haddock uses the GHC API
Use the standard state monad transformer in GHCi
Remove CPP in ByteCodeItbls

I tried making mkJumpToAddr return [Word32] on all platforms,
but it went wrong on x86 (possibly due to alignment?). Rather than
chasing the bug, I've just used an Either type for now.
Fix segfaults on SELinux machines; fixes #7629

Patch from wgmitchener.

From the ticket:
The two addresses (adjustorStub and code) contain the same memory
(double-mapped), but one is writable while the other is executable.
This is how libffi works around the SELinux restrictions. On
non-SELinux systems the code and data addresses are probably the same.
added ticky counters for heap and stack checks
ignore RealWorld in size_expr; flag to keep w/w from creating sharing

size_expr now ignores RealWorld lambdas, arguments, and applications.

Worker-wrapper previously removed all lambdas from a function, if they
were all unused. Removing *all* value lambdas is no longer
allowed. Instead (\_ -> E) will become (\_void -> E), where it used to
become E. The previous behavior can be recovered via the new
-ffun-to-thunk flag.

Nofib notables:

----------------------------------------------------------------
        Program               O2          O2 newly ignoring RealWorld
                                          and not turning function
                                          closures into thunks
----------------------------------------------------------------

 Allocations

  comp_lab_zift            333090392%           -5.0%
reverse-complem            155188304%           -3.2%

        rewrite             15380888%           +4.0%
         boyer2              3901064%           +7.5%

rewrite previously benefited from fortunate LoopBreaker choice that is
now disrupted.

A function in boyer2 goes from $wonewayunify1 size 700 to size 650,
thus gets inlined into rewritelemmas, thus exposing a parameter
scrutinisation, thus allowing SpecConstr, which unfortunately involves
reboxing.

Run Time

 fannkuch-redux                 7.89%          -15.9%

            hpg                 0.25%           +5.6%
           wang                 0.21%           +5.8%

/shrug
Make explicit that there can be only one entry point
per cmm procedure on Darwin/PPC, because of splitting.

x86 should be treated the same way, I'll come back to that later.
extended ticky to also track "let"s that are not closures

This includes selector, ap, and constructor thunks. They are still
guarded by the -ticky-dyn-thk flag.
Fix type variable scoping in nested pattern type signatures (#7827)
Tidy up documentation of generalisation
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Revert "extended ticky to also track "let"s that are not closures"

This reverts commit 024df664b600a622cb8189ccf31789688505fc1c.

Of course I gaff on my last day...
No need to map over all blocks, setting up PIC.

Darwin x86 has inconsistent PIC base register, so splitting (which happened before)
ensures that each cmm procedure only has one entry point (namely the first block).
Whitespace only in CmmNode