base: Drop obsolete/redundant `__GLASGOW_HASKELL__` checks

Since 527bcc41630918977c7 we require GHC >=7.6 for bootstrapping anyway.
This also allows to avoid the CPP-processing overhead for these two modules.
Move ($!) from Prelude into GHC.Base

I don't see any reason why this needs to be in Prelude, where it makes
life harder to avoid import cycles involving Prelude. Ideally, the
`Prelude` module should only re-export entities from other modules, and
not define anything on its own.

So this moves `($!)` close to the definition of its `($)` cousin.
Follow-up to b53c95fe621d3a66a82e6dad383e1c0c08f3871e

Forgot to fix-up the `haskell2010` and `haskell98` submodules in the previous
commit
Fixup test-case broken by Follow-up to b53c95fe621
Move docstring of `seq` to primops.txt.pp

The documentation for `seq` was recently augmented via #9390 &
cbfa107604f4cbfaf02bd633c1faa6ecb90c6dd7. However, it doesn't show
up in the Haddock generated docs because `#ifdef __HADDOCK__` doesn't
work as expected.  Also, it's easier to just fix the problem at the
origin (which in this is case is the primops.txt.pp file).

The benefit/downside of this is that now the extended documentation
shows up everywhere `seq` is re-exported directly.
Detabify primops.txt.pp
Update haskell2010 submodule

...to kill "Kill CPP conditionals for HUGS and old GHCs"
Update libffi-tarballs submodule to libffi 3.1 (re #8701)
Tweak perf-numbers for T1969 and T4801

Right now, Phab's buildbot complains about

  Unexpected failures:
    perf/compiler T1969 [stat too good] (normal)
    perf/compiler T4801 [stat not good enough] (normal)

However, on my workstation, those tests don't fail (c.f. P14).
So this commit tries to blindly tweak those numbers and see if
if Phabricator succeeds to build this code-revision...

Test Plan: Let Harbormaster build it

Reviewers: austin

Subscribers: simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D210
Export `Traversable()` and `Foldable()` from Prelude

This exposes *only* the type-classes w/o any of their methods.
This is the very first step for implementing BPP (see #9586), which
already requires breaking up several import-cycles leading back to `Prelude`.

Ideally, importing `Prelude` should be avoided in most `base` modules,
as `Prelude` does not define any entities, but rather re-exports
existing ones.

Test Plan: validate passes

Reviewers: ekmett, austin

Reviewed By: ekmett, austin

Subscribers: simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D209

GHC Trac Issues: #9586
base: Remove bunk default impl of (>>=)

Without 'join' as a part of Monad, this default implementation is bogus,
and is a leftover from d94de87252d0fe2ae9.

Signed-off-by: Austin Seipp <austin@well-typed.com>
base: Add some notes about the default impl of '(>>)'

See Note [Recursive bindings for Applicative/Monad]. This documents the
tricky little details that kept me occupied for so long with this patch,
and why exactly we deviate from the original proposal.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Don't offer hidden modules for autocomplete.

It was annoying to test GHCi directly, so I added a ghc-api unit test
of the function instead.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Declare official GitHub home of libraries/filepath

Effective immediately, pushing to libraries/filepath requires
pushing to ssh://git@github.com/haskell/filepath.git.
Mark T8639_api/T8628 as PHONY

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Update config.{guess,sub} to GNU automake 1.14.1

The new versions should work better under MSYS2

A few submodules' `config.{guess,sub}` files were updated as well

With this commit, all config.{guess,sub} files in the GHC tree have the md5sums

    0fb81517303511f05a01b14f41cec2cf  config.guess
    d2a165dceaa5ac1edba3c512f6ca7bd1  config.sub

This addresses #9597
Follow-up to 72d6d0c2704ee6d9 updating submodules for real
haskeline: update submodule to fix Windows breakage

Signed-off-by: Austin Seipp <austin@well-typed.com>
Add special stdout for hClose002 on x64 Solaris

Summary:
This is identical to the x86 output from bug #4290,
and fixes the hClose002 test when running under
x86_64-unknown-solaris2.

Test Plan: Re-run 'make TEST=hClose002' under x64 Solaris.

Reviewers: ezyang, austin

Reviewed By: ezyang, austin

Subscribers: simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D205
Find the target gcc when cross-compiling

Summary:
"./configure --target=TARGET" was broken; it would use the host gcc.
(So you had to explicitly specify "--with-gcc=TARGET-gcc" also,
as a workaround.)

This was broken by commit fc4856f9e811d9a23ae9212f43a09ddf5ef12b26
for #8148. A comment claimed that FP_ARG_WITH_PATH_GNU_PROG_OPTIONAL
was the same as FP_ARG_WITH_PATH_GNU_PROG except for not raising
an error when the program isn't found; but that wasn't true --
the former didn't prepend the target name when cross-compiling.

We actually need three versions of FP_ARG_WITH_PATH_GNU_PROG since
the LLVM tools are usually not prefixed with the target name even
when cross-compiling. So I generalized the logic in a single macro.

Test Plan:
Built with "./configure --target=i386-unknown-linux"
and BuildFlavour=quick, successfully

Reviewers: ezyang, austin

Reviewed By: ezyang, austin

Subscribers: simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D204