<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Ömer Sinan Ağacan pushed to branch wip/gc/aligned-block-allocation
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/80dfcee61e3bfb67f131cd674f96467e16c0f9d8">80dfcee6</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-05T08:09:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Be more careful when naming TyCon binders

This patch fixes two rather gnarly test cases:
  * Trac #16342 (mutual recursion)
    See Note [Tricky scoping in generaliseTcTyCon]

  * Trac #16221 (shadowing)
    See Note [Unification variables need fresh Names]

The main changes are:

* Substantial reworking of TcTyClsDecls.generaliseTcTyCon
  This is the big change, and involves the rather tricky
  function TcHsSyn.zonkRecTyVarBndrs.

  See Note [Inferring kinds for type declarations] and
  Note [Tricky scoping in generaliseTcTyCon] for the details.

* bindExplicitTKBndrs_Tv and bindImplicitTKBndrs_Tv both now
  allocate /freshly-named/ unification variables. Indeed, more
  generally, unification variables are always fresh; see
  Note [Unification variables need fresh Names] in TcMType

* Clarify the role of tcTyConScopedTyVars.
  See Note [Scoped tyvars in a TcTyCon] in TyCon

As usual, this dragged in some more refactoring:

* Renamed TcMType.zonkTyCoVarBndr to zonkAndSkolemise

* I renamed checkValidTelescope to checkTyConTelescope;
  it's only used on TyCons, and indeed takes a TyCon as argument.

* I folded the slightly-mysterious reportFloatingKvs into
  checkTyConTelescope. (Previously all its calls immediately
  followed a call to checkTyConTelescope.)  It makes much more
  sense there.

* I inlined some called-once functions to simplify
  checkValidTyFamEqn. It's less spaghetti-like now.

* This patch also fixes Trac #16251.  I'm not quite sure why #16251
  went wrong in the first place, nor how this patch fixes it, but
  hey, it's good, and life is short.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6c4e45b043b0577d64e5addf5eaf6503e4a10b23">6c4e45b0</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-05T08:15:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test Runner: don't show missing baseline warning for performance tests with expected changes on the current commit.

Trac #16359
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646b6dfbe125aa756a935e840979ba11b4a882c0">646b6dfb</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-05T08:21:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix map/coerce rule for newtypes with wrappers

This addresses Trac #16208 by marking newtype wrapper
unfoldings as compulsory.

Furthermore, we can remove the special case for newtypes
in exprIsConApp_maybe (introduced in 7833cf407d1f).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/37f257afcd6a52cf4d76c60d766b1aeb520b9f05">37f257af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-06T03:22:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rip out object splitting

The splitter is an evil Perl script that processes assembler code.
Its job can be done better by the linker's --gc-sections flag. GHC
passes this flag to the linker whenever -split-sections is passed on
the command line.

This is based on @DemiMarie's D2768.

Fixes Trac #11315
Fixes Trac #9832
Fixes Trac #8964
Fixes Trac #8685
Fixes Trac #8629
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23342e1f06204a4853a6b191bf0960d2c2baf457">23342e1f</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T03:28:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Printer: Introduce a few more printing utilities

These include printLargeAndPinnedObjects, printWeakLists, and
printStaticObjects. These are generally useful things to have.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c19a401db45148873a7b6ba575384d2e77807647">c19a401d</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T03:28:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Printer: Print forwarding pointers
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db039a4a10fc8fa9e03e6781d1c0dc33151beda6">db039a4a</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-06T03:40:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for #15918

The test case in #15918 no longer triggers an `ASSERT` failure on
GHC HEAD, likely due to commit
682783828275cca5fd8bf5be5b52054c75e0e22c (`Make a smart mkAppTyM`).
This patch adds a regression test for #15918 to finally put it to
rest.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ff77b9894eecf51fa619ed2266ca196e296cd1e">2ff77b98</a></strong>
<div>
<span>by P.C. Shyamshankar</span>
<i>at 2019-03-06T14:17:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle absolute paths to build roots in Hadrian.

Fixes #16187.

This patch fixes various path concatenation issues to allow functioning
builds with hadrian when the build root location is specified with an
absolute path.

Remarks:

- The path concatenation operator (-/-) now handles absolute second operands
  appropriately. Its behavior should match that of POSIX (</>) in this
  regard.

- The `getDirectoryFiles*` family of functions only searches for matches
  under the directory tree rooted by its first argument; all of the
  results are also relative to this root. If the first argument is the
  empty string, the current working directory is used.

  This patch passes the appropriate directory (almost always either `top`
  or `root`), and subsequently attaches that directory prefix so that
  the paths refer to the appropriate files.

- Windows `tar` does not like colons (':') in paths to archive files, it
  tries to resolve them as remote paths. The `--force-local` option
  remedies this, and is applied on windows builds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5aab1d9ca927a058135ca9a08c10ea3474cbe251">5aab1d9c</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T20:53:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Unglobalize dead_weak_ptr_list and resurrected_threads

In the concurrent nonmoving collector we will need the ability to call
`traverseWeakPtrList` concurrently with minor generation collections.
This global state stands in the way of this. However, refactoring it
away is straightforward since this list only persists the length of a
single GC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a4944d8d98770b869f6aa5fb667877c56c3f8825">a4944d8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-06T20:53:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix it
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78dd04f9126dc5df966070b8db4b39a517a9d99f">78dd04f9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-06T21:05:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16385 by appending _maybe to a use of lookupGlobalOcc

`instance forall c. c` claimed that `c` was out of scope because the
renamer was invoking `lookupGlobalOcc` on `c` (in
`RnNames.getLocalNonValBinders`) without binding `c` first. To avoid
this, this patch changes GHC to invoke `lookupGlobalOcc_maybe` on `c`
instead, and if that returns `Nothing`, then bail out, resulting
in a better error message.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3caeb443b2bc2c2ef6f43ce59abfc1cfe3ba579f">3caeb443</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-03-06T21:11:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move reifyGHCi function into GhciMonad type class

This was the suggested change in !176 but missed the batch merge (!263).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4ca271d1880a6f4c5f49869de7f1920a2073adb6">4ca271d1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Introduce fragile modifier

Now since we have been a bit more stringent in testsuite cleanliness we
have been marking a lot of tests as fragile using the `skip` modifier.
However, this unfortunately means that we lose the association with the
ticket number documenting the fragility.

Here we introduce `fragile` and `fragile_for` to retain this
information.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/910185a3eb5fd2148e42d39f6374ab03d098b682">910185a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark heapprof001 as fragile on i386
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a65bcbe7db4f39d18012ce28cb99bed2ce18e7f5">a65bcbe7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Use fragile modifier for more tests
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f624dc15d196507c011079eaad9a31acef87a24c">f624dc15</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't allow i386-deb9 to fail

Also account for testsuite metric drift.

Metric Increase:
    haddock.Cabal
    haddock.base
    T14683
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07f378cee37338c5f2655b3a7e46dfef3f1c5cc1">07f378ce</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-07T02:54:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add tests for Trac #16221 and #16342
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/25c3dd39f7d446f66b5c967be81f80cd7facb509">25c3dd39</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-07T02:54:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test Trac #16263
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7a68254a7284db5bf8f1fa82aba4a6825d8f050a">7a68254a</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-03-07T19:01:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16392: revertCAFs in external interpreter when necessary

We revert CAFs when loading/adding modules in ghci (presumably to refresh
execution states and to allow for object code to be unloaded from the runtime).
However, with `-fexternal-interpreter` enabled, we are only doing it in the
ghci process instead of the external interpreter process where the cafs are
allocated and computed. This makes sure that revertCAFs is done in the
appropriate process no matter if that flag is present or not.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/068b7e983f4a0b35f453aa5e609998efd0c3f334">068b7e98</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-07T19:07:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16391 by using occCheckExpand in TcValidity

The type-variables-escaping-their-scope-via-kinds check in
`TcValidity` was failing to properly expand type synonyms, which led
to #16391. This is easily fixed by using `occCheckExpand` before
performing the validity check.

Along the way, I refactored this check out into its own function,
and sprinkled references to Notes to better explain all of the moving
parts. Many thanks to @simonpj for the suggestions.

Bumps the haddock submodule.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1675d40afe07b9c414eaa37d85819f37f8420118">1675d40a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-03-08T01:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Always do the worker/wrapper split for NOINLINEs

Trac #10069 revealed that small NOINLINE functions didn't get split
into worker and wrapper. This was due to `certainlyWillInline`
saying that any unfoldings with a guidance of `UnfWhen` inline
unconditionally. That isn't the case for NOINLINE functions, so we
catch this case earlier now.

Nofib results:

--------------------------------------------------------------------------------
        Program         Allocs    Instrs
--------------------------------------------------------------------------------
 fannkuch-redux          -0.3%      0.0%
             gg          +0.0%     +0.1%
       maillist          -0.2%     -0.2%
        minimax           0.0%     -0.8%
--------------------------------------------------------------------------------
            Min          -0.3%     -0.8%
            Max          +0.0%     +0.1%
 Geometric Mean          -0.0%     -0.0%

Fixes #10069.

-------------------------
Metric Increase:
    T9233
-------------------------
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/48927a9a1e6b455bdf9dc4d47695795f10fc1988">48927a9a</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-08T10:50:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: various improvements around the 'test' rule

- introduce a -k/--keep-test-files flag to prevent cleanup
- add -dstg-lint to the options that are always passed to tests
- infer library ways from the compiler to be tested instead of getting them
  from the flavour (like make)
- likewise for figuring out whether the compiler to be tested is "debugged"
- specify config.exeext
- correctly specify config.in_tree_compiler, instead of always passing True
- fix formatting of how we pass a few test options
- add (potential) extensions to check-* program names
- build check-* programs with the compiler to be tested
- set TEST_HC_OPTS_INTERACTIVE and PYTHON env vars when running tests
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5d7441432e4c00a463f645248b354707d7d8335e">5d744143</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-08T10:56:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Drop remaining symlink traversal code from build scripts

This partly resolves #16325 (https://ghc.haskell.org/trac/ghc/ticket/16325).

As previously discussed in https://github.com/snowleopard/hadrian/issues/667,
we do not need the symlink traversal code in build scripts. However, it
appears we forgot to delete this code from our Stack-based build scripts,
which led to placing all build artefacts in an unexpected location when
using Hadrian in combination with symlink trees. This commit fixes this.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/826282540492d64c59cd3ba9df5fd0b2e92f76ef">82628254</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-03-08T11:02:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Testsuite: use 'fragile' instead of 'skip' for T3424, T14697

Also, replace some tabs with spaces to avoid a "mixed indent" warning that vim
gives me.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5be7ad7861c8d39f60b7101fd8d8e816ff50353a">5be7ad78</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-08T11:08:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use captureTopConstraints in TcRnDriver calls

Trac #16376 showed the danger of failing to report an error
that exists only in the unsolved constraints, if an exception
is raised (via failM).

Well, the commit 5c1f268e (Fail fast in solveLocalEqualities)
did just that -- i.e. it found errors in the constraints, and
called failM to avoid a misleading cascade.

So we need to be sure to call captureTopConstraints to report
those insolubles.  This was wrong in TcRnDriver.tcRnExpr and
in TcRnDriver.tcRnType.

As a result the error messages from test T13466 improved slightly,
a happy outcome.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/224a6b864c6aa0d851fcbf79469e5702b1116dbc">224a6b86</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-03-08T19:05:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TH: support raw bytes literals (#14741)

GHC represents String literals as ByteString internally for efficiency
reasons. However, until now it wasn't possible to efficiently create
large string literals with TH (e.g. to embed a file in a binary, cf #14741):
TH code had to unpack the bytes into a [Word8] that GHC then had to re-pack
into a ByteString.

This patch adds the possibility to efficiently create a "string" literal
from raw bytes. We get the following compile times for different sizes
of TH created literals:

|| Size || Before || After  || Gain ||
|| 30K  || 2.307s || 2.299  || 0%   ||
|| 3M   || 3.073s || 2.400s || 21%  ||
|| 30M  || 8.517s || 3.390s || 60%  ||

Ticket #14741 can be fixed if the original code uses this new TH feature.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2762f94dc27cc065dded7755f99c66cba26683dd">2762f94d</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-03-08T19:11:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #13839: GHCi warnings do not respect the default module header
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1f5cc9dc8aeeafa439d6d12c3c4565ada524b926">1f5cc9dc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-09T07:07:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop inferring over-polymorphic kinds

Before this patch GHC was trying to be too clever
(Trac #16344); it succeeded in kind-checking this
polymorphic-recursive declaration

    data T ka (a::ka) b
      = MkT (T Type           Int   Bool)
            (T (Type -> Type) Maybe Bool)

As Note [No polymorphic recursion] discusses, the "solution" was
horribly fragile.  So this patch deletes the key lines in
TcHsType, and a wodge of supporting stuff in the renamer.

There were two regressions, both the same: a closed type family
decl like this (T12785b) does not have a CUSK:
  type family Payload (n :: Peano) (s :: HTree n x) where
    Payload Z (Point a) = a
    Payload (S n) (a `Branch` stru) = a

To kind-check the equations we need a dependent kind for
Payload, and we don't get that any more.  Solution: make it
a CUSK by giving the result kind -- probably a good thing anyway.

The other case (T12442) was very similar: a close type family
declaration without a CUSK.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cfbedf1780002f4f76aa9c6c754818a436888e9f">cfbedf17</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-03-09T07:14:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Write .o files atomically. See #14533

This issue was reproduced with, and the fix confirmed with,
the `hatrace` tool for syscall-based fault injection:

    https://github.com/nh2/hatrace

The concrete test case for GHC is at

    https://github.com/nh2/hatrace/blob/e23d35a2d2c79e8bf49e9e2266b3ff7094267f29/test/HatraceSpec.hs#L185

A previous, nondeterministic reproducer for the issue was provided by
Alexey Kuleshevich in

    https://github.com/lehins/exec-kill-loop

Signed-off-by: Niklas Hambüchen <niklas@fpcomplete.com>
Reviewed-by: Alexey Kuleshevich <alexey@fpcomplete.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/08ad38a93cb7037bbafcd3e12b27c876d714c5c0">08ad38a9</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-03-09T07:14:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Refactor: extract `withAtomicRename`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e76ee67510be951cea13636a763daae53108197c">e76ee675</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:30:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Factor out large bitmap walking

This will be needed by the mark phase of the non-moving collector
so let's factor it out.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e3e537e419ba8d02dac306d596fba3c1029f123">6e3e537e</a></strong>
<div>
<span>by Edward Z. Yang</span>
<i>at 2019-03-09T12:36:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make bkpcabal01 test compatible with new ordering requirements.

Previously, our test did something like this:

1. Typecheck p
2. Typecheck q (which made use of an instantiated p)
3. Build instantiated p
4. Build instantiated q

Cabal previously permitted this, under the reasoning that during
typechecking there's no harm in using the instantiated p even if we
haven't build it yet; we'll just instantiate it on the fly with p.

However, this is not true!  If q makes use of a Template Haskell
splice from p, we absolutely must have built the instantiated p
before we typecheck q, since this typechecking will need to
run some splices.  Cabal now complains that you haven't done
it correctly, which we indeed have not!

Reordering so that we do this:

1. Typecheck p
3. Build instantiated p
2. Typecheck q (which made use of an instantiated p)
4. Build instantiated q

Fixes the problem.  If Cabal had managed the ordering itself, it would
have gotten it right.

Signed-off-by: Edward Z. Yang <ezyang@fb.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6b2f09916e0c8c5f37c9fbe08eb076476501c8d6">6b2f0991</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-03-09T12:42:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">NCG: correctly escape path strings on Windows (#16389)

GHC native code generator generates .incbin and .file directives. We
need to escape those strings correctly on Windows (see #16389).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b760269c5914e128c07c66bacdbe86168003e82e">b760269c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rip out perl dependency

The object splitter was the last major user of perl. There remain a few
uses in nofib but we can just rely on the system's perl for this since
it's not critical to the build.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0cd989577a8b8d2666741fcac4fd3032ae212b80">0cd98957</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop utils/count_lines

This doesn't appear to be used anywhere in the build system and it
relies on perl. Drop it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bcb6769c83744c211d3ddddbc7fd9dec88452c88">bcb6769c</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-03-11T22:11:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ignore more version numbers in the testsuite

Prevents some tests from failing just due to mismatched version numbers.

These version numbers shouldn't cause tests to fail, especially since
we *expect* them to be regularly incremented. The motivation for this
particular set of changes came from the changes that came along with
the `base` version bump in 8f19ecc95fbaf2cc977531d721085d8441dc09b7.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/60b03adea8cc55ff65fbf6458487c3baf12bb0a1">60b03ade</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-11T22:18:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change the warning in substTy back to an assertion

We'd like to enforce the substitution invariant (Trac #11371).
In a492af06d326453 the assertion was downgraded to a warning;
I'm restoring the assertion and making the calls that
don't maintain the invariant as unchecked.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2f453414c5b1b27b6a84a3b5c7cd1bb5449f1f5d">2f453414</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-11T22:18:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a test for Trac #13951

It no longer gives a warning.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b232231065f5e40ae3a6bd515bb42330cf484fcc">b2322310</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Allow passing CABFLAGS into build.cabal.sh

Setting `CABFLAGS=args` will pass the additional arguments to cabal
when it is invoked.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/61264556d5c817b55332a199b03fa1f559e92ee2">61264556</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Make libsuf and distDir stage aware

The version suffix needs to be the version of the stage 0 compiler
when building shared libraries with the stage 0 compiler.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/705fa21d674a5a799712346e01033db98b16e71d">705fa21d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Make makeRelativeNoSysLink total

makeRelativeNoSysLink would previously crash for no reason if the first
argument as `./` due to the call to `head`. This refactoring keeps the
behaviour the same but doesn't crash in this corner case.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4cf2160afe0e08fe29576895a1eced863d3a521d">4cf2160a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Fix rpath so shared objects work after being copied

After being copied all the shared objects end up in the same directory.
Therefore the correct rpath is `$ORIGIN` rather than the computed
path which is relative to the directory where it is built.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d7dd0285bbc364f89d4d97928674f7ea73ed2c8">2d7dd028</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Add ./hadrian/ghci.sh script for fast development feedback

Running the `./hadrian/ghci` target will load the main compiler into
a ghci session. This is intended for fast development feedback, modules are only
typechecked so it isn't possible to run any functions in the repl.

You can also use this target with `ghcid`.

The first time this command is run hadrian will need to compile a few dependencies
which will take 1-2 minutes. Loading GHC into GHCi itself takes about 30 seconds.

Internally this works by calling a new hadrian target called `tool-args`.
This target prints out the package and include flags which are necessary
to load files into ghci. The same target is intended to be used by other
tooling which uses the GHC API in order to set up the correct GHC API
session. For example, using this target it is also possible to use HIE
when developing on GHC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb684e650166bc2f95d53e1582813e6f2ab31121">bb684e65</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove training whitespace
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/72c455a4a1d2dbeeed9c9d4e80cf333bdf98fcf2">72c455a4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Add ghc-in-ghci build job

This is a separate build job to the other hadrian jobs as it only takes
about 2-3 minutes to run from cold. The CI tests that the
`./hadrian/ghci` script loads `ghc/Main.hs` successfully.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5165378d87602a8ce24776d220039fc05075d31f">5165378d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove trailing whitespace
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/50249a9f652ae3440e9462fdc9914edc924091f1">50249a9f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-12T13:13:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use transSuperClasses in TcErrors

Code in TcErrors was recursively using immSuperClasses,
which loops in the presence of UndecidableSuperClasses.

Better to use transSuperClasses instead, which has a loop-breaker
mechanism built in.

Fixes issue #16414.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/62db9295ba79d5229585fb08530fff944179c609">62db9295</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-12T13:19:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove duplicate functions in StgCmmUtils, use functions from CgUtils

Also remove unused arg from get_Regtable_addr_from_offset
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4db9bdd91549b4eada5324cd7452e7e74ada28f5">4db9bdd9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-12T13:25:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for #16347

Commit 1f5cc9dc8aeeafa439d6d12c3c4565ada524b926 ended up
fixing #16347. Let's add a regression test to ensure that it stays
fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/02ddf947f40837c3aa0a196a4b2faf254764cfc3">02ddf947</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:42:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Update ci-images commit</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a0cab873b592290b2b389f88069ee03a89f32291">a0cab873</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:44:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert: Update ci-images commit</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23fc615679072a6fa433460a92f597af2ae388b2">23fc6156</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-13T19:03:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark heapprof001 as fragile on all platforms

See #15382.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb17c2da1774a2565946f43261140f2a8b328840">cb17c2da</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-13T19:10:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: build (and retrieve) binary distributions in CI

With all the recent fixes to the binary-dist rule in Hadrian, we can now run
that rule in CI and keep the bindists around in gitlab as artifacts, just like
we do for the make CI jobs.

To get 'autoreconf' to work in the Windows CI, we have to run it through the
shell interpreter, so this commit does that along the way.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/36546a43e490ea6f989e6cad369d1a251c94a42b">36546a43</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-13T19:16:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16411 by making dataConCannotMatch aware of (~~)

The `dataConCannotMatch` function (which powers the
`-Wpartial-fields` warning, among other things) had special reasoning
for explicit equality constraints of the form `a ~ b`, but it did
not extend that reasoning to `a ~~ b` constraints, leading to #16411.
Easily fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10a971208dcd537742fe4e15b2713eb0f3052a3a">10a97120</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-14T16:20:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add testcase for #16394
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8162eab27101cddb0c822347300640f07110379a">8162eab2</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-15T13:59:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove the GHCi debugger's panicking isUnliftedType check

The GHCi debugger has never been that robust in the face of
higher-rank types, or even types that are _interally_ higher-rank,
such as the types of many class methods (e.g., `fmap`). In GHC 8.2,
however, things became even worse, as the debugger would start to
_panic_ when a user tries passing the name of a higher-rank thing
to `:print`. This all ties back to a strange `isUnliftedType` check
in `Debugger` that was mysteriously added 11 years ago
(in commit 4d71f5ee6dbbfedb4a55767e4375f4c0aadf70bb) with no
explanation whatsoever.

After some experimentation, no one is quite sure what this
`isUnliftedType` check is actually accomplishing. The test suite
still passes if it's removed, and I am unable to observe any
differences in debugger before even with data types that _do_ have
fields of unlifted types (e.g., `data T = MkT Int#`). Given that
this is actively causing problems (see #14828), the prudent thing
to do seems to be just removing this `isUnliftedType` check, and
waiting to see if anyone shouts about it. This patch accomplishes
just that.

Note that this patch fix the underlying issues behind #14828, as the
debugger will still print unhelpful info if you try this:

```
λ> f :: (forall a. a -> a) -> b -> b; f g x = g x
λ> :print f
f = (_t1::t1)
```

But fixing this will require much more work, so let's start with the
simple stuff for now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d10e23687d166ea6656fe0caf9c6eb2642a61b7b">d10e2368</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:05:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: remove unneeded imports.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4df757729dab0a5be07f111843ed3ca9de6c3771">4df75772</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:05:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: remove unneeded rpaths.

Issue #12770
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/afc80730fd235f5c5b2d0b9fc5a10c16ef9865f6">afc80730</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:11:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Git ignore .hadrian_ghci (generated by the ./hadrian/ghci.sh)

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/610ec224a49e092c802a336570fd9613ea15ef3c">610ec224</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-15T14:17:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Trac ticket URLs to point to GitLab

This moves all URL references to Trac tickets to their corresponding
GitLab counterparts.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97032ed9b2594c8939cab776ff871051d6dba30a">97032ed9</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-15T14:24:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Report better suggestion for GADT data constructor

This addresses issue #16427. An easy fix.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/83e09d3c2b2e84b85fa25e271eff2747fc783f09">83e09d3c</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-03-15T14:30:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PPC NCG: Use liveness information in CmmCall

We make liveness information for global registers
available on `JMP` and `BCTR`, which were the last instructions
missing. With complete liveness information we do not need to
reserve global registers in `freeReg` anymore. Moreover we
assign R9 and R10 to callee saves registers.

Cleanup by removing `Reg_Su`, which was unused, from `freeReg`
and removing unused register definitions.

The calculation of the number of floating point registers is too
conservative. Just follow X86 and specify the constants directly.

Overall on PowerPC this results in 0.3 % smaller code size in nofib
while runtime is slightly better in some tests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57201bebaeb15c5635ac5ea153b0141b55670199">57201beb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-15T14:36:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add flavours link</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4927117cd6166a97455d788dbf7433c95441b57a">4927117c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-16T12:08:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve error recovery in the typechecker

Issue #16418 showed that we were carrying on too eagerly after a bogus
type signature was identified (a bad telescope in fact), leading to a
subsequent crash.

This led me in to a maze of twisty little passages in the typechecker's
error recovery, and I ended up doing some refactoring in TcRnMonad.
Some specfifics

* TcRnMonad.try_m is now called attemptM.

* I switched the order of the result pair in tryTc,
  to make it consistent with other similar functions.

* The actual exception used in the Tc monad is irrelevant so,
  to avoid polluting type signatures, I made tcTryM, a simple
  wrapper around tryM, and used it.

The more important changes are in

* TcSimplify.captureTopConstraints, where we should have been calling
  simplifyTop rather than reportUnsolved, so that levity defaulting
  takes place properly.

* TcUnify.emitResidualTvConstraint, where we need to set the correct
  status for a new implication constraint.  (Previously we ended up
  with an Insoluble constraint wrapped in an Unsolved implication,
  which meant that insolubleWC gave the wrong answer.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/600a1ac3829c2b216d2cc23a1e8256841ffe6466">600a1ac3</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-16T12:08:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add location to the extra-constraints wildcard

The extra-constraints wildcard had lost its location
(issue #16431).

Happily this is easy to fix.  Lots of error improvements.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1c1b63d63efe8b0f789aa7d5b87cfac3edd213eb">1c1b63d6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:13:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Disable atomic renaming on Windows

As discussed in #16450, this feature regresses CI on Windows, causing
non-deterministic failures due to missing files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6764da436ae039645df2af1c1d53f7cd45a9638b">6764da43</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:16:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Explicitly set bindist tarball name
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ad79ccd9c86ae2eccb625ab7000cf899f23ff840">ad79ccd9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:17:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Generate documentation tarball
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3f2291e47b8e00f1312c9be31484ceddd1289212">3f2291e4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:17:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Generate source tarballs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb61371e3260e07be724a04b72a935133f66b514">cb61371e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-17T09:05:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-heap: Introduce closureSize

This function allows the user to compute the (non-transitive) size of a
heap object in words. The "closure" in the name is admittedly confusing
but we are stuck with this nomenclature at this point.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c01d5af31c8feb634fc3dffc84e6e7ece61ba190">c01d5af3</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-03-18T02:23:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extract out use of UnboxedTuples from GHCi.Leak

See #13101 + #15454 for motivation.  This change reduces the number of
modules that need to be compiled to object code when loading GHC into
GHCi.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6113d0d4540af7853c71e9f42a41c3b0bab386fd">6113d0d4</a></strong>
<div>
<span>by Radosław Rowicki</span>
<i>at 2019-03-18T02:29:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update bug tracker link to point to gitlab instead of deprecated trac</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b8326897251ebdbb896da2b28ad27a48ee8f2582">b8326897</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-18T03:16:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Always build fedora27

This ends up being much easier to use than Debian 9 under NixOS.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/acf2129d49989071e296634711e3f4d9ebed6ee0">acf2129d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-18T03:17:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Implement head.hackage jobs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71648c35ad243396433d017da9ce18bea603d1ce">71648c35</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:04:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Implement support for i386/Windows bindists
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d94ca74f2c083c86be1799bf1534db078ab611a6">d94ca74f</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-03-20T03:10:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">err: clean up error handler
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/398f2cbc6af6fcb6135ba2d56c154869bea071a0">398f2cbc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:16:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump Cabal submodule to 3.0

Metric Increase:
    haddock.Cabal
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/89a201e88a9313ecff4f5659c38e40136cfc0b76">89a201e8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-03-20T03:22:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Update Wiki URLs to point to GitLab

The user's guide uses the `ghc-wiki` macro, and substitution rules
are complicated. So I manually edited `.rst` files without sed.

I changed `Commentary/Latedmd` only to a different page.
It is more appropriate as an example.

[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98ff1a5696dd10233229c790eb9642a26e13a9a3">98ff1a56</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace nOfThem by replicate
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6a47414f0cc6d538fbec7ca537ad36fbcc1a2480">6a47414f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typos
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e26e60dd21c235678447ee903afbf15228e40de">1e26e60d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify monadic code
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c045bd7cfaef2f4b6753e5a19637a658dce9e58d">c045bd7c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove deprecated reinitializeGlobals
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6d19ad72f6a7283dfbfa6facb58063c0ff777af8">6d19ad72</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:34:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bump docker images

To install lndir and un-break the source distribution job.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c7a84a6067311c204f6fa459e5f59b0958863118">c7a84a60</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-20T03:34:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update .gitlab-ci.yml</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db1362375cb960529cd068dd6cacd9ba0cf3977b">db136237</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16219 and cabal09 as broken on Windows

See #16386.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7cd8e330a2c82fe048e501671b32cd2ec5b5c0d9">7cd8e330</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix expected output on Windows for various ghci tests

Broke as -Wimplicit-kind-vars no longer exists. Specifically ghci024,
ghci057 and T9293.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23b639fd1b7c558383792c48bd35f457b01b2515">23b639fd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T5836 as broken on Windows

See #16387.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a1bda08d6cd1fe1cb8d77c552e33f5d48936aa8c">a1bda08d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T15904 as broken on Windows

It seems to look for some sort of manifest file. See #16388.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b7f5d5526ac0989fcbe0cb1aff00aaee3e2690bb">b7f5d552</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16190 as broken on Windows

There seems to be some filepath funniness due to TH embedding going on
here. See #16389.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a0c31f78647efc1f9aba6c7ac52f64237143b539">a0c31f78</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/plugins: Add multi_cpu_race modifier on Windows

A few tests previously failed with various failure modes. For instance,
  `plugin-recomp-change` fails with:

```
Wrong exit code for plugin-recomp-change()(expected 0 , actual 2 )
Stderr ( plugin-recomp-change ):
Simple Plugin Passes Queried
Got options:
Simple Plugin Pass Run
C://GitLabRunner//builds//8fc0e283//0//ghc//ghc//inplace//mingw//bin/ld.exe: cannot find -lHSplugin-recompilation-0.1-CPeObcGoBuvHdwBnpK9jQq
collect2.exe: error: ld returned 1 exit status
`gcc.exe' failed in phase `Linker'. (Exit code: 1)
make[2]: *** [Makefile:112: plugin-recomp-change] Error 1
*** unexpected failure for plugin-recomp-change(normal)
```

It's unclear whether the ghc-pkg concurrency issue mentioned in all.T is
the culprit but the set of tests that fail overlaps strongly with the
set of tests that lack the `multi_cpu_race` modifier. Let's see if
adding it fixes them.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/88a6e9a4e596d22d1dd8b983a15781183050f51a">88a6e9a4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T10672 as broken

This test, which is only run on Windows, seems to be reliably timing
out.

See #16390.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f4d3aaaf318efa5a476bc35b16d0327e9d0a0b66">f4d3aaaf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/plugins: Increase compile timeout on Windows

I think the linker is routinely eating through the timeout,
leading to many spurious failures.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae382245ea65bf8824db7f4dbab5ade78e6ed9dd">ae382245</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/RtsSymbols: Drop __mingw_vsnwprintf

As described in #16387, this is already defined by mingw and
consequently defining it in the RTS as well leads to multiple definition
errors from the RTS linker at runtime.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f79f93e47e28f662478493f2b651153a09df404e">f79f93e4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't mark cabal09 as broken

It doesn't fail reliably.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d98cb7637a305e31de5e05a1feb9f6f2339f8cc4">d98cb763</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Don't mark T5836 as broken

I believe removing __mingw_vsnwprintf from RtsSymbols fixed #16387.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8c1a27435e990287fa928a71f632007eea23b48a">8c1a2743</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Try again
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3394a7cd27cec64a577ee0a9df887a431ccb3696">3394a7cd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Display observed exit code on failure due to bad exit code
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/368187591a5454e47c4e08dae90d39d2af1fad40">36818759</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjust section placement and relocation logic for Mach-O

1. Place each section on a separate page to ensure required
alignment (wastes lots ot space, needs to be improved).
2. Unwire relocation logic from macho sections (the most fiddly part
is adjusting internal relocations).

Other todos:
0. Add a test for section alignment.
1. Investigate 32bit relocations!
2. Fix memory leak in ZEROPAGE section allocation.
3. Fix creating redundant jump islands for GOT.
4. Investigate more compact section placement.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78c61acf15c66a17df63da60226acff3a2dda585">78c61acf</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use segments for section layout
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7bbfb789913b84660bc743aeffee06e18cbde2f0">7bbfb789</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Address some todos and fixmes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3cdcc0b55de5f7a35dc12430f021a665b0477e95">3cdcc0b5</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a linker test re: section alignment
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb745c84a192c4a1f992649fbda584941f8ec3eb">cb745c84</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing levels to SegmentProt enum
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d950f11eff0a5dc0ad950fbd47e3ee32649d1d62">d950f11e</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Directly test section alignment, fix internal reloc probing length
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3fb10fcfc03d5590579743494450fc8b06b179ad">3fb10fcf</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Gracefully handle error condition in Mach-O relocateSection
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dc713c71540556ee9dcc90cfd8046c98af5d3d78">dc713c71</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T23:58:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Move validate-x86_64-linux-deb9 to full-build stage

The `build` stage is meant to be a minimal smoke test to weed out broken
commits. The `validate-x86_64-linux-deb9` build will generally catch a
subset of issues caught by `validate-x86_64-linux-deb9-debug` so only
the latter should be in `build`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/505c5ab2b9d9d4ac721d1a6fea020e0886c02eff">505c5ab2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T23:58:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Add some descriptions of the stages
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646e3dc20ebe25baae898a6b22895ddd015fc975">646e3dc2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-03-21T00:04:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a bench flavour to Hadrian
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8d18a873c5d7688c6e7d91efab6bb0d6f99393c6">8d18a873</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-21T00:10:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject nested predicates in impredicativity checking

When GHC attempts to unify a metavariable with a type containing
foralls, it will be rejected as an occurrence of impredicativity.
GHC was /not/ extending the same treatment to predicate types, such
as in the following (erroneous) example from #11514:

```haskell
foo :: forall a. (Show a => a -> a) -> ()
foo = undefined
```

This will attempt to instantiate `undefined` at
`(Show a => a -> a) -> ()`, which is impredicative. This patch
catches impredicativity arising from predicates in this fashion.

Since GHC is pickier about impredicative instantiations, some test
cases needed to be updated to be updated so as not to fall afoul of
the new validity check. (There were a surprising number of
impredicative uses of `undefined`!) Moreover, the `T14828` test case
now has slightly less informative types shown with `:print`. This is
due to a a much deeper issue with the GHCi debugger (see #14828).

Fixes #11514.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7b213b8dc668be216cb2efd7140a2f0263a454e5">7b213b8d</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-21T00:17:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print test suite results ("unexpected failures" etc.) in sorted order

Fixes #16425
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f199a8437ba70e65910220625e690157af679573">f199a843</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-03-21T00:23:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check.hs: Fix a few typos
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07d44ed144ef06de4b125389f318c1f514eee004">07d44ed1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-21T00:29:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Depend upon shlwapi on Windows

As noted in #16466, `System.Environment.getExecutablePath` depends upon
`PathFileExistsW` which is defined by `shlwapi`.

Fixes #16466.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1382d09efadc900f7242c2e23482a9970eaf4f9b">1382d09e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-21T00:35:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused XArrApp and XArrForm extension points

!301 removed the `HsArrApp` and `HsArrForm` constructors, which
renders the corresponding extension points `XArrApp` and `XArrForm`
useless. This patch finally rips them out.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3423664b80ce3c8f5fa3104f3b0a1bcd0e539a02">3423664b</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-03-21T00:41:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix specification of load_load_barrier [skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/84c77a675ccc4b6bbd0f271d7859266872eab777">84c77a67</a></strong>
<div>
<span>by Alexandre Esteves</span>
<i>at 2019-03-21T21:43:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typo [skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7092b2de6fb8f23e03c0be7bd23bf394e087fc00">7092b2de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T03:38:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Only run check-makefiles.py linter in testsuite dir
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/322239de9555ff753db08d1508ee52a484c89093">322239de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T03:38:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Run linters on merge requests

It seems that it has failed to execute at all since it was implemented.

We now run the linters on merge requests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8f8d532c6c9ade79c5ba1a6e08b3e082db1a5fcd">8f8d532c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:45:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Do full `perf` build when building Windows releases
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ef72d3f2b40f4a180501507797378952fc38bae">2ef72d3f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:45:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Pass --target explicitly to configure on Windows

Otherwise configure fails in the 32-bit case with
```
This GHC (c:/GitLabRunner/builds/8fc0e283/0/ghc/ghc/toolchain/bin/ghc) does not generate code for the build platform
   GHC target platform    : x86_64-unknown-mingw32
   Desired build platform : i386-unknown-mingw32
```
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8b14f536b8ddbb83341464c5d07066ad8c3960d3">8b14f536</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:51:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump cabal submodule

Due to https://github.com/haskell/cabal/issues/5953.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dbe4557f0cfb863b1e6267a0f6a6e6d2cf10430a">dbe4557f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T14:02:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Allow failure in packaging step

This depends on the windows build which is still allowed to fail. If
that job fails then the packaging job will also fail.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/366f1c68c1b688baab61934eee62c5a7992db525">366f1c68</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T14:08:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Deploy documentation snapshot via GitLab Pages
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d608d5434772c121759535d13c286a676abb565f">d608d543</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-03-22T14:14:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force LF line ending for md5sum [skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cd07086ada34888c08585f4dc98a961618748ed0">cd07086a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T14:34:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix linters
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab51bee40c82cd552bcf13e24b67d43f3b8d25f3">ab51bee4</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-03-22T14:34:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Remove `Monad(fail)` method and reexport `MonadFail(fail)` instead

As per https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail

Coauthored-by: Ben Gamari <ben@well-typed.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/266b49ca3f3f8846eae29d984eb04339dbc0c2c5">266b49ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:33:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Clean up linter

I'm not sure why these steps were done but they seem counterproductive
and unnecessary.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/44b08ede3f4afb05a55c1acd5b644a38e0fb14f5">44b08ede</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:38:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix YAML syntax
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/971f4530004868b9a043252d6f25081388d99e0d">971f4530</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:49:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Compute merge base against remote tracking branch

Previously we would use the local branch with the name
`$CI_MERGE_REQUEST_TARGET_BRANCH_NAME` to compute the merge base when
linting. However, this branch isn't necessarily up-to-date. We should
rather use `origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8d01b57273e72a9a9d4a76a8f3f15f59441ed30a">8d01b572</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-23T16:37:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Explicitly fetch target branch

`git fetch`, which we used previously, doesn't update the remote
tracking branches.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cd85f8a71bb56cff332560e1d571b3406789fb71">cd85f8a7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-24T12:46:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow linters to fail for now

They are broken and I don't have time to fix them at the moment.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d763b2e7097a2dc14f4917d7e9f0cbd5c7085961">d763b2e7</a></strong>
<div>
<span>by Haskell-mouse</span>
<i>at 2019-03-25T18:02:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">User's Guide: extensions compatibility

Adds the mention that extensions "AllowAmbiguousTypes" and "RankNTypes"
are not always compatible with each other.
Specifies the conditions and causes of failing in resolving
of ambiguity.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/200d65ef41efda8ff2b524f7a15c14620d6a57b9">200d65ef</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-25T18:02:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check hadrian/ghci.sh script output to determine pass/fail

ghci always exits with exit code 0 so you have to check the output
to see if the modules loaded succesfully.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e07368faf5090a5ac803f0e4fa3a5a2a4aba05c">8e07368f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-25T18:02:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor ./hadrian/ghci.sh for better error messages

By separating these two lines, if the first command fails then `ghci` is
not loaded. Before it would still load ghci but display lots of errors
about not being able to find modules.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3769e3a829f4514f82ce7f7d218867f1d69d3d38">3769e3a8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-03-25T18:02:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Wiki URLs to point to GitLab

This moves all URL references to Trac Wiki to their corresponding
GitLab counterparts.

This substitution is classified as follows:

1. Automated substitution using sed with Ben's mapping rule [1]
    Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...
    New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...

2. Manual substitution for URLs containing `#` index
    Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz
    New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz

3. Manual substitution for strings starting with `Commentary`
    Old: Commentary/XxxYyy...
    New: commentary/xxx-yyy...

See also !539

[1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b9da28680aa7ac128ba31680becb4be6f9b21ed4">b9da2868</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-25T18:02:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct duplicate 4.12.0.0 entry in base's changelog

See #16490.

[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab41c1b429374e22f51c06128c173ef4f14be67d">ab41c1b4</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-27T11:20:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Bump Shake to 0.17.6

The new release of Shake comes with these relevant features:

* use symlinks for --shared
* add --compact for a Bazel/Buck style output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646f2e79c5d6e79341693b1b9660da974102cec2">646f2e79</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-27T11:20:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: trace the execution of expensive Cabal calls

We use Cabal to parse, configure, register and copy packages, which are
expensive operations that are currently not visible to Shake's profiling
infrastructure. By using `traced` we tell Shake to add these IO actions
to the profiling report, helping us to identify performance bottlenecks.

We use short tracing keys, as recommended in Shake docs: the name of the
current target is already available in the rest of the profiling
information.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb12f53c2779f15ee24786e8c3beae3133506a01">fb12f53c</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-27T11:20:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: introduce an easy way for users to build with -split-sections

Any user can now trivially build any number of Haskell packages with
`-split-sections` by using `splitSections`/`splitSectionsIf` on any
existing or new flavour:

    -- build all packages but the ghc library with -split-sections
    splitSections :: Flavour -> Flavour

    -- build all packages that satisfy the given predicate
    -- with --split-sections
    splitSectionsIf :: (Package -> Bool) -> Flavour -> Flavour

See the new section in `doc/user-settings.md`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3dec527a840a8165c33579bca09740ca9cf1f4de">3dec527a</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-27T11:20:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: don't use -zorigin on darwin.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5730f86331df4aa9b3d7b5ab59b1ebeafceaeadb">5730f863</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-27T11:20:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor refactoring in copy array primops:

- `emitCopySmallArray` now checks size before generating code and
  doesn't generate any code when size is 0. `emitCopyArray` already does
  this so this makes small/large array cases the same in argument
  checking.

- In both `emitCopySmallArray` and `emitCopyArray` read the `dflags`
  after checking the argument.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4acdb769705de63c721555e70bef5c3dff87e3c5">4acdb769</a></strong>
<div>
<span>by Chaitanya Koparkar</span>
<i>at 2019-03-27T11:20:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix a few broken Trac links [skip ci]

This patch only attempts to fix links that don't automatically re-direct to the correct URL.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97ad5cfb1c41d19cc56f7450c1e42d988dc9fd2d">97ad5cfb</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2019-03-29T18:18:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add some tips to the Troubleshooting section of README
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8a20bfc21da6a47087c8069f92691629eb47951d">8a20bfc2</a></strong>
<div>
<span>by Michael Peyton Jones</span>
<i>at 2019-03-29T18:18:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Visibility: handle multiple units with the same name

Fixes #16228. The included test case is adapted from the reproduction in
the issue, and fails without this patch.

------

We compute an initial visilibity mapping for units based on what is
present in the package databases. To seed this, we compute a set of all
the package configs to add visibilities for.

However, this set was keyed off the unit's *package name*. This is
correct, since we compare packages across databases by version. However,
we would only ever consider a single, most-preferable unit from the
database in which it was found.

The effect of this was that only one of the libraries in a Cabal package
would be added to this initial set. This would cause attempts to use
modules from the omitted libraries to fail, claiming that the package
was hidden (even though `ghc-pkg` would correctly show it as visible).

A solution is to do the selection of the most preferable packages
separately, and then be sure to consider exposing all units in the
same package in the same package db. We can do this by picking a
most-preferable unit for each package name, and then considering
exposing all units that are equi-preferable with that unit.

------

Why wasn't this bug apparent to all people trying to use sub-libraries
in Cabal? The answer is that Cabal explicitly passes `-package` and
`-package-id` flags for all the packages it wants to use, rather than
relying on the state of the package database. So this bug only really
affects people who are trying to use package databases produced by Cabal
outside of Cabal itself.

One particular example of this is the way that the
Nixpkgs Haskell infrastructure provides wrapped GHCs: typically these
are equipped with a package database containing all the needed
package dependencies, and the user is not expected to pass
`-package` flags explicitly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/754b5455aa0983c7702546a6c64061c95733997a">754b5455</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2019-03-29T18:18:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: make nfib compute the Fibonacci sequence [skipci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1a567133f291234f3921b5badaae8a2de6d19ce0">1a567133</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-29T18:18:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Check that changelogs don't contain "TBA"

This ensures that the release dates in the library changelogs are
properly set.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e15ca54c09331378f018abc315a4c6c68db9e1a">6e15ca54</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-29T18:18:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump transformers to 0.5.6.2

See #16199.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6f7115dfd4fbb439a309a8381c4d02c450170cdc">6f7115df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-30T11:42:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Ensure index.html is preserved in documentation tarball
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33173a51c77d9960d5009576ad9b67b646dfda3c">33173a51</a></strong>
<div>
<span>by Alexandre</span>
<i>at 2019-04-01T07:32:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">    Add support for bitreverse primop

    This commit includes the necessary changes in code and
    documentation to support a primop that reverses a word's
    bits. It also includes a test.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a3971b4e8cb2f07387fbc165d46cd861a914c193">a3971b4e</a></strong>
<div>
<span>by Alexandre</span>
<i>at 2019-04-01T07:32:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump ghc-prim's version where needed
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/061276ea5d265eb3c23a3698f0a10f6a764ff4b4">061276ea</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-04-01T07:32:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unnecessary uses of UnboxedTuples pragma (see #13101 / #15454)

Also removes a couple unnecessary MagicHash pragmas
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e468c61333205cc89244acc01432c8493cb06d62">e468c613</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Support Shake's --lint-fsatrace feature.

Using this feature requires fsatrace (e.g. https://github.com/jacereda/fsatrace).
Simply use the `--lint-fsatrace` option when running hadrian.
Shake version >= 0.17.7 is required to support linting out of tree build dirs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e9e4197f1a8b6b53483bd984d241b0f2922a5bf">1e9e4197</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add merge request template for backports for 8.8
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/55650d147bce7cd005327ebd5807fe2851a4e2e1">55650d14</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add some simply issue templates
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/27b99ed8ede3d54932a432402de7dc43d1445f8f">27b99ed8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-04-01T07:32:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clean up URLs to point to GitLab

This moves URL references to old Trac to their corresponding
GitLab counterparts.

This patch does not update the submodule library, such as
libraries/Cabal.

See also !539, !606, !618

[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/18d1555d6e8d8988bcf19a4411a9ff432898282e">18d1555d</a></strong>
<div>
<span>by Adam Sandberg Eriksson</span>
<i>at 2019-04-01T07:32:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: document the use of the LD variable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10352efa453810b7b49be475cd2ebf3c2fc0cd61">10352efa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T22:22:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add feature request MR template
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e52054bab20f28c7447fe80dad5353e71cea774">1e52054b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T23:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Move feature request template to issue_templates

Whoops.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e5c21ca9dfcd7ff3b382f557a91c50c0a45e4330">e5c21ca9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T23:16:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Mention ~"user facing" label
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/39282422afe58a0855c2fe5315163236c116c2f4">39282422</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-02T00:01:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump array submodule

This bumps `array` to version 0.5.4.0 so that we can distinguish
it with `MIN_VERSION_array` (as it introduces some changes to the
`Show` instance for `UArray`).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7cf5ba3dba88356571197b470556e888581212d7">7cf5ba3d</a></strong>
<div>
<span>by Michal Terepeta</span>
<i>at 2019-04-02T00:07:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve performance of newSmallArray#

This:
- Hoists part of the condition outside of the initialization loop in
  `stg_newSmallArrayzh`.
- Annotates one of the unlikely branches as unlikely, also in
  `stg_newSmallArrayzh`.
- Adds a couple of annotations to `allocateMightFail` indicating which
  branches are likely to be taken.

Together this gives about 5% improvement.

Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dd9c82ef38e87ede01d81907c5037845f2944435">dd9c82ef</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T00:13:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: correct deps for ghc builder.

Previously, when needing ghc as a builder, the ghcDeps (Files
the GHC binary depends on) for the current stage were needed.
This is incorrect as the previous stage's ghc is used for building.
This commit fixes the issue, needing the previous stage's ghcDeps.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/345306d3fa5e84de8b6783c0bc70cf3ba5ecd2b7">345306d3</a></strong>
<div>
<span>by Alexandre Baldé</span>
<i>at 2019-04-02T16:34:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix formatting issue in ghc-prim's changelog [skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f54b5124bd449dd0d818725a5797e7aa9d9e9eba">f54b5124</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T16:40:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: traceAllow deep dependencies when compilling haskell object files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d132b30ad7ee73606c745ad7e0b81383eea69d0a">d132b30a</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T16:40:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: lint ignore autom4te and ghc-pkg cache files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bf73419518ca550e85188616f860961c7e2a336b">bf734195</a></strong>
<div>
<span>by Simon Marlow</span>
<i>at 2019-04-02T16:46:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add myself to libraries/ghci</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5a75ccd0993ff2fdf827824e28ae7db4ad9c25ad">5a75ccd0</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-03T04:34:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix faulty substitutions in StgCse (#11532).

`substBndr` should rename bindings which shadow existing ids.
However while it was renaming the bindings it was not adding proper substitutions
for renamed bindings.
Instead of adding a substitution of the form `old -> new` for renamed
bindings it mistakenly added `old -> old` if no replacement had taken
place while adding none if `old` had been renamed.

As a byproduct this should improve performance, as we no longer add
useless substitutions for unshadowed bindings.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ec749b5994aef0eff9185ad2985bfa847cec021">2ec749b5</a></strong>
<div>
<span>by Nathan Collins</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix typo
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ea192a0932c6a95d7854e86f743c11249af23ded">ea192a09</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Add documentation that liftA2 used to not be a typeclass method
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/733f1b52448e5ddd5f3f0d218050f5f22a707b5e">733f1b52</a></strong>
<div>
<span>by Frank Steffahn</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Typo in Users Guide, Glasgow Exts
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3364def0a28d8b888f558cb9fdab379685636854">3364def0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">integer-gmp: Write friendlier documentation for Integer
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dd3a3d08e99114b791f5d1ef9218d922cdfd90e0">dd3a3d08</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">integer-simple: Add documentation for Integer type
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/722fdddf31932236d4246821cb79987fa9422a7e">722fdddf</a></strong>
<div>
<span>by Chris Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct two misspellings of "separately"
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bf6dbe3d1046573cb71fd534a326a9a0e6f1b220">bf6dbe3d</a></strong>
<div>
<span>by Chris Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Inline the definition of 'ap' in the Monad laws

The law as it is currently written is meaningless, because nowhere have
we defined the implementation of 'ap'. The reader of the Control.Monad
documentation is provided with only a type signature,

> ap :: Monad m => m (a -> b) -> m a -> m b

an informal description,

> In many situations, the liftM operations can be replaced by uses of
> ap, which promotes function application.

and a relationship between 'ap' and the 'liftM' functions

> return f `ap` x1 `ap` ... `ap` xn
> is equivalent to
> liftMn f x1 x2 ... xn

Without knowing how 'ap' is defined, a law involving 'ap' cannot
provide any guidance for how to write a lawful Monad instance, nor can
we conclude anything from the law.

I suspect that a reader equipped with the understanding that 'ap' was
defined prior to the invention of the Applicative class could deduce
that 'ap' must be defined in terms of (>>=), but nowhere as far as I can
tell have we written this down explicitly for readers without the
benefit of historical context.

If the law is meant to express a relationship among (<*>), (>>=), and
'return', it seems that it is better off making this statement directly,
sidestepping 'ap' altogether.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7b090b53fea065d2cfd967ea919426af9ba8d737">7b090b53</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T07:57:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: Always use AC_LINK_ELSEIF when testing against assembler

This fixes #16440, where the build system incorrectly concluded that the
`.subsections_via_symbols` assembler directive was supported on a Linux
system. This was caused by the fact that gcc was invoked with `-flto`;
when so-configured gcc does not call the assembler but rather simply
serialises its AST for compilation during the final link.

This is described in Note [autoconf assembler checks and -flto].
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4626cf213fe7affe5f8c2d94dbf03e727c816694">4626cf21</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-04-03T08:03:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix Uncovered set of literal patterns

Issues #16289 and #15713 are proof that the pattern match checker did
an unsound job of estimating the value set abstraction corresponding to
the uncovered set.

The reason is that the fix from #11303 introducing `NLit` was
incomplete: The `LitCon` case desugared to `Var` rather than `LitVar`,
which would have done the necessary case splitting analogous to the
`ConVar` case.

This patch rectifies that by introducing the fresh unification variable
in `LitCon` in value abstraction position rather than pattern postition,
recording a constraint equating it to the constructor expression rather
than the literal. Fixes #16289 and #15713.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6f13e7b13de361f0813a8752a7279ec3c1383755">6f13e7b1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T12:12:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Build hyperlinked sources for releases

Fixes #16445.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/895394c26156993a9405039fe53fde3a6b1414b7">895394c2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T12:15:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Fix label names in issue templates
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/75abaaead796415cf2b5da610f4b3ee75b9d7759">75abaaea</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-04T08:23:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace git.haskell.org with gitlab.haskell.org (#16196)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/25c02ea172ef1dad2d12d8baff6ce57a68bf4127">25c02ea1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T08:29:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16518 with some more kind-splitting smarts

This patch corrects two simple oversights that led to #16518:

1. `HsUtils.typeToLHsType` was taking visibility into account in the
   `TyConApp` case, but not the `AppTy` case. I've factored out the
   visibility-related logic into its own `go_app` function and now
   invoke `go_app` from both the `TyConApp` and `AppTy` cases.
2. `Type.fun_kind_arg_flags` did not properly split kinds with
   nested `forall`s, such as
   `(forall k. k -> Type) -> (forall k. k -> Type)`. This was simply
   because `fun_kind_arg_flags`'s `FunTy` case always bailed out and
   assumed all subsequent arguments were `Required`, which clearly
   isn't the case for nested `forall`s. I tweaked the `FunTy` case
   to recur on the result kind.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/51fd357119b357c52e990ccce9059c423cc49406">51fd3571</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T08:35:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use funPrec, not topPrec, to parenthesize GADT argument types

A simple oversight. Fixes #16527.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6c0dd085c16bad20f6604ce608df6db275d6bca9">6c0dd085</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-04T12:12:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add testcase for #16111
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cbb8886560e63b662f50965cc96efafa8dd6875a">cbb88865</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-04T12:12:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore Xmm registers properly in StgCRun.c

This fixes #16514: Xmm6-15 was restored based off rax instead of rsp.
The code was introduced in the fix for #14619.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33b0a291898b6a35d822fde59864c5c94a53d039">33b0a291</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T12:12:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tweak error messages for narrowly-kinded assoc default decls

This program, from #13971, currently has a rather confusing error
message:

```hs
class C a where
  type T a :: k
  type T a = Int
```
```
    • Kind mis-match on LHS of default declaration for ‘T’
    • In the default type instance declaration for ‘T’
      In the class declaration for ‘C’
```

It's not at all obvious why GHC is complaining about the LHS until
you realize that the default, when printed with
`-fprint-explicit-kinds`, is actually `type T @{k} @* a = Int`.
That is to say, the kind of `a` is being instantiated to `Type`,
whereas it ought to be a kind variable. The primary thrust of this
patch is to weak the error message to make this connection
more obvious:

```
    • Illegal argument ‘*’ in:
        ‘type T @{k} @* a = Int’
        The arguments to ‘T’ must all be type variables
    • In the default type instance declaration for ‘T’
      In the class declaration for ‘C’
```

Along the way, I performed some code cleanup suggested by @rae in
https://gitlab.haskell.org/ghc/ghc/issues/13971#note_191287. Before,
we were creating a substitution from the default declaration's type
variables to the type family tycon's type variables by way of
`tcMatchTys`. But this is overkill, since we already know (from the
aforementioned validity checking) that all the arguments in a default
declaration must be type variables anyway. Therefore, creating the
substitution is as simple as using `zipTvSubst`. I took the
opportunity to perform this refactoring while I was in town.

Fixes #13971.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3a38ea4487173f0f8e3693a75d1c5c7d33f12f05">3a38ea44</a></strong>
<div>
<span>by Eric Crockett</span>
<i>at 2019-04-07T19:21:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16282.

Previously, -W(all-)missed-specs was created with 'NoReason',
so no information about the flag was printed along with the warning.
Now, -Wall-missed-specs is listed as the Reason if it was set,
otherwise -Wmissed-specs is listed as the reason.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/63b7d5fb9d695dafc243cbf6f9f70b06030c0dea">63b7d5fb</a></strong>
<div>
<span>by Michal Terepeta</span>
<i>at 2019-04-08T18:29:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Generate straightline code for inline array allocation

GHC has an optimization for allocating arrays when the size is
statically known -- it'll generate the code allocating and initializing
the array inline (instead of a call to a procedure from
`rts/PrimOps.cmm`).

However, the generated code uses a loop to do the initialization. Since
we already check that the requested size is small (we check against
`maxInlineAllocSize`), we can generate faster straightline code instead.
This brings about 15% improvement for `newSmallArray#` in my testing and
slightly simplifies the code in GHC.

Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2b3f4718502465e2b4dfa4a7868ed7a3ad5e4ff1">2b3f4718</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-04-08T18:35:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16500: look for interface files in -hidir flag in OneShot mode

We are currently ignoring options set in the hiDir field of hsc_dflags
when looking for interface files while compiling in OneShot mode. This
is inconsistent with the behaviour of other directory redirecting fields
(such as objectDir or hieDir). It is also inconsistent with the
behaviour of compilation in CompManager mode (a.k.a `ghc --make`) which
looks for interface files in the directory set in hidir flag. This
changes Finder.hs so that we use the value of hiDir while looking for
interface in OneShot mode.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97502be8bda9199ac058b9677b4b6ba028022936">97502be8</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-08T18:41:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-optcxx` option (#16477)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97d3d546e6f03977a9cbe7d5499bb66510411468">97d3d546</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-08T18:47:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Unmark T16190 as broken

Was broken via #16389 yet strangely it has started passing despite the
fact that the suggested root cause has not changed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a42d206a76e03b4cd831aa7bc72c6d4a0f124bd1">a42d206a</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-08T18:54:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix whitespace style
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4dda2270d26017eadddd99ed567aacf41c2913b9">4dda2270</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-04-08T19:00:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ./hadrian/ghci.sh in .ghcid
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d236d9d0f4f3be0641933b959dde14a065acd37f">d236d9d0</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-04-08T19:06:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make `singleConstructor` cope with pattern synonyms

Previously, `singleConstructor` didn't handle singleton `COMPLETE` sets
of a single pattern synonym, resulting in incomplete pattern warnings
in #15753.

This is fixed by making `singleConstructor` (now named
`singleMatchConstructor`) query `allCompleteMatches`, necessarily making
it effectful. As a result, most of this patch is concerned with
threading the side-effect through to `singleMatchConstructor`.

Unfortunately, this is not enough to completely fix the original
reproduction from #15753 and #15884, which are related to function
applications in pattern guards being translated too conservatively.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1085090e83bbf2a7dbb1b9a2e9023f3500538930">1085090e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-08T19:12:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Skip test ArithInt16 and ArithWord16 in GHCi way

These tests use unboxed tuples, which GHCi doesn't support
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7287bb9ea51251441bc8caca2894549ab34fbcb3">7287bb9e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-08T19:18:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Show exit code of GHCi tests on failure
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f5604d3709d015f4085843a92298af3e53c08d36">f5604d37</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-04-08T19:24:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">settings.in: Reformat

We're might be about to switch to generating it in Hadrian/Make. This
reformat makes it easier to programmingmatically generate and end up
with the exact same thing, which is good for diffing to ensure no
regressions.

I had this as part of !712, but given the difficulty of satisfying CI, I
figured I should break things up even further.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cf9e1837adc647c90cfa176669d14e0d413c043d">cf9e1837</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-08T19:30:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hpc submodule

Currently, the `hpc` submodule is pinned against the `wip/final-mfp`
branch, not against `master`. This pins it back against `master`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/36d380475d9056fdf93305985be3def00aaf6cf7">36d38047</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T14:23:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Document how to disable package environments

As noted in #16309 this somehow went undocumented.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/af4cea7f1411e5b99e2417d7c2d3d0e697093103">af4cea7f</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: fix memset unroll for small bytearrays, add 64-bit sets

Fixes #16052

When the offset in `setByteArray#` is statically known, we can provide
better alignment guarantees then just 1 byte.

Also, memset can now do 64-bit wide sets.

The current memset intrinsic is not optimal however and can be
improved for the case when we know that we deal with

(baseAddress at known alignment) + offset

For instance, on 64-bit

`setByteArray# s 1# 23# 0#`

given that bytearray is 8 bytes aligned could be unrolled into
`movb, movw, movl, movq, movq`; but currently it is
`movb x23` since alignment of 1 is all we can embed into MO_Memset op.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bd2de4f06169e15506bb357cf7c2c8b1dad37d67">bd2de4f0</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: use newtype for Alignment in BasicTypes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/14a7870770fb2dd2e096bc13e8c927d49c868911">14a78707</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: add a note about changes in memset unrolling to 8.10.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fe40ddd9f960d89fbb430962f642ee9b053a0492">fe40ddd9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-09T16:50:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix library install paths in bindist Makefile (#16498)

GHC now works out-of-the-box (i.e. without any wrapper script) by
assuming that @bin@ and @lib@ directories sit next to each other. In
particular, its RUNPATH uses $ORIGIN-based relative path to find the
libraries.

However, to be good citizens we want to support the case where @bin@ and
@lib@ directories (respectively BINDIR and LIBDIR) don't sit next to
each other or are renamed. To do that the install script simply creates
GHC specific @bin@ and @lib@ siblings directories into:

   LIBDIR/ghc-VERSION/{bin,lib}

Then it installs wrapper scripts into BINDIR that call the appropriate
programs into LIBDIR/ghc-VERSION/bin/.

The issue fixed by this patch is that libraries were not installed into
LIBDIR/ghc-VERSION/lib but directly into LIBDIR.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9acdc4c0ea14f890045e973dabcb5ad3bb029505">9acdc4c0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T16:56:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Bump cabal-install version used by Windows builds to 2.4

Hopefully fixes Windows Hadrian build.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fc3f421bd63cbf550cd0c8771aaf11e9c362f4d1">fc3f421b</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2019-04-10T03:17:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC no longer ever defines TABLES_NEXT_TO_CODE on its own

It should be entirely the responsibility of make/Hadrian to ensure that
everything that needs this flag gets it. GHC shouldn't be hardcoded to
assist with bootstrapping since it builds other things besides itself.

Reviewers:

Subscribers: TerrorJack, rwbarton, carter

GHC Trac Issues: #15548 -- progress towards but not fix

Differential Revision: https://phabricator.haskell.org/D5082 -- extract
from that
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be0dde8e3c27ca56477d1d1801bb77621f3618e1">be0dde8e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-10T03:23:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ghc-prim < 0.7, not <= 0.6.1, as upper version bounds

Using `ghc-prim <= 0.6.1` is somewhat dodgy from a PVP point of view,
as it makes it awkward to support new minor releases of `ghc-prim`.
Let's instead use `< 0.7`, which is the idiomatic way of expressing
PVP-compliant upper version bounds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1930de8fb8fda0b94b9fd8f439cccb184165af5e">1930de8f</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/BlockAlloc: Allow aligned allocation requests

This implements support for block group allocations which are aligned to
an integral number of blocks.

This will be used by the nonmoving garbage collector, which uses the
block allocator to allocate the segments which back its heap. These
segments are a fixed number of blocks in size, with each segment being
aligned to the segment size boundary. This allows us to easily find the
segment metadata stored at the beginning of the segment.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6fd24a46202086bf2629df33155d4cf2bb71afa7">6fd24a46</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/testblockalloc: A bit of refactoring
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5519e0ac563eb9c55c2b98836e47bd27b09659db">5519e0ac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/testblockalloc: Test aligned block group allocation
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/380088bb17d093f1ca5245ffe757527cdf314ba4">380088bb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/BlockAlloc: Wibbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7b0d21b3eb2523d30a768002e1ed42a9842b5a22">7b0d21b3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/BlockAlloc: Use allocLargeChunk in aligned block allocation
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5fbe5f0dacd5c0c10919815470f41ffbd2cb2727">5fbe5f0d</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-10T07:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disallow allocating megablocks, update tests
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#fd5da61396a8376845bee5cdf71aaf3c98a888ae">
.circleci/config.yml
</a>
</li>
<li class="file-stats">
<a href="#03615ac1622815b67e9829de1c43ac90fa6d8068">
.ghcid
</a>
</li>
<li class="file-stats">
<a href="#24139dae656713ba861751fb2c2ac38839349a7a">
<span class="new-file">
+
.gitattributes
</span>
</a>
</li>
<li class="file-stats">
<a href="#a5cc2925ca8258af241be7e5b0381edf30266302">
.gitignore
</a>
</li>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#0da1179aab31cf22c6b68d3bbbe5165f8c8f73fd">
<span class="new-file">
+
.gitlab/issue_templates/bug.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#70424f3e889c476809536f20e5ea251264077eca">
<span class="new-file">
+
.gitlab/issue_templates/feature_request.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#94d74d443c79a6f0e3f44097cf3dd2f1a34bdcbe">
.gitlab/linters/check-makefiles.py
</a>
</li>
<li class="file-stats">
<a href="#4dd1dc0abc990333ed932ef4087febfc97d3c4f9">
<span class="new-file">
+
.gitlab/merge_request_templates/backport-for-8.8.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#b25b374c2459de3e2aaed42163f492c8b8614385">
.gitlab/merge_request_templates/merge-request.md
</a>
</li>
<li class="file-stats">
<a href="#29bd322eb4884f713205a6223bd80cb778cf308f">
<span class="new-file">
+
.gitlab/start-head.hackage.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#0641ef536c197a46fddf169b39613b0ff5ad92b3">
.gitlab/win32-init.sh
</a>
</li>
<li class="file-stats">
<a href="#d0e9cb1fab10296d90ef8e144f981f659bbd59ad">
.mailmap
</a>
</li>
<li class="file-stats">
<a href="#b1f70e577fa0a01f44737b27f60defa4c87c49e3">
ANNOUNCE
</a>
</li>
<li class="file-stats">
<a href="#abe895765c4ce08c5dfbc95e5e3c5db67ff92ded">
CODEOWNERS
</a>
</li>
<li class="file-stats">
<a href="#0c39c6a7c54e5d668d208665d6e5ccecdd3bb246">
HACKING.md
</a>
</li>
<li class="file-stats">
<a href="#b2270542d41297db1ee0d12698e609ea3ec25ce7">
INSTALL.md
</a>
</li>
<li class="file-stats">
<a href="#5fb05fd41dbb0a9c7498bded8a0bf8dbb0c3ec59">
MAKEHELP.md
</a>
</li>
<li class="file-stats">
<a href="#836efb6e25a091dcb4ff8e1dbb2f0be6a5cbf14c">
Makefile
</a>
</li>
<li class="file-stats">
<a href="#8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d">
README.md
</a>
</li>
<li class="file-stats">
<a href="#9ab3868b23ed5d5a6e12ef902049902556fa4009">
aclocal.m4
</a>
</li>
<li class="file-stats">
<a href="#15bb6d44db53fc134580f533db43baffd2d85e58">
bindisttest/Makefile
</a>
</li>
<li class="file-stats">
<a href="#9dd60d5c931d6e7488e83c240dd43c58b6716fcd">
bindisttest/ghc.mk
</a>
</li>
<li class="file-stats">
<a href="#5c73b0c6f476ded38de389f894770f06f4d02b2f">
boot
</a>
</li>
<li class="file-stats">
<a href="#baf68da2fb2722d7659e32a5890e96398f3ae640">
compiler/Makefile
</a>
</li>
<li class="file-stats">
<a href="#f33abed7f65cbef82d6577e3591644918f0781c0">
compiler/basicTypes/BasicTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#c59ae47ece0ee7ca5d68921c9e52baea1f498080">
compiler/basicTypes/DataCon.hs
</a>
</li>
<li class="file-stats">
<a href="#10828b99499a9ef1e9839b007762c68994bcb036">
compiler/basicTypes/Demand.hs
</a>
</li>
<li class="file-stats">
<a href="#2c842f2f15e67826dc12cc363525b56acb7b7882">
compiler/basicTypes/Id.hs
</a>
</li>
<li class="file-stats">
<a href="#370ca222df87884d0bcf620df52b004a95dd6592">
compiler/basicTypes/Lexeme.hs
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/compare/b2e2fa647e5a005c83a50fae71777a3187583c23...5fbe5f0dacd5c0c10919815470f41ffbd2cb2727">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.


</p>
</div>
</body>
</html>