Reorder GHC.List; fix performance regressions

Rearrange some oddly placed code.

Modify `take` to make the fold unconditionally strict in the passed
`Int`. This clears up the `fft2` regression.
This fixes #9740. Differential Revision: https://phabricator.haskell.org/D390
Update Haddock submodule for collapsible section support

This also updates a few occurences of recently added "Example"
headings to make use of this new feature for testing
Really fix fft2 regression. #9740

Rewrite `take` more aggressively for fusion. Add some more explicit
strictness to `unsafeTake` and `unsafeDrop` that seems to help code size and
allocation just a drop in some nofib tests. They were not previously
strict in their numerical arguments, but always called in contexts where
those had been forced; it didn't make a difference in simple test cases,
but made a small difference for nofib. See #9740.

Differential Revision: https://phabricator.haskell.org/D394
Fixed unused variable warning on mingw32/i686 in rts/Linker.c

The warning was breaking validate.sh runs due to -Wall.

Reviewers: austin

Reviewed By: austin

Subscribers: #ghc_windows_task_force, thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D400
hsc2hs: Update submodule

This makes sure the --cross-compile mode can handle negative enum
values.

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

Signed-off-by: Austin Seipp <austin@well-typed.com>
Convert GHCi sources from .lhs to .hs

Summary: Signed-off-by: Rodlogic <admin@rodlogic.net>

Test Plan: Does it compile?

Reviewers: hvr, austin

Reviewed By: austin

Subscribers: thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D319
Fix #9236 Error on read from closed handle

Summary:
Fixes #9236. My testing indicates that this does *not* lead to problems with
broken pipes and such, but further testing is required. It found
a bug in haddock; I've submitted a pull request upstream.

Reviewers: ekmett, austin

Reviewed By: ekmett, austin

Subscribers: rwbarton, thomie, carter, simonmar

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

GHC Trac Issues: #9236
Use snwprintf instead of swprintf in rts/Linker.c.

Summary:
swprintf has different signatures in mingw32, where it does not include the
buffer size, and in mingw-w64, where it does. That of course breaks the code
as mingw-w64 treats the pointer to the format string as a size_t.

snwprintf is available in both environments and is consistent, so use that
instead.

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: #ghc_windows_task_force, thomie, carter, simonmar

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

GHC Trac Issues: #9726
Avoid setting -Werror=unused-but-set-variable on Windows.

Summary:
The option is not needed (it was only intended to override Debian's default)
and causes an error if the host ghc's mingw is too old (which the script
does not detect).

Fixes T9727

Reviewers: austin

Reviewed By: austin

Subscribers: thomie, carter, simonmar

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

GHC Trac Issues: #9727
Extra CRs are now filtered out from the source file for :list.

Fixes #9367.

Reviewers: austin

Reviewed By: austin

Subscribers: #ghc_windows_task_force, thomie, carter, simonmar

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

GHC Trac Issues: #9367
Updated stale ghcpkg05.stderr-mingw32.

Looks like the mingw32-specific test was accidentally forgotten after
changing the code and the expected outputs for non OS-specific tests.

Reviewers: austin

Reviewed By: austin

Subscribers: #ghc_windows_task_force, thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D383
Do not use a relative path for echo in tests/ghci/prog013.

Trying to run /usr/bin/echo fails when running tests on Windows,
but using plain "echo" works fine. I think it's fine to assume
the environment is not doing anything particularly funny...

Summary:
...with
echo...

Reviewers: austin

Reviewed By: austin

Subscribers: thomie, carter, simonmar, #ghc_windows_task_force

Differential Revision: https://phabricator.haskell.org/D384
Add __GLASGOW_HASKELL_TH__=YES/NO to CPP definitions

Test Plan: None really.

Reviewers: austin

Reviewed By: austin

Subscribers: thomie, carter, simonmar

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

GHC Trac Issues: #9734
Added mingw32-specific expected stdout files for tests/driver/sigof{01,02,03}

Reviewers: austin

Reviewed By: austin

Subscribers: thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D398
Put one-Shot info in the interface
Add GHC.Prim.oneShot

to allow the programer to explictitly set the oneShot flag. This helps
with #7994 and will be used in left folds. Also see
https://ghc.haskell.org/trac/ghc/wiki/OneShot
Use oneShot in the definition of foldl etc.

This increases the chance of good code after fusing a left fold. See
ticket #7994 and the new Note [Left folds via right fold]
Add oneShot demo file

(if you remove {-# GHC_OPTIONS -fno-call-arity #-} then both functions
have the same Core).

Obviously, this patch is not meant to be merged.