<!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=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



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

<h3>
Ben Gamari pushed to branch wip/run-nofib
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/0fc69416f5ed7186ce68c7a758cdd4c52fbf98f6">0fc69416</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-04-25T18:28:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduce MonadP, make PV a newtype

Previously we defined   type PV = P,
this had the downside that if we wanted to change PV,
we would have to modify P as well.

Now PV is free to evolve independently from P.

The common operations addError, addFatalError, getBit, addAnnsAt,
were abstracted into a class called MonadP.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f85efdec3e0580591eed0d132404a20df9a76316">f85efdec</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-04-25T18:28:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">checkPattern error hint is PV context

There is a hint added to error messages reported in checkPattern.
Instead of passing it manually, we put it in a ReaderT environment inside PV.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4e22826716dc0d3b4ab8bdd538c569a280cd8083">4e228267</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-25T18:35:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor RTS refactoring:

- Remove redundant casting in evacuate_static_object
- Remove redundant parens in STATIC_LINK
- Fix a typo in GC.c
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/faa94d47d8c15053b5bb4f173a7c830a06dc9515">faa94d47</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-25T21:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">update-autoconf: Initial commit
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4811cd398fecd8a900666deebef9074e37afa015">4811cd39</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-25T21:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update autoconf scripts

Scripts taken from autoconf a8d79c3130da83c7cacd6fee31b9acc53799c406
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0040af598865733e6565530f4b036e11563976fc">0040af59</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-25T21:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Reintroduce DWARF-enabled bindists

It seems that this was inadvertently dropped in
1285d6b95fbae7858abbc4722bc2301d7fe40425.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2c115085982ba19985f2e00ca938370647e38e4b">2c115085</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rename: hadle type signatures with typos

When encountering type signatures for unknown names, suggest similar
alternatives.

This fixes issue #16504
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb9408dd779f53e2d13dd18638814118f6ca0cac">fb9408dd</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print suggestions in a single message
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e8bf8834ccd4c39628785962576565e5fe240218">e8bf8834</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">osa1's patch: consistent suggestion message
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1deb2bb0c5f1178515d57380c96ec3d4df5a7965">1deb2bb0</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comment on 'candidates' function
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8ee474320d849cc14b51706892665376e8ede629">8ee47432</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Suggest only local candidates from global env
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e23f78bab62d3a353eb7f67c1e0db60f5845286d">e23f78ba</a></strong>
<div>
<span>by Wojciech Baranowski</span>
<i>at 2019-04-30T01:02:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use pp_item
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1abb76ab8e32e7be224631506201d1beec62a5c2">1abb76ab</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-30T01:08:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghci: Ensure that system libffi include path is searched

Previously hsc2hs failed when building against a system FFI.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/014ed644eea9037427c1ebeaac16189b00f9dbc7">014ed644</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-05-01T00:23:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Compute demand signatures assuming idArity

This does four things:

1. Look at `idArity` instead of manifest lambdas to decide whether to use LetUp
2. Compute the strictness signature in LetDown assuming at least `idArity`
   incoming arguments
3. Remove the special case for trivial RHSs, which is subsumed by 2
4. Don't perform the W/W split when doing so would eta expand a binding.
   Otherwise we would eta expand PAPs, causing unnecessary churn in the
   Simplifier.

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%
         pretty           0.0%     -0.1%
        reptile          -0.0%     -1.2%
--------------------------------------------------------------------------------
            Min          -0.0%     -1.2%
            Max          +0.3%     +0.8%
 Geometric Mean          +0.0%     -0.0%
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d37d91e9a444a7822eef1558198d21511558515e">d37d91e9</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-01T00:29:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Generate settings by make/hadrian instead of configure

This allows it to eventually become stage-specific
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/53d1cd9634bc788fca022309af3416831b577a81">53d1cd96</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-01T00:29:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove settings.in

It is no longer needed
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2988ef5e0334f9841bf23d905b0363a3b8a1a660">2988ef5e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-01T00:29:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move cGHC_UNLIT_PGM to be "unlit command" in settings

The bulk of the work was done in #712, making settings be make/Hadrian
controlled. This commit then just moves the unlit command rules in
make/Hadrian from the `Config.hs` generator to the `settings` generator
in each build system.

I think this is a good change because the crucial benefit is *settings*
don't affect the build: ghc gets one baby step closer to being a regular
cabal executable, and make/Hadrian just maintains settings as part of
bootstrapping.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/37a4fd9715de4dad8033ea74483432c77818abf5">37a4fd97</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-01T00:35:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Build Hadrian with -Werror in the 'ghc-in-ghci' CI job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1bef62c38d3737b5f5d7ebbb479f3c1a12b1aa09">1bef62c3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-01T00:41:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ErrUtils: Emit progress messages to eventlog
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ebfa35284741fca47719f531f0996261441f75b0">ebfa3528</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-01T00:41:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Emit GHC timing events to eventlog
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4186b4100380fae1b91cae0d2fbb224ad70dc5f3">4186b410</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2019-05-03T17:40:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Typeset Big-O complexities with Tex-style notation (#16090)

Use `\min` instead of `min` to typeset it as an operator.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9047f1844d3f332e15f9e04e74891c771388da3d">9047f184</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make Extension derive Bounded
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0dde64f28a587f66bc44e591744712004bfff19f">0dde64f2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark concprog001 as fragile

Due to #16604.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8f929388c4b79b82a6e7772720d785f3cbc1f3c1">8f929388</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: generate JUnit testsuite report in Linux CI job

We also keep it as an artifact, like we do for non-Hadrian jobs, and list it
as a junit report, so that the test results are reported in the GitLab UI for
merge requests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/52fc2719b93ab39be3e52eba531ee173b9134183">52fc2719</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Pattern/expression ambiguity resolution

This patch removes 'EWildPat', 'EAsPat', 'EViewPat', and 'ELazyPat'
from 'HsExpr' by using the ambiguity resolution system introduced
earlier for the command/expression ambiguity.

Problem: there are places in the grammar where we do not know whether we
are parsing an expression or a pattern, for example:

        do { Con a b <- x } -- 'Con a b' is a pattern
        do { Con a b }      -- 'Con a b' is an expression

Until we encounter binding syntax (<-) we don't know whether to parse
'Con a b' as an expression or a pattern.

The old solution was to parse as HsExpr always, and rejig later:

        checkPattern :: LHsExpr GhcPs -> P (LPat GhcPs)

This meant polluting 'HsExpr' with pattern-related constructors. In
other words, limitations of the parser were affecting the AST, and all
other code (the renamer, the typechecker) had to deal with these extra
constructors.

We fix this abstraction leak by parsing into an overloaded
representation:

        class DisambECP b where ...
        newtype ECP = ECP { runECP_PV :: forall b. DisambECP b => PV (Located b) }

See Note [Ambiguous syntactic categories] for details.

Now the intricacies of parsing have no effect on the hsSyn AST when it
comes to the expression/pattern ambiguity.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b59e126f541a7dadd5157334531d4bc68a5445b">9b59e126</a></strong>
<div>
<span>by Ningning Xie</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Only skip decls with CUSKs with PolyKinds on (fix #16609)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/87bc954ab65aaf08b4f59cf46bd2916acd69ea73">87bc954a</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix interface version number printing in --show-iface

Before

    Version: Wanted [8, 0, 9, 0, 2, 0, 1, 9, 0, 4, 2, 5],
             got    [8, 0, 9, 0, 2, 0, 1, 9, 0, 4, 2, 5]

After

    Version: Wanted 809020190425,
             got    809020190425
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cc495d5777c01ef62129df15caacf87b0e430c6b">cc495d57</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-03T18:54:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make equality constraints in kinds invisible

Issues #12102 and #15872 revealed something strange about the way GHC
handles equality constraints in kinds: it treats them as _visible_
arguments! This causes a litany of strange effects, from strange
error messages
(https://gitlab.haskell.org/ghc/ghc/issues/12102#note_169035)
to bizarre `Eq#`-related things leaking through to GHCi output, even
without any special flags enabled.

This patch is an attempt to contain some of this strangeness.
In particular:

* In `TcHsType.etaExpandAlgTyCon`, we propagate through the
  `AnonArgFlag`s of any `Anon` binders. Previously, we were always
  hard-coding them to `VisArg`, which meant that invisible binders
  (like those whose kinds were equality constraint) would mistakenly
  get flagged as visible.
* In `ToIface.toIfaceAppArgsX`, we previously assumed that the
  argument to a `FunTy` always corresponding to a `Required`
  argument. We now dispatch on the `FunTy`'s `AnonArgFlag` and map
  `VisArg` to `Required` and `InvisArg` to `Inferred`. As a
  consequence, the iface pretty-printer correctly recognizes that
  equality coercions are inferred arguments, and as a result,
  only displays them in `-fprint-explicit-kinds` is enabled.
* Speaking of iface pretty-printing, `Anon InvisArg` binders were
  previously being pretty-printed like `T (a :: b ~ c)`, as if they
  were required. This seemed inconsistent with other invisible
  arguments (that are printed like `T @{d}`), so I decided to switch
  this to `T @{a :: b ~ c}`.

Along the way, I also cleaned up a minor inaccuracy in the users'
guide section for constraints in kinds that was spotted in
https://gitlab.haskell.org/ghc/ghc/issues/12102#note_136220.

Fixes #12102 and #15872.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f862963b6cdd217730e4f36f07ad52ac9f7be7f3">f862963b</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-04T00:50:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Properly free the RTSSummaryStats structure

`stat_exit` always allocates a `RTSSummaryStats` but only sometimes
frees it, which casues leaks. With this patch we unconditionally free
the structure, fixing the leak.

Fixes #16584
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0af93d16d93ee24efd6ed4a0466f813650b8788f">0af93d16</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-04T00:56:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">StgCmmMonad: remove emitProc_, don't export emitProc
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0a3e4db325ed2d073c9664f6ce1f9165181116b0">0a3e4db3</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-04T00:56:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PrimOps.cmm: remove unused stuff
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/63150b9e5583c5fc3252f242981b0d26f11348b2">63150b9e</a></strong>
<div>
<span>by iustin</span>
<i>at 2019-05-04T21:54:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typo in 8.8.1 notes related to traceBinaryEvent

- fixes double mention of `traceBinaryEvent#` (the second one should be `traceEvent#`, I think)
- fixes note about `traceEvent#` taking a `String` - the docs say it takes a zero-terminated ByteString.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dc8a5868b0be03854927a5efab83a6e9a15e21d1">dc8a5868</a></strong>
<div>
<span>by gallais</span>
<i>at 2019-05-04T22:00:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[ typo ] 'castFloatToWord32' -> 'castFloatToWord64'

Probably due to a copy/paste gone wrong.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/615b4be66341edb513785d3511e71803c45da90f">615b4be6</a></strong>
<div>
<span>by Chaitanya Koparkar</span>
<i>at 2019-05-05T14:39:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16593 by having only one definition of -fprint-explicit-runtime-reps

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ead3f835e24338fb3df3ebdec3e86f9364df7c9c">ead3f835</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-05T14:39:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">'warnSpaceAfterBang' only in patterns (#16619)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/27941064872b19f65e99ba65b7fa8635268ee738">27941064</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-06T18:59:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove cGhcEnableTablesNextToCode

Get "Tables next to code" from the settings file instead.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/821fa9e81161f4414041c840236df848e18cb3b4">821fa9e8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-05-06T19:05:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove `$(TOP)/ANNOUNCE` file

Remove `$(TOP)/ANNOUNCE` because maintaining this file is expensive
for each release.

Currently, release announcements of ghc are made on ghc blogs and wikis.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e172a6d127a65b945b31306ff7b6c43320debfb4">e172a6d1</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-06T19:11:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Enable external interpreter when TH is requested but no internal interpreter is available
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ba0aed2e783435c9175761fc2b20b9302f368a98">ba0aed2e</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-06T21:32:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: override $(ghc-config-mk), to prevent redundant config generation

This required making the 'ghc-config-mk' variable overridable in
testsuite/mk/boilerplate.mk, and then making use of this in hadrian
to point to '<build root>/test/ghcconfig' instead, which is where we
always put the test config.

Previously, we would build ghc-config and run it against the
GHC to be tested, a second time, while we're running the tests, because some
include testsuite/mk/boilerplate.mk. This was causing unexpected output
failures.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/961979617a3b6717f5d175c08884a9b970602d6e">96197961</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-07T10:35:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add /includes/dist to .gitignore

As of commit d37d91e9a444a7822eef1558198d21511558515e, the GHC build
now autogenerates a `includes/dist/build/settings` file. To avoid
dirtying the current `git` status, this adds `includes/dist` to
`.gitignore`.

[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78a5c4ce6bae233b655097ada3901028104f0f27">78a5c4ce</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-07T21:03:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check for duplicate variables in associated default equations

A follow-up to !696's, which attempted to clean up the error messages
for ill formed associated type family default equations. The previous
attempt, !696, forgot to account for the possibility of duplicate
kind variable arguments, as in the following example:

```hs
class C (a :: j) where
  type T (a :: j) (b :: k)
  type T (a :: k) (b :: k) = k
```

This patch addresses this shortcoming by adding an additional check
for this. Fixes #13971 (hopefully for good this time).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f58ea556538c048b05607be869feb677b1083175">f58ea556</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-07T21:09:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for old typechecking issue #505
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/786e665b8dac5430c02089b39f7cb7572a5254d8">786e665b</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-08T05:55:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16603 by documenting some important changes in changelogs

This addresses some glaring omissions from
`libraries/base/changelog.md` and
`docs/users_guide/8.8.1-notes.rst`, fixing #16603 in the process.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0eeb4cfad732d0b9b278c2274cb6db9633f9d3b5">0eeb4cfa</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-08T06:01:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16632 by using the correct SrcSpan in checkTyClHdr

`checkTyClHdr`'s case for `HsTyVar` was grabbing the wrong `SrcSpan`,
which lead to error messages pointing to the wrong location. Easily
fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ed5f858b8484a207e28baf9cbec4c60de1c86187">ed5f858b</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2019-05-08T19:29:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement ImportQualifiedPost
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d9bdff607e79a605197a13203ca9421153e8dd37">d9bdff60</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-08T19:35:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">stg_floatToWord32zh: zero-extend the Word32 (#16617)

The primop stgFloatToWord32 was sign-extending the 32-bit word, resulting
in weird negative Word32s.  Zero-extend them instead.

Closes #16617.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9a3acac968d76370e12839db4b71bb0a43e35b2c">9a3acac9</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-08T19:41:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print PAP object address in stg_PAP_info entry code

Continuation to ce23451c
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4c86187ccd49309c1d6b32d05b164822a803d3e2">4c86187c</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-05-08T19:47:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Regression test for #16627.

test: typecheck/should_fail/T16627
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/93f34bbd3319544d8eb3a5e2593bccb9b12e3459">93f34bbd</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-08T19:53:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Purge TargetPlatform_NAME and cTargetPlatformString
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9d9af0eea599b82f5567885a36e9059f8484aa39">9d9af0ee</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-08T19:59:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for old issue #507
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/396e01b472bba36530e7eb065b82d311f0da7880">396e01b4</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-08T20:05:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a regression test for #14548
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5eb9445444c4099fc9ee0803ba45db390900a80f">5eb94454</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2019-05-10T20:26:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add Generic tuple instances up to 15-tuple

Why 15? Because we have Eq instances up to 15.

Metric Increase:
    T9630
    haddock.base
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c7913f71bc8ed8910c829a84b78d2f56b05f0473">c7913f71</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-05-10T20:32:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix bugs and documentation for #13456
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bfcd986dc424f506e100f9a29bb62c9ff22e9702">bfcd986d</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-10T20:38:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: programs need registered ghc-pkg libraries

In Hadrian, building programs (e.g. `ghc` or `haddock`) requires libraries located in the ghc-pkg package database i.e.

    _build/stage1/lib/x86_64-linux-ghc-8.9.0.20190430/libHSdeepseq-1.4.4.0-ghc8.9.0.20190430.so

Add the corresponding `need`s for these library files and the subsequent rules.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10f579ad57cb5a11f67694df9ad4823656d91e7b">10f579ad</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-10T20:45:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable cleanup job on Windows

As discussed in the Note, we now have a cron job to handle this and the
cleanup job itself is quite fragile.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6f07f828e4f7a445fabd82dcb3fbf6edb2641369">6f07f828</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-10T20:51:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test case for old issue #493
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4e25bf46fd722178d3a5ca65ccf2f13710f56a91">4e25bf46</a></strong>
<div>
<span>by Giles Anderson</span>
<i>at 2019-05-13T23:01:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change GHC.hs to Packages.hs in Hadrian user-settings.md

... "all packages that are currently built as part of the GHC are
defined in src/Packages.hs"
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/357be128fc1b545c182a9c6167437616636a300b">357be128</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for old parser issue #504
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/015a21b8990a7fcf0d9d31a951af3ae8b06076c4">015a21b8</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Make settings stage specific
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f9e4ea401121572d799b9db56f24aa1abdf5edf8">f9e4ea40</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Dont refer to `cLeadingUnderscore` in test

Can't use this config entry because it's about to go away
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e529c65eacf595006dd5358491d28c202d673732">e529c65e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove all target-specific portions of Config.hs

1. If GHC is to be multi-target, these cannot be baked in at compile
   time.

2. Compile-time flags have a higher maintenance than run-time flags.

3. The old way makes build system implementation (various bootstrapping
   details) with the thing being built. E.g. GHC doesn't need to care
   about which integer library *will* be used---this is purely a crutch
   so the build system doesn't need to pass flags later when using that
   library.

4. Experience with cross compilation in Nixpkgs has shown things work
   nicer when compiler's can *optionally* delegate the bootstrapping the
   package manager. The package manager knows the entire end-goal build
   plan, and thus can make top-down decisions on bootstrapping. GHC can
   just worry about GHC, not even core library like base and ghc-prim!
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5cf8032e2fd2a2f35b8de9016c6e38e92c524394">5cf8032e</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update terminal title while running test-suite

Useful progress indicator even when `make test VERBOSE=1`,
and when you do something else, but have terminal title visible.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c72c369bcd56c74b745d90ee8f6acd12b430c65c">c72c369b</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a minimized regression test for #12928
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a5fdd185188fcda595fd712f90864ec7c20cdace">a5fdd185</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Guard CUSKs behind a language pragma

GHC Proposal #36 describes a transition plan away from CUSKs and to
top-level kind signatures:

1. Introduce a new extension, -XCUSKs, on by default, that detects CUSKs
   as they currently exist.
2. We turn off the -XCUSKs extension in a few releases and remove it
   sometime thereafter.

This patch implements phase 1 of this plan, introducing a new language
extension to control whether CUSKs are enabled. When top-level kind
signatures are implemented, we can transition to phase 2.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/684dc290563769d456b6f1c772673d64307ab072">684dc290</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore the --coerce option in 'happy' configuration

happy-1.19.10 has been released with a fix for --coerce in the presence
of higher rank types. This should result in about 10% performance
improvement in the parser.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a416ae26a2e45de3d9a76e94fc22aaa53e9e5b12">a416ae26</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-14T20:41:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: 'need' source files for various docs in Rules.Documentation

Previously, changing one of the .rst files from the user guide would not cause
the user guide to be rebuilt. This patch take a first stab at declaring the
documentation source files that our documentation rules depend on, focusing
on the .rst files only for now.

We eventually might want to rebuild docs when we, say, change the haddock style
file, but this level of tracking isn't really necessary for now.

This fixes #16645.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7105fb66a7bacf822f7f23028136f89ff5737d0e">7105fb66</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-16T16:47:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Explicit state that CONSTR tag field is zero-based

This was a bit unclear as we use both one-based and zero-based
tags in GHC.

[skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5bb80cf2c5601fc57231946c10aee76398b907dd">5bb80cf2</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-20T14:41:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve test runner logging when calculating performance metric baseline #16662

We attempt to get 75 commit hashes via `git log`, but this only gave 10
hashes in a CI run (see #16662). Better logging may help solve this
error if it occurs again in the future.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b46efa2bbf86cf0673d0d6dfd5c40b2b0db5f9ff">b46efa2b</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-20T18:45:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Recalculate Performance Test Baseline T9630 #16680

Metric Decrease:
    T9630
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/54095bbd3a5481e906b05c80ea68841165c7a2b3">54095bbd</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-05-21T20:54:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix directive errors on 8.10

The following sections are not displayed due to a directive error:

  * -Wunused-record-wildcards
  * -Wredundant-record-wildcards

I changed the location of the `since` directive.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8fc654c3a00ab0cd842c3e8316f832170ea561d6">8fc654c3</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-21T20:57:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include CPP preprocessor dependencies in -M output

Issue #16521
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0af519ac583c3544b1c4b1315b38ba0174d3ccb1">0af519ac</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-21T21:01:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor Libffi and RTS rules

This removes a hack that copies libffi files to the rts
build directory. This was done in a libffi rule, but now
an rts rule correctly needs and copies the relevant
files from the libffi build dir to the rts build dir.

Issues: #16272 #16304
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9342b1fabd09e8bbebb982b07f129da266f7c586">9342b1fa</a></strong>
<div>
<span>by Kirill Elagin</span>
<i>at 2019-05-21T21:04:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix -rtsopts default</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d0142f21692c4b4514ea68e489c943ac26037d8f">d0142f21</a></strong>
<div>
<span>by Javran Cheng</span>
<i>at 2019-05-21T21:08:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix doc for Data.Function.fix.

Doc-only change.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ddd905b4eada5a9a33977a435393cf7826a4d6a5">ddd905b4</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2019-05-21T21:12:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update resolver for for happy 1.19.10
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e32c30caf48517df8ddca6a79a39becfe5622c39">e32c30ca</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-21T21:15:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">distrib/configure.ac.in: remove mention to 'settings', since settings.in is gone

Otherwise, when `./configure`ing a GHC bindist, produced by either Make or
Hadrian, we would try to generate the `settings` file from the `settings.in`
template that we used to have around but which has been gone since d37d91e9.
That commit generates the settings file using the build systems instead, but
forgot to remove this mention to the `settings` file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a6c8436f974cafc36a6e0462878614bdc0899c0">4a6c8436</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-21T21:19:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16666 by parenthesizing contexts in Convert

Most places where we convert contexts in `Convert` are actually in
positions that are to the left of some `=>`, such as in superclasses
and instance contexts. Accordingly, these contexts need to be
parenthesized at `funPrec`. To accomplish this, this patch changes
`cvtContext` to require a precedence argument for the purposes of
calling `parenthesizeHsContext` and adjusts all `cvtContext` call
sites accordingly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c32f64e5a9bcdb17d69bcabf0f0db0203eb6b7d9">c32f64e5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-21T21:23:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow Windows Hadrian build to fail

Due to #16574.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/412a1f39ecc26fb8bce997bfe71e87b7284a1493">412a1f39</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-21T21:23:01Z</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/0dc7985663efa1739aafb480759e2e2e7fca2a36">0dc79856</a></strong>
<div>
<span>by Julian Leviston</span>
<i>at 2019-05-22T00:55:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow for multiple linker instances. Fixes Haskell portion of #3372.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/21272670581608b96a85cfb942af81ada3cfd450">21272670</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-05-22T20:37:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Have GHCi use object code for UnboxedTuples modules #15454

The idea is to automatically enable -fobject-code for modules that use
UnboxedTuples, along with all the modules they depend on. When looking
into how to solve this, I was pleased to find that there was already
highly similar logic for enabling code generation when -fno-code is
specified but TemplateHaskell is used.

The state before this patch was that if you used unboxed tuples then you
had to enable `-fobject-code` globally rather than on a per module
basis.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ddae344e80eee3044f773061126937a69d16c957">ddae344e</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-05-22T20:41:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use datatype for unboxed returns when loading ghc into ghci

See #13101 and #15454
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78c3f3305e173c7667ffb47b97ff0ecacc279fe5">78c3f330</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-22T20:45:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for old Word32 arithmetic issue (#497)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ecc9366a0e0db107c286935130837b2222e2dd82">ecc9366a</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-05-22T20:48:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">RTS: Fix restrictive cast

Commit e75a9afd2989e0460f9b49fa07c1667299d93ee9 added an `unsigned` cast
to account for OSes that have signed `rlim_t` signed. Unfortunately,
the `unsigned` cast has the unintended effect of narrowing `rlim_t` to
only 4 bytes. This leads to some spurious out of memory crashes
(in particular: Haddock crashes with OOM whenn building docs of
`ghc`-the-library).

In this case, `W_` is a better type to cast to: we know it will be
unsigned too and it has the same type as `*len` (so we don't suffer from
accidental narrowing).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2c15b85eb2541a64df0cdf3705fb9aa068634004">2c15b85e</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-22T20:52:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add --test-root-dirs, to only run specific directories of tests

We can specify several of those, by using the flag multiple times or
just once but combining the directories with ':'.

Along the way, this patch also fixes the testsuite-related --only flag,
so that we can use it many times instead of being force to specify a
space-separated list of test in a single --only flag.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6efe04dee3f4c584e0cd043b8424718f0791d1be">6efe04de</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-22T20:56:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use HsTyPats in associated type family defaults

Associated type family default declarations behave strangely in a
couple of ways:

1. If one tries to bind the type variables with an explicit `forall`,
   the `forall`'d part will simply be ignored. (#16110)
2. One cannot use visible kind application syntax on the left-hand
   sides of associated default equations, unlike every other form
   of type family equation. (#16356)

Both of these issues have a common solution. Instead of using
`LHsQTyVars` to represent the left-hand side arguments of an
associated default equation, we instead use `HsTyPats`, which is what
other forms of type family equations use. In particular, here are
some highlights of this patch:

* `FamEqn` is no longer parameterized by a `pats` type variable, as
  the `feqn_pats` field is now always `HsTyPats`.
* The new design for `FamEqn` in chronicled in
  `Note [Type family instance declarations in HsSyn]`.
* `TyFamDefltEqn` now becomes the same thing as `TyFamInstEqn`. This
  means that many of `TyFamDefltEqn`'s code paths can now reuse the
  code paths for `TyFamInstEqn`, resulting in substantial
  simplifications to various parts of the code dealing with
  associated type family defaults.

Fixes #16110 and #16356.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4ba73e00c4887b58d85131601a15d00608acaa60">4ba73e00</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2019-05-22T20:59:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fix Template Haskell cross compilation on 64 bit compiler with 32 bit target
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/535a26c90f458801aeb1e941a3f541200d171e8f">535a26c9</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-23T17:26:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Add Generic tuple instances up to 15-tuple" #16688

This reverts commit 5eb9445444c4099fc9ee0803ba45db390900a80f.
It has caused an increase in variance of performance test T9630,
causing CI to fail.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/04b4b98447c36a2d28fffe819c97c32b591479ee">04b4b984</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-24T02:32:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add an --hadrian mode to ./validate

When the '--hadrian' flag is passed to the validate script, we use hadrian
to build GHC, package it up in a binary distribution and later on run GHC's
testsuite against the said bindist, which gets installed locally in the process.

Along the way, this commit fixes a typo, an omission (build iserv binaries
before producing the bindist archive) and moves the Makefile that enables
'make install' on those bindists from being a list of strings in the code to
an actual file (it was becoming increasingly annoying to work with).

Finally, the Settings.Builders.Ghc part of this patch is necessary for being
able to use the installed binary distribution, in 'validate'.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b449d3415543771779a74f8d867eb1a4748ddb2">0b449d34</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-24T02:35:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a test for #16597
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/59f4cb6fb73ade6f9b0bdc85380dfddba93bf14b">59f4cb6f</a></strong>
<div>
<span>by Iavor Diatchki</span>
<i>at 2019-05-24T02:39:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a `NOINLINE` pragma on `someNatVal` (#16586)

This fixes #16586, see `Note [NOINLINE someNatVal]` for details.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6eedbd83a19cad94414b37f984b6e9c2b0c0b2e4">6eedbd83</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-24T02:43:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Some forall-related cleanup in deriving code

* Tweak the parser to allow `deriving` clauses to mention explicit
  `forall`s or kind signatures without gratuitous parentheses.
  (This fixes #14332 as a consequence.)
* Allow Haddock comments on `deriving` clauses with explicit
  `forall`s. This requires corresponding changes in Haddock.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c931f2561207aa06f1750827afbb68fbee241c6f">c931f256</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-24T10:22:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow metric change after reverting "Add Generic tuple instances up to 15-tuple" #16688

Metrics increased on commit 5eb9445444c4099fc9ee0803ba45db390900a80f and
decreased on revert commit 535a26c90f458801aeb1e941a3f541200d171e8f.

Metric Decrease:
    T9630
    haddock.base
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d9dfbde30aa11afc87f25b73dc2d154a46ca24d4">d9dfbde3</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-05-24T15:55:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add PlainPanic for throwing exceptions without depending on pprint

This commit splits out a subset of GhcException which do not depend on
pretty printing (SDoc), as a new datatype called
PlainGhcException. These exceptions can be caught as GhcException,
because 'fromException' will convert them.

The motivation for this change is that that the Panic module
transitively depends on many modules, primarily due to pretty printing
code.  It's on the order of about 130 modules.  This large set of
dependencies has a few implications:

1. To avoid cycles / use of boot files, these dependencies cannot
throw GhcException.

2. There are some utility modules that use UnboxedTuples and also use
`panic`. This means that when loading GHC into GHCi, about 130
additional modules would need to be compiled instead of
interpreted. Splitting the non-pprint exception throwing into a new
module resolves this issue. See #13101
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/70c244710258b8ef9cc61cebcbc0d26799e2fd0a">70c24471</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-05-25T21:51:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `keepCAFs` to RtsSymbols
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9be1749d24211c1a78334692d34be10dbc650371">9be1749d</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-25T21:55:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Add Mising Libffi Dependencies #16653

Libffi is ultimately built from a single archive file (e.g.
libffi-tarballs/libffi-3.99999+git20171002+77e130c.tar.gz).
The file can be seen as the shallow dependency for the whole
libffi build. Hence, in all libffi rules, the archive is
`need`ed and the build directory is `trackAllow`ed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d0cf6252957b8980d89481ecd0b79891da4b14b">2d0cf625</a></strong>
<div>
<span>by Sandy Maguire</span>
<i>at 2019-05-26T12:57:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Let the specialiser work on dicts under lambdas

Following the discussion under #16473, this change allows the
specializer to work on any dicts in a lambda, not just those that occur
at the beginning.

For example, if you use data types which contain dictionaries and
higher-rank functions then once these are erased by the optimiser you
end up with functions such as:

```
  go_s4K9
  Int#
  -> forall (m :: * -> *).
     Monad m =>
     (forall x. Union '[State (Sum Int)] x -> m x) -> m ()
```

The dictionary argument is after the Int# value argument, this patch
allows `go` to be specialised.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4b2287681e1610ad9fdc665c50f4f1476d856060">4b228768</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-05-27T05:19:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Lowercase windows imports

While windows and macOS are currently on case-insensitive file
systems, this poses no issue on those.  When cross compiling from
linux with a case sensitive file system and mingw providing only
lowercase headers, this in fact produces an issue.  As such we just
lowercase the import headers, which should still work fine on a
case insensitive file system and also enable mingw's headers to
be usable porperly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/01f8e39032f9fd86a23e5bbb7dbf1aca3a3d114d">01f8e390</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-27T14:06:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Fix problem with unlit path in settings file

e529c65e introduced a problem in the logic for generating the
path to the unlit command in the settings file, and this patches
fixes it.

This fixes many tests, the simplest of which is:

> _build/stage1/bin/ghc testsuite/tests/parser/should_fail/T8430.lhs

which failed because of a wrong path for unlit, and now fails for the right
reason, with the error message expected for this test.

This addresses #16659.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dcd843accc5554e1401987f1e7461dd836223daa">dcd843ac</a></strong>
<div>
<span>by mizunashi_mana</span>
<i>at 2019-05-27T14:06:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typo of primop format</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3f6e5b976fe6bcb61aa44a4467e8f94841e979cf">3f6e5b97</a></strong>
<div>
<span>by Joshua Price</span>
<i>at 2019-05-27T14:06:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct the large tuples section in user's guide

Fixes #16644.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1f51aad656444c667cf1dd22605ee65e931985c7">1f51aad6</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-05-27T14:06:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix tcfail158 (#15899)

As described in #15899, this test was broken, but now it's back
to normal.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/723216e3ee8d5d535ca74b67748453f948d73d42">723216e3</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-05-27T14:06:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a pprTraceWith function
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6d188dd526334ddbb5fb683eef7aa0be6c35a3a0">6d188dd5</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-05-27T14:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Include (<$) in all exports of Functor

Previously the haddocks for Control.Monad and Data.Functor gave
the impression that `fmap` was the only Functor method.

Fixes #16681.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/95b791732c6c7a5becc01b70e9496266cec5444e">95b79173</a></strong>
<div>
<span>by Jasper Van der Jeugt</span>
<i>at 2019-05-27T14:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix padding of entries in .prof files

When the number of entries of a cost centre reaches 11 digits, it takes
up the whole space reserved for it and the prof file ends up looking
like:

    ... no.        entries  %time %alloc   %time %alloc

        ...
    ... 120918     978250    0.0    0.0     0.0    0.0
    ... 118891          0    0.0    0.0    73.3   80.8
    ... 11890229702412351    8.9   13.5    73.3   80.8
    ... 118903  153799689    0.0    0.1     0.0    0.1
        ...

This results in tooling not being able to parse the .prof file.  I
realise we have the JSON output as well now, but still it'd be good to
fix this little weirdness.

Original bug report and full prof file can be seen here:
<https://github.com/jaspervdj/profiteur/issues/28>.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f80d3afd7357edbeee0148faa9e8ca3e103a7174">f80d3afd</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-27T14:06:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Fix generation of settings

I jumbled some lines in e529c65eacf595006dd5358491d28c202d673732,
messing up the leading underscores and rts ways settings. This broke at
least stage1 linking on macOS, but probably loads of other things too.

Should fix #16685 and #16658.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db8e3275080173cc36af9f8e51636ee506e7c872">db8e3275</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-27T14:06:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing opening braces in Cmm dumps

Previously -ddump-cmm was generating code with unbalanced curly braces:

     stg_atomically_entry() //  [R1]
             { info_tbls: [(cfl,
                            label: stg_atomically_info
                            rep: tag:16 HeapRep 1 ptrs { Thunk }
                            srt: Nothing)]
               stack_info: arg_space: 8 updfr_space: Just 8
             }
         {offset
           cfl: // cfk
               unwind Sp = Just Sp + 0;
               _cfk::P64 = R1;
               //tick src<rts/PrimOps.cmm:(1243,1)-(1245,1)>
               R1 = I64[_cfk::P64 + 8 + 8 + 0 * 8];
               call stg_atomicallyzh(R1) args: 8, res: 0, upd: 8;
         }
     }, <---- OPENING BRACE MISSING

After this patch:

     stg_atomically_entry() { //  [R1] <---- MISSING OPENING BRACE HERE
             { info_tbls: [(cfl,
                            label: stg_atomically_info
                            rep: tag:16 HeapRep 1 ptrs { Thunk }
                            srt: Nothing)]
               stack_info: arg_space: 8 updfr_space: Just 8
             }
         {offset
           cfl: // cfk
               unwind Sp = Just Sp + 0;
               _cfk::P64 = R1;
               //tick src<rts/PrimOps.cmm:(1243,1)-(1245,1)>
               R1 = I64[_cfk::P64 + 8 + 8 + 0 * 8];
               call stg_atomicallyzh(R1) args: 8, res: 0, upd: 8;
         }
     },
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9334467f5dd59f9ea7c231c5ff0b1987df4d1570">9334467f</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-05-28T04:24:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve comments around injectivity checks
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c8380a4a738e5c2488337496b0d1b1faf6a7de9d">c8380a4a</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-05-29T14:35:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle hs-boot files in -Wmissing-home-modules (#16551)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7a75a09403264c60a1f513b7466dc9503b966aab">7a75a094</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-29T14:36:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: introduce 'static_stats' tests

They are a particular type of perf tests. This patch introduces a
'stats_files_dir' configuration field in the testsuite driver where all
haddock timing files (and possibly others in the future) are assumed to live.
We also change both the Make and Hadrian build systems to pass respectively
$(TOP)/testsuite/tests/perf/haddock/ and
<build root>/stage1/haddock-timing-files/ as the value of that new
configuration field, and to generate the timing files in those directories
in the first place while generating documentation with haddock.

This new test type can be seen as one dedicated to examining stats files that
are generated while building a GHC distribution. This also lets us get rid of
the 'extra_files' directives in the all.T entries for haddock.base,
haddock.Cabal and haddock.compiler.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/32acecc29d4766fd2b168cbd654667ba6be03dbb">32acecc2</a></strong>
<div>
<span>by P.C. Shyamshankar</span>
<i>at 2019-05-29T14:37:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor spelling fixes to users guide.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b58b389b538b6fb9cbb3517cff83808f2a690a0e">b58b389b</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2019-05-29T14:37:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove stale 8.2.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5bfd28f5cdf6ef41a08b7bfe2003aa9cc7914af1">5bfd28f5</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2019-05-29T14:37:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix some warnings in users_guide (incl #16640)

- short underline
- :ghc-flag:, not :ghc-flags:
- :since: have to be separate
- newline before code block
- workaround anchor generation so

    - pragma:SPECIALISE
    - pragma:SPECIALIZE-INLINE
    - pragma:SPECIALIZE-inline

  are different anchors, not all the same `pragma:SPECIALIZE`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a5b14ad4764c5596331dd5a0abf0b0f6df6b0053">a5b14ad4</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-29T14:38:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add test for old issue displaying unboxed tuples in error messages (#502)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f9d61ebbf4bba7862ae53c69b0f7116423b8f6d1">f9d61ebb</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-05-29T14:39:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">In hole fits, don't show VTA for inferred variables (#16456)

We fetch the ArgFlag for every argument by using splitForAllVarBndrs
instead of splitForAllTys in unwrapTypeVars.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/69b1633104a43d5654e65f2c05fa6b73775936e2">69b16331</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-05-29T14:39:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix missing unboxed tuple RuntimeReps (#16565)

Unboxed tuples and sums take extra RuntimeRep arguments,
which must be manually passed in a few places.
This was not done in deSugar/Check.

This error was hidden because zipping functions in TyCoRep
ignored lists with mismatching length. This is now fixed;
the lengths are now checked by calling zipEqual.

As suggested in #16565, I moved checking for isTyVar and
isCoVar to zipTyEnv and zipCoEnv.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9062b62555ced7403cb97f5fd55cffdd57fbf717">9062b625</a></strong>
<div>
<span>by Nathan Collins</span>
<i>at 2019-05-29T14:40:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't lose parentheses in show SomeAsyncException</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cc0d05a78c3c731c771aaadd29c2c5c8d772d619">cc0d05a7</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-29T14:41:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add hPutStringBuffer utility
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5b90e0a173f69c9babb3201f62cd5096798c5240">5b90e0a1</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-29T14:41:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow using tagetContents for modules needing preprocessing

This allows GHC API clients, most notably tooling such as
Haskell-IDE-Engine, to pass unsaved files to GHC more easily.

Currently when targetContents is used but the module requires preprocessing
'preprocessFile' simply throws an error because the pipeline does not
support passing a buffer.

This change extends `runPipeline` to allow passing the input buffer into
the pipeline. Before proceeding with the actual pipeline loop the input
buffer is immediately written out to a new tempfile.

I briefly considered refactoring the pipeline at large to pass around
in-memory buffers instead of files, but this seems needlessly complicated
since no pipeline stages other than Hsc could really support this at the
moment.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb26d46754564bfacda98618d86d3ee4eda1fcf2">fb26d467</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-29T14:41:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">downsweep: Allow TargetFile not to exist when a buffer is given

Currently 'getRootSummary' will fail with an exception if a 'TargetFile' is
given but it does not exist even if an input buffer is passed along for
this target.

In this case it is not necessary for the file to exist since the buffer
will be used as input for the compilation pipeline instead of the file
anyways.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4d51e0d80f02483e86f4ad3bae47dcb3311def6b">4d51e0d8</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-29T14:41:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CNF.c: Move debug functions behind ifdef
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae968d419d861dcc01cd5d45e96dc86e16c363c5">ae968d41</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-29T14:42:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">tcMatchesFun s/rho/sigma #16692
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d2aa2031b9abc3bff7b5585ab4201948c8bba7d">2d2aa203</a></strong>
<div>
<span>by Josh Meredith</span>
<i>at 2019-05-29T14:43:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Provide details in `plusSimplCount` errors
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ace2e3350fa7da1f7ebcdb882f1241da10a90c26">ace2e335</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-29T20:06:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Break up `Settings` into smaller structs

As far as I can tell, the fields within `Settings` aren't *intrinsicly*
related. They just happen to be initialized the same way (in particular
prior to the rest of `DynFlags`), and that is why they are grouped
together.

Within `Settings`, however, there are groups of settings that clearly do
share something in common, regardless of how they anything is
initialized.

In the spirit of GHC being a library, where the end cosumer may choose
to initialize this configuration in arbitrary ways, I made some new data
types for thoses groups internal to `Settings`, and used them to define
`Settings` instead. Hopefully this is a baby step towards a general
decoupling of the stateful and stateless parts of GHC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bfccd832782353a000b430870a6602cc591c8b7a">bfccd832</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-05-29T20:06:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Inline `Settings` into `DynFlags`

After the previous commit, `Settings` is just a thin wrapper around
other groups of settings. While `Settings` is used by GHC-the-executable
to initalize `DynFlags`, in principle another consumer of
GHC-the-library could initialize `DynFlags` a different way. It
therefore doesn't make sense for `DynFlags` itself (library code) to
separate the settings that typically come from `Settings` from the
settings that typically don't.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a1bf3413f850d0e8a68ecab6ee7f18f18b67ea56">a1bf3413</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-29T20:07:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Add note about Libffi's Indicating Inputs #16653

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3aa71a222ac2e5538db15ec8facb7f0253782647">3aa71a22</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-30T11:28:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: always generate the libffi dynlibs manifest with globbing

Instead of trying to deduce which dynlibs are expected to be found (and then
copied to the RTS's build dir) in libffi's build directory, with some OS
specific logic, we now always just use `getDirectoryFilesIO` to look for
those dynlibs and record their names in the manifest. The previous logic
ended up causing problems on Windows, where we don't build dynlibs at all
for now but the manifest file's logic didn't take that into account because
it was only partially reproducing the criterions that determine whether or not
we will be building shared libraries.

This patch also re-enables the Hadrian/Windows CI job, which was failing to
build GHC precisely because of libffi shared libraries and the aforementionned
duplicated logic.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ade53ce29fddc49162f409567c2e76feb5f21c66">ade53ce2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-30T11:29:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CODEOWNERS: Use correct username for Richard Eisenberg

In !980 Richard noted that he could not approve the MR.
This mis-spelling was the reason.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4ad37a323b9cdb830d718dec08c2960e34410a43">4ad37a32</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-30T11:29:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Handle zero-sized mappings in MachO linker

As noted in #16701, it is possible that we will find that an object has
no segments needing to be mapped. Previously this would result in mmap
being called for a zero-length mapping, which would fail. We now simply
skip the mmap call in this case; the rest of the logic just works.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f81f3964b718eab21f0cfe65067c195f2f2a84bd">f81f3964</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-05-30T20:43:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use binary search to speedup checkUnload

We are iterating through all object code for each heap objects when
checking whether object code can be unloaded. For large projects in
GHCi, this can be very expensive due to the large number of object code
that needs to be loaded/unloaded. To speed it up, this arrangess all
mapped sections of unloaded object code in a sorted array and use binary
search to check if an address location fall on them.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4212918096ab1a9eb5d7c9c35fa2441978fcd4b8">42129180</a></strong>
<div>
<span>by Trịnh Tuấn Phương</span>
<i>at 2019-05-30T20:43:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Apply suggestion to rts/CheckUnload.c</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e42e98ec9b75787348672f44916d6f278fd245d">8e42e98e</a></strong>
<div>
<span>by Trịnh Tuấn Phương</span>
<i>at 2019-05-30T20:43:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Apply suggestion to rts/CheckUnload.c</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/70afa539f9dd51cbcaf26ca7cbde610ac9ff1a81">70afa539</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Export GhcMake.downsweep

This is to enable #10887 as well as to make it possible to test downsweep
on its own in the testsuite.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a8de5c5a9b326b7ac42c607239b19e50e7dcdc00">a8de5c5a</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add failing test for #10887
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8906bd66781745002e9da3880415d12f9c86481d">8906bd66</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor downsweep to allow returning multiple errors per module
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e85ebf765e2b6d692e5581f38ff2923e74daa54">8e85ebf7</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor summarise{File,Module} to reduce code duplication
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76c86fca43a4e5449f69c5bc1623f4890ae918e2">76c86fca</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor summarise{File,Module} to extract checkSummaryTimestamp

This introduces a slight change of behaviour in the interrest of keeping
the code simple: Previously summariseModule would not call
addHomeModuleToFinder for summaries that are being re-used but now we do.

We're forced to to do this in summariseFile because the file being
summarised might not even be on the regular search path! So if GHC is to
find it at all we have to pre-populate the cache with its location. For
modules however the finder cache is really just a cache so we don't have to
pre-populate it with the module's location.

As straightforward as that seems I did almost manage to introduce a bug (or
so I thought) because the call to addHomeModuleToFinder I copied from
summariseFile used to use `ms_location old_summary` instead of the
`location` argument to checkSummaryTimestamp. If this call were to
overwrite the existing entry in the cache that would have resulted in us
using the old location of any module even if it was, say, moved to a
different directory between calls to 'depanal'.

However it turns out the cache just ignores the location if the module is
already in the cache. Since summariseModule has to search for the module,
which has the side effect of populating the cache, everything would have
been fine either way.

Well I'm adding a test for this anyways: tests/depanal/OldModLocation.hs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/18d3f01d9abe2994b2b3d07b67ee9616c3553e16">18d3f01d</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make downsweep return all errors per-module instead of throwing some

This enables API clients to handle such errors instead of immideately
crashing in the face of some kinds of user errors, which is arguably quite
bad UX.

Fixes #10887
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/99e7276982fe41dca0098e37a9cbf71091c3e275">99e72769</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Catch preprocessor errors in downsweep

This changes the way preprocessor failures are presented to the
user. Previously the user would simply get an unlocated message on stderr
such as:

    `gcc' failed in phase `C pre-processor'. (Exit code: 1)

Now at the problematic source file is mentioned:

    A.hs:1:1: error:
        `gcc' failed in phase `C pre-processor'. (Exit code: 1)

This also makes live easier for GHC API clients as the preprocessor error
is now thrown as a SourceError exception.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b7ca94fd43209a62d37506709fad685f09073cc1">b7ca94fd</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PartialDownsweep: Add test for import errors
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98e39818f5f66b9a6b95ce7b484b54dbc68e454e">98e39818</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add depanalPartial to make getting a partial modgraph easier

As per @mpickering's suggestion on IRC this is to make the partial
module-graph more easily accessible for API clients which don't intend to
re-implementing depanal.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d278477123fe9270e5f21db722b7295371a097e2">d2784771</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-05-30T20:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve targetContents code docs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/424e85b2e1fc0f81504fcc2ee2d6c8ffe7e064e9">424e85b2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-30T20:44:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Compile T9630 with +RTS -G1

For the reasons described in Note [residency] we run programs with -G1
when we care about the max_bytes_used metric.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4879d7aff0ffaabcdbfd85064cff9bddcc95a4fe">4879d7af</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-05-31T05:56:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Eventlog: Document the fact timestamps are nanoseconds

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b01a3541e483ea3fcbd6c0f1586a063310b75f9">0b01a354</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-05-31T05:56:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update `$(TOP)/*.md` documents

I updated the top documents to the latest status:

  - HACKING.md:
    - Modify Phabricator to GitLab infomation
    - Remove old Trac information
    - Add link to GitLab activity

  - MAKEHELP.md:
    - Add link to hadrian wiki
    - Fix markdown format

  - INSTALL.md:
    - Modify boot command to remove python3
    - Fix markdown format

  - README.md:
    - Modify tarball file suffix
    - Fix markdown format

I checked the page display on the GitHub and GitLab web.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/973077ac63c79988f2d5f25d13b60dce82f9e8dd">973077ac</a></strong>
<div>
<span>by Sergei Trofimovich</span>
<i>at 2019-05-31T05:57:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">powerpc32: fix 64-bit comparison (#16465)

On powerpc32 64-bit comparison code generated dangling
target labels. This caused ghc build failure as:

    $ ./configure --target=powerpc-unknown-linux-gnu && make
    ...
    SCCs aren't in reverse dependent order
    bad blockId n3U

This happened because condIntCode' in PPC codegen generated
label name but did not place the label into `cmp_lo` code block.

The change adds the `cmp_lo` label into the case of negative
comparison.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb2ee86a4cf47eb56d4b8b4a552537449d492f88">bb2ee86a</a></strong>
<div>
<span>by Sergei Trofimovich</span>
<i>at 2019-05-31T05:57:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">powerpc32: fix stack allocation code generation

When ghc was built for powerpc32 built failed as:

It's a fallout of commit 3f46cffcc2850e68405a1
("PPC NCG: Refactor stack allocation code") where
word size used to be
    II32/II64
and changed to
    II8/panic "no width for given number of bytes"
    widthFromBytes ((platformWordSize platform) `quot` 8)

The change restores initial behaviour by removing extra division.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/08b4c81363f405bf67ff85c5d132ff5919515095">08b4c813</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-05-31T05:58:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use types already in AST when making .hie file

These were meant to be added in !214 but for some reason wasn't included
in the patch.

Update Haddock submodule for new Types.hs hyperlinker output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/284cca51f07c70c03ce602c963e22acf7333180b">284cca51</a></strong>
<div>
<span>by David Hewson</span>
<i>at 2019-05-31T05:58:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">support small arrays and CONSTR_NOCAF in ghc-heap
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f071576cf4a58de101e00c6e854e66acb8cc3e67">f071576c</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-05-31T05:59:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Expose doCpp</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c70d039e5fa1a8dc0163b1fe7db5b0105b832d30">c70d039e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-31T06:00:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused RTS function 'unmark'
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb929009523a20271e1af34990e5c85d440de0d7">bb929009</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-05-31T06:00:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix arity type of coerced types in CoreArity

Previously if we had

    f |> co

where `f` had arity type `ABot N` and `co` had arity M and M < N,
`arityType` would return `ABot M` which is wrong, because `f` is only
known to diverge when applied to `N` args, as described in Note
[ArityType]:

    If at = ABot n, then (f x1..xn) definitely diverges. Partial
    applications to fewer than n args may *or may not* diverge.

This caused incorrect eta expansion in the simplifier, causing #16066.

We now return `ATop M` for the same expression so the simplifier can't
assume partial applications of `f |> co` is divergent.

A regression test T16066 is also added.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e32786dfc9290e037f70cd942d5922217f2ab7cc">e32786df</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-31T06:01:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Put COMPLETE sigs into ModDetails with -fno-code (#16682)

`mkBootModDetailsTc`, which creates a special `ModDetails` when
`-fno-code` is enabled, was not properly filling in the `COMPLETE`
signatures from the `TcGblEnv`, resulting in incorrect pattern-match
coverage warnings. Easily fixed.

Fixes #16682.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0c6f7f7eb94f80d3ed74a382af8a3294d070e740">0c6f7f7e</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-05-31T06:01:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement (Functor.<$) for Array
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/495a65cbc48d5209f30fd4248fc11ab06b05d4c3">495a65cb</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-05-31T06:02:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement (Functor.<$) for Data.Functor.{Compose,Product,Sum}

This allows us to make use of the (<$) implementations of the
underlying functors.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0e0d87da2fd25e2fb255417fcb15f93f508c1250">0e0d87da</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2019-05-31T06:34:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix and enforce validation of header for .hie files

Implements #16686

The files version is automatically generated from the current GHC
version in the same manner as normal interface files.

This means that clients can first read the version and then decide how
to read the rest of the file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1d43d4a3e45d86261fa63591e99749cb7d3f68ed">1d43d4a3</a></strong>
<div>
<span>by Nathan Collins</span>
<i>at 2019-06-01T03:55:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve ThreadId Show instance

By making it include parens when a derived instance would. For example, this changes the (hypothetical) code `show (Just (ThreadId 3))` to produce `"Just (ThreadId 3)"` instead of the current `"Just ThreadId 3"`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/45f88494293bea20cc3aca025ee6fe84087987ce">45f88494</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-06-01T03:56:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject nested foralls in foreign imports (#16702)

This replaces a panic observed in #16702 with a simple error message
stating that nested `forall`s simply aren't allowed in the type
signature of a `foreign import` (at least, not at present).

Fixes #16702.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76e5889017ee4ac688901d37f2fa684e807769b6">76e58890</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-06-01T03:57:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix space leaks in dynLoadObjs (#16708)

When running the test suite on a GHC built with the `quick` build
flavour, `-fghci-leak-check` noticed some space leaks. Careful
investigation led to `Linker.dynLoadObjs` being the culprit.
Pattern-matching on `PeristentLinkerState` and a dash of `$!` were
sufficient to fix the issue. (ht to mpickering for his suggestions,
which were crucial to discovering a fix)

Fixes #16708.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1503da32d26fb59fb6ebb620bfd0f8c08638f627">1503da32</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-01T15:18:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix rewriting invalid shifts to errors

Fixes #16449.

5341edf3 removed a code in rewrite rules for bit shifts, which broke the
"silly shift guard", causing generating invalid bit shifts or heap
overflow in compile time while trying to evaluate those invalid bit
shifts.

The "guard" is explained in Note [Guarding against silly shifts] in
PrelRules.hs.

More specifically, this was the breaking change:

    --- a/compiler/prelude/PrelRules.hs
    +++ b/compiler/prelude/PrelRules.hs
    @@ -474,12 +474,11 @@ shiftRule shift_op
            ; case e1 of
                _ | shift_len == 0
                  -> return e1
    -             | shift_len < 0 || wordSizeInBits dflags < shift_len
    -             -> return (mkRuntimeErrorApp rUNTIME_ERROR_ID wordPrimTy
    -                                        ("Bad shift length" ++ show shift_len))

This patch reverts this change.

Two new tests added:

- T16449_1: The original reproducer in #16449. This was previously
  casing a heap overflow in compile time when CmmOpt tries to evaluate
  the large (invalid) bit shift in compile time, using `Integer` as the
  result type. Now it builds as expected. We now generate an error for
  the shift as expected.

- T16449_2: Tests code generator for large (invalid) bit shifts.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e297b36169208939528d962724679c5756e9e7c">2e297b36</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-01T15:19:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Remove unused decls from CNF.h
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33e37d0619a9d1d0b8088a109f7eeb4c6fd21027">33e37d06</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` option under ci condition to fix #16415

In order to use the `:doc` command in ghci, it is necessary
to compile for core libraries with `-haddock` option.

Especially, the `-haddock` option is essential for release building.

Note:
  * The `-haddock` option may affect compile time and binary size.
  * But hadrian has already set `-haddock` as the default.
  * This patch affects the make-based building.

This patch has been split from !532.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/43a39c3c2195d5b4400efc845a54f153184b1d7f">43a39c3c</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` to perf.mk rather than prepare-system.sh

To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `mk/flavours/perf.mk` rather than `.circleci/prepare-system.sh`.

Because in windows condition of ghc-8.9, `mk/flavours/*` is included
after `prepare-system.sh`.

In addition, in linux condition of ghc-8.6, `mk/flavors/perf.mk` is used.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c4f94320a7048a7f263d8d952d4e12cc0227cf72">c4f94320</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` to prepare-system.sh and .gitlab-ci.yml

To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `.circleci/prepare-system.sh` and .gitlab-ci.yml.
after including `mk/flavours/*`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/799b1d26977b5841aa580e07c8f8e65356eed785">799b1d26</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-03T02:55:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Use GHC 8.6.5 for Windows CI builds
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/286827be471f9efa67303d57b979e0c32cb8936e">286827be</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-06-04T05:09:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TestRunner: Added --chart to display a chart of performance tests

This uses the Chart.js javascript library.
Everything is put into a standalone .html file and opened with the
default browser.
I also simplified the text output to use the same data as the chart.
You can now use a commit range with git's ".." syntax.
The --ci option will use results from CI (you'll need to fetch them
first):

  $ git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/ci/perf
  $ python3 testsuite/driver/perf_notes.py --ci --chart --test-env x86_64-darwin --test-name T9630 master~500..master
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db78ac6f5d69618ff143ab4b572e7f58a1805687">db78ac6f</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-06-04T05:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use a better strategy for determining the offset applied to foreign function arguments that have an unlifted boxed type. We used to use the type of the argument. We now use the type of the foreign function. Add a test to confirm that the roundtrip conversion between an unlifted boxed type and Any is sound in the presence of a foreign function call.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/114b014f7ed346727241c78ef3e0bf965d94edfc">114b014f</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-04T05:10:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix OSX build failure and add an OSX/Hadrian CI job

The OSX build failure introduced in 3aa71a22 was due to a change in the
glob we use to collect libffi shared libraries in hadrian/src/Rules/Libffi.hs.
This commit fixes the problem and adds an OSX CI job that builds GHC with
Hadrian, to make sure we don't break it again.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/002594b731c40334b33eb883275e9c274c68e9ac">002594b7</a></strong>
<div>
<span>by Xavier Denis</span>
<i>at 2019-06-04T18:41:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add GHCi :instances command

This commit adds the `:instances` command to ghci following proosal
number 41.

This makes it possible to query which instances are available to a given
type.

The output of this command is all the possible instances with type
variables and constraints instantiated.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3ecc03df3b7777ecb40fbbbb2d6d7c2b98676d1c">3ecc03df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-04T18:42:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Run bindisttest during CI
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c16f3297401f8f1f0f5d289867725ad185ac5a40">c16f3297</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-04T18:42:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">make: Fix bindist installation

This fixes a few vestigial references to `settings` left over from !655.
Fixes #16715.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ba4e3934abc82e0ba2bec51842315819910d1018">ba4e3934</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-04T18:43:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: profiling and debug enabled ways support -eventlog too
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/567894b49b9e8f5ced2d0e5f051f2a1d5c9f13e2">567894b4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-07T08:36:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable darwin hadrian job

See #16771

We don't have enough capacity for the two jobs currently.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d3915b304f297b8a2534f6abf9c2984837792921">d3915b30</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-06-07T14:20:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] Improve the documentation of the CNF primops. In this context, the term "size" is ambiguous and is now avoided. Additionally, the distinction between a CNF and the blocks that comprise it has been emphasize. The vocabulary has been made more consistent with the vocabulary in the C source for CNF.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e963beb54a243f011396942d2add644e3f3dd8ae">e963beb5</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-06-07T14:21:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TmOracle: Replace negative term equalities by refutable PmAltCons

The `PmExprEq` business was a huge hack and was at the same time vastly
too powerful and not powerful enough to encode negative term equalities,
i.e. facts of the form "forall y. x ≁ Just y".

This patch introduces the concept of 'refutable shapes': What matters
for the pattern match checker is being able to encode knowledge of the
kind "x can no longer be the literal 5". We encode this knowledge in a
`PmRefutEnv`, mapping a set of newly introduced `PmAltCon`s (which are
just `PmLit`s at the moment) to each variable denoting above
inequalities.

So, say we have `x ≁ 42 ∈ refuts` in the term oracle context and
try to solve an equality like `x ~ 42`. The entry in the refutable
environment will immediately lead to a contradiction.

This machinery renders the whole `PmExprEq` and `ComplexEq` business
unnecessary, getting rid of a lot of (mostly dead) code.

See the Note [Refutable shapes] in TmOracle for a place to start.

Metric Decrease:
    T11195
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b7372f68c0bc9cafc30e227b574abf1d5b16df5">0b7372f6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-07T14:21:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add HEAP_PROF_SAMPLE_END event to mark end of samples

This allows a user to observe how long a sampling period lasts so that
the time taken can be removed from the profiling output.

Fixes #16697
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d1dc0ed75be0dafb0be3b4ff5e839612702eab47">d1dc0ed7</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-06-07T14:22:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16700: Tiny errors in output of GHCi commands :forward and :info

`:info Coercible` now outputs the correct section number of the GHCi User's guide together with the secion title.

`:forward x` gives the correct syntax hint.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/387050d0e26a9e6466b31c9d8e4e4f6273c64c9e">387050d0</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-06-07T14:23:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Factor out 'getLibDir' / 'getBaseDir' into a new GHC.BaseDir ghc-boot module

ghc-pkg and ghc already both needed this. I figure it is better to
deduplicate, especially seeing that changes to one (FreeBSD CPP) didn't
make it to the other.

Additionally in !1090 I make ghc-pkg look up the settings file, which
makes it use the top dir a bit more widely. If that lands, any
difference in the way they find the top dir would be more noticable.

That change also means sharing more code between ghc and ghc-package
(namely the settings file parsing code), so I'd think it better to get
off the slipperly slope of duplicating code now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/da26ffe795f1861783c1b031ed93f9fa59550f85">da26ffe7</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-06-07T14:24:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Preserve ShadowInfo when rewriting evidence

When the canonicaliser rewrites evidence of a Wanted, it
should preserve the ShadowInfo (ctev_nosh) field.  That is,
a WDerive should rewrite to WDerive, and WOnly to WOnly.

Previously we were unconditionally making a WDeriv, thereby
rewriting WOnly to WDeriv.  This bit Nick Frisby (issue #16735)
in the context of his plugin, but we don't have a compact test
case.

The fix is simple, but does involve a bit more plumbing,
to pass the old ShadowInfo around, to use when building
the new Wanted.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9bb58799d2ce58f6aef772df79ad26210403aded">9bb58799</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-07T14:24:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Delete target symlink in createFileLinkUntracked

Previously createFileLinkUntracked would fail if the symlink already
existed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be63d2996308c77f8a0a44592074c98f66a80e93">be63d299</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-06-07T14:25:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix isValidNatural: The BigNat in NatJ# must have at least 2 limbs

Previously the `integer-gmp` variant of `isValidNatural` would fail to
detect values `<= maxBound::Word` that were incorrectly encoded using
the `NatJ#` constructor.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e87b9f8731460a7d8c0b45507be2d83935683d56">e87b9f87</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-06-07T14:26:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">llvm-targets: Add x86_64 android layout
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/60db142ba2928f159a0df6fd2a7c1839addf6206">60db142b</a></strong>
<div>
<span>by code5hot</span>
<i>at 2019-06-07T14:26:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Traversable.hs with a note about an intuitive law</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f11aca52b1ea47b0e3c43c1ee7a5ec8c6d061714">f11aca52</a></strong>
<div>
<span>by code5hot</span>
<i>at 2019-06-07T14:26:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Used terminology from a paper. Added it as a reference.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/13b3d45d308108da2d92b3c06b5489f41703e623">13b3d45d</a></strong>
<div>
<span>by code5hot</span>
<i>at 2019-06-07T14:26:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">remove backticks from markup - it doesn't mean what I think it means</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cfd3e0f1cfd16c8f35cae139d2a871a32eb4d2e1">cfd3e0f1</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-06-07T14:27:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Pass preprocessor options to C compiler when building foreign C files (#16737)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5991d877a3da69da63ab93ea277bd89965c97573">5991d877</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-07T14:28:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Export Finalizers

As requested in #16750.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3d97bad67ea64b7ee690c0a8836579bceef47cb5">3d97bad6</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-07T14:28:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: use deb9 Docker images instead of deb8 for CI jobs

This should fix #16739, where we seem to be getting extra carets in
a test's output because of the gcc that ships with the deb8 image,
whule we're not observing those extra carets in the deb9-based (Make)
jobs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1afb499583f741a95cceb3207c5455c8ec6f5b87">1afb4995</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-07T14:29:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Create index.html in documentation deployment

Otherwise navigating to https://ghc.gitlab.haskell.org/ghc will result
in a 404.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07dc79c3718a7080760105db180db2d904cf2394">07dc79c3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Linters, don't allow to fail

Ben disabled them in cd85f8a71bb56cff332560e1d571b3406789fb71 but didn't
say how or why they were broken.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fd840b64ec21d2d06e1e54ce525195c6773d3f17">fd840b64</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't run two submodule checking jobs on Marge jobs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/310d0c4cbc2c847d24408bab92cdae0ed5cc4799">310d0c4c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix two lint failures in rts/linker/MachO.c
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fe9653160be3b025698be9a2a2141b2b87b8ef55">fe965316</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Use --unshallow when fetching for linters

GitLab creates a shallow clone. However, this means that we may not have
the base commit of an MR when linting, causing `git merge-base` to fail.
Fix this by passing `--unshallow` to `git fetch`, ensuring that we have
the entire history.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f58234ea75112b1569e860e6a864d66509df381a">f58234ea</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix submodule linter

The job script didn't even try to compute the base commit to lint with
respect to.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c392f987de174ae04c6c7c47145dfe5db6427615">c392f987</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T17:34:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: A few clarifying comments
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/709290b01c3c63137d863d6fdd97dabdfe47eb29">709290b0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-08T17:38:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove trailing whitespace

[skip ci]

This should really be caught by the linters! (#16711)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b2f106f5544e4c71bb07df4acb9d2b5ed184a7e3">b2f106f5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T18:02:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable shallow clones

Previously we were passing `--unshallow` to `git fetch` in the linting
rules to ensure that the base commit which we were linting with respect
to was available. However, this breaks due to GitLab's re-use of
working directories since `git fetch --unshallow` fails on a repository
which is not currently shallow.

Given that `git fetch --unshallow` circumvents the efficiencies provided
by shallow clones anyways, let's just disable them entirely.

There is no documented way to do disable shallow clones but on checking
the GitLab implementation it seems that setting `GIT_DEPTH=0` should do
the trick.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a72259d6dcc350d37a50064c18ffcafd03233be">4a72259d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T18:40:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix submodule linting of commits

There is no notion of a base commit when we aren't checking a merge
request. Just check the HEAD commit.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8754002973dcde8709458044e541ddc8f4fcf6bb">87540029</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-08T20:44:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Ensure that all commits on a branch are submodule-linted

The previous commit reworked things such that the submodule linter would
only run on the head commit. However, the linter only checks the
submodules which are touched by the commits it is asked to lint.
Consequently it would be possible for a bad submodule to sneak through.

Thankfully, we can use the handy CI_COMMIT_BEFORE_SHA attribute to
find the base commit of the push.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0462b0e02d8759983484eb09d0ba1be134ec592e">0462b0e0</a></strong>
<div>
<span>by Alexandre Baldé</span>
<i>at 2019-06-09T15:48:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Explain that 'mappend' and '(<>)' should be the same [skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/970e480230bc8422d9bd9a6f1011def86befc34a">970e4802</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-09T15:49:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Properly partition options in sourceArgs

Previously if you build the `ghc` package then it would has the default
opts and the library opts. This is different behaviour to make where the
library opts are only reserved for things in the `libraries`
subdirectory (I believe)

Fixes #16716
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a018c3a84c88f6208e7bd5587af1cdf40c2ae991">a018c3a8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-09T15:49:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Suppress ticks in T4918 output

As noted in #16741, this test otherwise breaks when `base` is compiled
with `-g`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f737033329817335bc01ab16a385b4b5ec5b3b5d">f7370333</a></strong>
<div>
<span>by chessai</span>
<i>at 2019-06-09T22:41:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduce log1p and expm1 primops

Previously log and exp were primitives yet log1p and expm1 were FFI
calls. Fix this non-uniformity.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/41bf4045c5a85651db8ceb631a1b67edec0c1216">41bf4045</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-09T22:41:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #16514
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b9fe91fce5cf5ab233ab48a64e6a49caf1beced3">b9fe91fc</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-06-09T22:42:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Small refactorings in ExtractDocs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9d238791862e8b128d397a1c0317986ea82ed000">9d238791</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-06-09T22:42:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle trailing path separator in package DB names (#16360)

Package DB directories with trailing separator (provided via
GHC_PACKAGE_PATH or via -package-db) resulted in incorrect calculation of
${pkgroot} substitution variable.  Keep the trailing separator while
resolving as directory or file, but remove it before dropping the last
path component with takeDirectory.

Closes #16360.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a22e51ea6f7a046c87d57ce30d143eef6abee9ff">a22e51ea</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-06-09T22:43:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16517 by bumping the TcLevel for method sigs

There were actually two bugs fixed here:

1. candidateQTyVarsOfType needs to be careful that it does not
   try to zap metavariables from an outer scope as "naughty"
   quantification candidates. This commit adds a simple check
   to avoid doing so.

2. We weren't bumping the TcLevel in kcHsKindSig, which was used
   only for class method sigs. This mistake led to the acceptance
   of

     class C a where
       meth :: forall k. Proxy (a :: k) -> ()

   Note that k is *locally* quantified. This patch fixes the
   problem by using tcClassSigType, which correctly bumps the
   level. It's a bit inefficient because tcClassSigType does other
   work, too, but it would be tedious to repeat much of the code
   there with only a few changes. This version works well and is
   simple.

And, while updating comments, etc., I noticed that tcRnType was
missing a pushTcLevel, leading to #16767, which this patch also
fixes, by bumping the level. In the refactoring here, I also
use solveEqualities. This initially failed ghci/scripts/T15415,
but that was fixed by teaching solveEqualities to respect
-XPartialTypeSignatures.

This patch also cleans up some Notes around error generation that
came up in conversation.

Test case: typecheck/should_fail/T16517, ghci/scripts/T16767
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10452959136fbf271ac21eb0740030c046db36e1">10452959</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-06-09T22:44:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add disable/enable commands to ghci debugger #2215

This patch adds two new commands `:enable` and `:disable` to the GHCi debugger.
Opposite to `:set stop <n> :continue` a breakpoint disabled with `:disable` will
not loose its previously set stop command.
A new field breakEnabled is added to the BreakLocation data structure to
track the enable/disable state. When a breakpoint is disabled with a `:disable`
command, the following happens:

The corresponding BreakLocation data element is searched dictionary of the
`breaks` field of the GHCiStateMonad. If the break point is found and not
already in the disabled state, the breakpoint is removed from bytecode.
The BreakLocation data structure is kept in the breaks list and the new
breakEnabled field is set to false.

The `:enable` command works similar.

The breaks field in the GHCiStateMonad was changed from an association list
to int `IntMap`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/13572480cbb8588033a60c675bec0cdae382fb91">13572480</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-09T22:44:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Separate population of eventTypes from initial event generation

Previously these two orthogonal concerns were both implemented in
postHeaderEvents which made it difficult to send header events after RTS
initialization.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ed20412a8ce7578d073461892c9643591c6993a5">ed20412a</a></strong>
<div>
<span>by nineonine</span>
<i>at 2019-06-09T22:45:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Do not report error if Name in pragma is unbound
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8a48a8a4e2f14f7f01aa1d4cf249420c908edb73">8a48a8a4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-09T22:46:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #16509
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/69c58f8abbb0b51eca1f0004a8d8c1cee0c8f766">69c58f8a</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-06-09T22:46:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: need CPP preprocessor dependencies #16660

Use the new -include-cpp-deps ghc option (#16521)
when generating .dependencies files in hadrian.
This is version gated as -include-cpp-deps is a
relatively new option.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1c7bb03db5956e8c56260ba0bbc8271afe073a01">1c7bb03d</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-06-09T22:47:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comments only: document tcdDataCusk better.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5023adceeb59e9a2b57cda2e69cd2a6152a13ead">5023adce</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-06-09T22:47:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove CPP ensuring word size is 32 or 64 bits around Addr# <-> int# primops

It shouldn't be needed these days, and those primops are "highly
deprecated" anyways.

This fits with my plans because it removes one bit of target-dependence
of the builtin primops, and this is the hardest part of GHC to make
multi-target.

CC @carter
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e60e3f0c6c1482f448dd4d24d716d34046503e9">8e60e3f0</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2019-06-09T22:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Fix RetainerProfile early return with TREC_CHUNK

When pop() returns with `*c == NULL` retainerProfile will immediately
return. All other code paths is pop() continue with the next stackElement
when this happens so it seems weird to me that TREC_CHUNK we would suddenly
abort everything even though the stack might still have elements left to
process.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1a3420cabdcf6d7d90c154681230f1150604c097">1a3420ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-10T11:59:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Mark CPUTime001 as fragile

As noted in #16224, CPUTime001 has been quite problematic, reporting
non-monotonic timestamps in CI. Unfortunately I've been unable to
reproduce this locally.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9bc10993bb300d3712b0f13ec6e28621d75d4204">9bc10993</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-06-10T12:00:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print role annotations in TemplateHaskell brackets (#16718)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0345b1b0f62c8fac72d07a7b848d14b9893e9ac9">0345b1b0</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-06-11T03:52:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comments only: document newtypes' DataConWrapId
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/58a5d728d0293110d7e80aa1f067721447b20882">58a5d728</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-06-11T03:52:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor the rules for .hi and .o into a single rule using `&%>` #16764

Currently the rule for .hi files just triggers (via need) the rule
for the .o file, and .o rule generates both the .o and .hi file.
Likewise for .o-boot and .hi-boot files. This is a bit of an abuse
of Shake, and in fact shake supports rules with multiple output
with the &%> function. This exact use case appears in Neil
Mitchell's paper *Shake Before Building* section 6.3.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2f9450864b355269a102216292f2034f0f7bedda">2f945086</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-11T03:53:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix and extend closure_size test

This was previously broken in several ways. This is fixed and it also
now tests arrays. Unfortunately I was unable to find a way to continue
testing PAP and FUN sizes; these simply depend too much upon the
behavior of the simplifier.

I also tried to extend this to test non-empty arrays as well but
unfortunately this was non-trivial as the array card size constant isn't
readily available from haskell.

Fixes #16531.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e5d275f45677ed89df310754973a15c522dc1003">e5d275f4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-11T03:53:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-heap: Add closure_size_noopt test

This adds a new test, only run in the `normal` way, to verify the size
of FUNs and PAPs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fe7e7e4a950a77326cc16f4ade30a67d20d7cdd5">fe7e7e4a</a></strong>
<div>
<span>by Yuras Shumovich</span>
<i>at 2019-06-11T22:39:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Warn about unused packages

Reviewers: bgamari, simonpj

Reviewed By: simonpj

Subscribers: hvr, simonpj, mpickering, rwbarton, carter

GHC Trac Issues: #15838

Differential Revision: https://phabricator.haskell.org/D5285
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/39f50bff3ea913a7f4b1d915660bcf77b9327e2e">39f50bff</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-11T22:40:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refine the GHCI macro into HAVE[_{INTERNAL, EXTERNAL}]_INTERPRETER

As discussed in #16331, the GHCI macro, defined through 'ghci' flags
in ghc.cabal.in, ghc-bin.cabal.in and ghci.cabal.in, is supposed to indicate
whether GHC is built with support for an internal interpreter, that runs in
the same process. It is however overloaded in a few places to mean
"there is an interpreter available", regardless of whether it's an internal
or external interpreter.

For the sake of clarity and with the hope of more easily being able to
build stage 1 GHCs with external interpreter support, this patch splits
the previous GHCI macro into 3 different ones:

- HAVE_INTERNAL_INTERPRETER: GHC is built with an internal interpreter
- HAVE_EXTERNAL_INTERPRETER: GHC is built with support for external interpreters
- HAVE_INTERPRETER: HAVE_INTERNAL_INTERPRETER || HAVE_EXTERNAL_INTERPRETER
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/45616133efba0c17a461ecf085427b7956250fad">45616133</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-06-11T22:41:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make `haddock_testsuite` respect `--test-accept`

Suppose you've made changes that affect the output of `haddockHtmlTest`
so that the following is failing:

    ./hadrian/build.sh -c --only=haddockHtmlTest test

Then, the following will accept new output for Haddock's test cases.

    ./hadrian/build.sh -c --only=haddockHtmlTest test --test-accept

You still do need to make sure those new changes (which show up in
Haddock's tree) get committed though.

Fixes #16694
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/762098bf2cfac657c0320249f62dc49bad77f7bf">762098bf</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-11T22:41:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/RtsFlags.c: mention that -prof too enables support for +RTS -l
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/457fe7897d42e4359b6da6b359fd7ea8ae0f1d75">457fe789</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-11T22:42:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: teach the RTS that PROFILING implies TRACING

As discussed in #16744, both the Make and Hadrian build systems
have special code to always pass -eventlog whenever -prof or -debug
are passed. However, there is some similar logic in the RTS itself only
for defining TRACING when the DEBUG macro is defined, but no such logic
is implemented to define TRACING when the PROFILING macro is defined.
This patch adds such a logic and therefore fixes #16744.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cf7f36ae5e0ceee1c37a4c38464209f04647a470">cf7f36ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-11T22:43:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/linker: Mmap into low memory on AArch64

This extends mmapForLinker to use the same low-memory mapping
strategy used on x86_64 on AArch64. See #16784.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b7f81f560c602f32cfc90fd3fb5f1c52f06ad49">0b7f81f5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-11T22:43:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/linker: Use mmapForLinker to map PLT

The PLT needs to be located within a close distance of
the code calling it under the small memory model.

Fixes #16784.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1389b2ccdecb0ea7a8982884512dbf7175a52042">1389b2cc</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-11T22:43:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix an error message in CheckUnload.c:searchHeapBlocks
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/aad6115aed884db9ed47ac602ca1bd3b953ea089">aad6115a</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-11T22:44:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/mk/boilerplate.mk: rename 'ghc-config-mk' to 'ghc_config_mk'

Make/shell variable names which contain dashes can cause problems under
some conditions. The 'ghc-config-mk' variable from testsuite/mk/boilerplate.mk
that I made overridable (by Hadrian) in ba0aed2e was working as expected when
our Hadrian/Linux job was based off the deb8 Docker image, but broke when
I switched the job to use our deb9-based image, in 3d97bad6. The exact
circumstances/tool versions that trigger this problem are unknown, but
changing the variable's name to 'ghc_config_mk' lets us work around the issue.

This fixes the annth_compunits and annth_make test failures that showed up
when we switched the Hadrian/Linux job to use the deb9 environment.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b4ff57d71eebf6dd71a5d81d0f9c9c2aef80e65">9b4ff57d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T11:35:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">llvm-targets: Add armv7l-unknown-linux-gnueabi

Fixes #15208.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c05ca251620ff2589f21192208a1e500285eb5c3">c05ca251</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T11:36:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add haddock perf test output to gitignore

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bbc752c50f3adcb659cd8447635828e137a0a314">bbc752c5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T11:36:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/linker: Make elf_got.c a bit more legible
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/217e6db4af6752b13c586d4e8925a4a9a2f47245">217e6db4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T11:36:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/linker: Only mprotect GOT after it is filled

This fixes a regression, introduced by 67c422ca, where we mprotect'd the
global offset table (GOT) region to PROT_READ before we had finished
filling it, resulting in a linker crash.

Fixes #16779.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1219f8e8a3d1b58263bea76822322b746a632778">1219f8e8</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-06-12T11:37:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use DeriveFunctor throughout the codebase (#15654)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bd2d13ff778a4b1b5d793c99229cccfb64d792f3">bd2d13ff</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump binary to 0.8.7.0

(cherry picked from commit 983ada70a013c7642a751f6e41587ff95b57d0f8)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/381c3ae31b68019177f1cd20cb4da2f9d3b7d6c6">381c3ae3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump Cabal submodule

(cherry picked from commit ff438786613f07df9b2d43eaeac49b13815d849d)

Metric Increase:
    haddock.Cabal
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0354c7ded874f18c177e9154615c9dfdf1d99d8a">0354c7de</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump time submodule to 1.9.3

(cherry picked from commit fdb07571036b1498800589d45b61781e6acdd368)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e0b16eaa856bc126ee6676b0c5e40fb01c6558f6">e0b16eaa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump terminfo to 0.4.1.4

(cherry picked from commit 1134488b4c9cef904ea82f22f1978646eea612df)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ce320b07ca9171d132b748ecbc3d7fdee4840b8">2ce320b0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Test using slowtest in deb9-debug job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/90e7c450ce9b9b1ec36ea12ef8041d8e7f192c36">90e7c450</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark hWaitForInput-accurate-stdin as broken in threaded ways

As noted in #16535.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/488187f81babf0b0937aec0c81b132563cbbec4e">488187f8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T13167 as fragile in threaded2

As noted in #16536.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b5833208bdbac027c960da13bb4184125d596a5">9b583320</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T13910 as broken in optasm

Due to #16537.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/eb644865b1f5723ddc4e5a1c0187a116fa4cb175">eb644865</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T14761c as broken in hpc, profasm, and optasm ways

As noted in #16540.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1a204e07119ed81fc593457372229bef26f48dbe">1a204e07</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16180 as broken in ghci and ext-interp ways

As noted in #16541.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8d482e45590d01e6779f6f675911ffa1067ad981">8d482e45</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:19:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Omit tcrun022 in hpc way

As noted in #16542, the expected rule doesn't fire. However, this
doesn't seem terribly surpring given the circumstances.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/68cfdfdb8775ff28a20131248beec7ac0906aeac">68cfdfdb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark Overflow as broken in hpc way

As noted in #16543.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a3929a4fa7d38153ba8ced674af78e073d3078aa">a3929a4f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T2783 as fragile in threaded1

It was previously marked as broken but it passes non-deterministically.
See #2783.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb7ed32f2a147007a224928534a7c461e5a6d429">bb7ed32f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip T7919 in ghci way

It times out pretty reliably. It's not clear that much is gained by
running this test in the ghci way anyways.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/329dcd7a59e7d46cb5110e1dfb9f8b7f50f0e3a2">329dcd7a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix fragile_for test modifier
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/55b5bb14b9a2487bab80411776ae34c143eddb1a">55b5bb14</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix omit_ways usage

omit_ways expects a list but this was broken in several cases.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/264ad286086041f52d841ff4fe7c342a242b033d">264ad286</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark threadstatus-T9333 as fragile in ghci way

As noted in #16555.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/587bef669c600a0e5b57d69c971304dc9c8b9923">587bef66</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Omit profasm way for cc017

cc017 requires TH but we can't load dynamic profiled objects.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dc5a37fdc27e3420b3e6fd2fa6674cc172daaaae">dc5a37fd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip T493 in ghci way.

T493 tests #493, which is an FFI test. FFI tests should be skipped
in ghci way.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e3f71d0e9e7d27b93b9fcd0e5b5d4cacc6718d39">e3f71d0e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16449_2 as broken due to #16742
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b5a13a1e40da43d115786bac3a7f8bf0e7849db1">b5a13a1e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16737 as broken in ghci way due to #16541
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b09374a4a839c2587a738698133465c4b9277c3b">b09374a4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Note intentional typo in T7130

I earlier accidentally corrected it breaking the test.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a798c130b3adc6c336856243a14175d4bd7c770f">a798c130</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">linters/check-makefiles: Limit lint to Makefiles

Previously we would apply this rule, which is only intended for
testsuite Makefiles, to all files. This lead to a number of
false-positives in all.T files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0782141ef52c72523b82cd83b7466a3a65d94a31">0782141e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fetch submodules before running submodule linter
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/898f7e9235eff57ececac4836f6ba74388131db2">898f7e92</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix uses of #ifdef/#ifndef

The linter now enforces our preference for `#if defined()` and
`#if !defined()`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0a13a04c98c9b11bbd72992354a6f33d3274bb1a">0a13a04c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump unix submodule

Marks posix002 as fragile in threaded2 way due to #16550.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a8579e5b3fadcc7d17e97016b3ea57e78b6a1b78">a8579e5b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:27:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">process: Bump submodule

 * Skip process005 in ghci way
 * Mark process002 as fragile in threaded2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3f1022c514cf2a89f4b329a898467872315477b2">3f1022c5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:27:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip cgrun078 in ghci way

This test requires FFI usage.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1cbfef47f0288a0f55e8f3db71076afd190121ca">1cbfef47</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:27:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Unbreak galois_raytrace on i386

galois_raytrace was previously broken on i386 due to use of x87
arithmethic on that platform. However,
42504f4a575395a35eec5c3fd7c9ef6e2b54e68e removes x87 support; this
resulted in an unexpected pass. Unmark this test as broken.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/20160f1a8a8ed69c168bee5c8d43373191303b3f">20160f1a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T12:27:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Don't run tests requiring TH in profasm way when GhcDynamic

Since we can't load profiled objects when GhcDynamic==YES. Affects:

* T16737
* T16384
* T16718
* T16619
* T16190
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0a3b1eecdfae9697bd5a5d910337ffcb5dd57104">0a3b1eec</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T18:43:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Run nofib on binary distributions

Updates docker images to ensure that the `time` utility is available.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#45c43932d0fb2a4ffce85cea15daa18255dc546d">
.circleci/prepare-system.sh
</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="#94d74d443c79a6f0e3f44097cf3dd2f1a34bdcbe">
.gitlab/linters/check-makefiles.py
</a>
</li>
<li class="file-stats">
<a href="#e744be31242d2de56a037bead48e7046d28c2059">
.gitlab/linters/linter.py
</a>
</li>
<li class="file-stats">
<a href="#b1f70e577fa0a01f44737b27f60defa4c87c49e3">
<span class="deleted-file">

ANNOUNCE
</span>
</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="#8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d">
README.md
</a>
</li>
<li class="file-stats">
<a href="#9ab3868b23ed5d5a6e12ef902049902556fa4009">
aclocal.m4
</a>
</li>
<li class="file-stats">
<a href="#5ff00f934d07acf05ecddc1e6f7a6c7a37128132">
compiler/backpack/DriverBkp.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="#6f7593803995899e68e1b976dcde5817ec0f2342">
compiler/basicTypes/IdInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#2f8fee2abca5d63f3b2a113efc849e4e6054c49a">
compiler/basicTypes/MkId.hs
</a>
</li>
<li class="file-stats">
<a href="#49d2d51d42e9c209de33c35681b9c9b1e912cda9">
compiler/basicTypes/NameEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#2da47fed955dc80b79c67ba640b94aeecf9d5524">
compiler/basicTypes/UniqSupply.hs
</a>
</li>
<li class="file-stats">
<a href="#75c960e63e855ede311c1cf6d407b2bf0b742333">
compiler/basicTypes/Var.hs
</a>
</li>
<li class="file-stats">
<a href="#db6936871693fa68c3fdcbd692eb7dcffc3a9372">
compiler/cmm/CLabel.hs
</a>
</li>
<li class="file-stats">
<a href="#8131b096a76ab4cb878cbed760d2810c8d6e8d75">
compiler/cmm/CmmInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#8d4ba78353a7c0418f662623b049e828177492a8">
compiler/cmm/CmmLint.hs
</a>
</li>
<li class="file-stats">
<a href="#6baddca1d1d357c81c329f9a5877a1772b0086e9">
compiler/cmm/CmmMachOp.hs
</a>
</li>
<li class="file-stats">
<a href="#d50336124f51fb97043e81d9968bd8f97ee870f4">
compiler/cmm/CmmType.hs
</a>
</li>
<li class="file-stats">
<a href="#ea8bbb0a899d95f501cc47d9394f2f8dd3763b18">
compiler/cmm/Hoopl/Block.hs
</a>
</li>
<li class="file-stats">
<a href="#bb9db6a6d17619856f0592be800a5f754007b3b6">
compiler/cmm/MkGraph.hs
</a>
</li>
<li class="file-stats">
<a href="#61470c7221010080ec380a45874259d0ed73da4a">
compiler/cmm/PprC.hs
</a>
</li>
<li class="file-stats">
<a href="#57ca2ad8c215a4b7d1d74a244d031fcdc3d3bf30">
compiler/cmm/PprCmmDecl.hs
</a>
</li>
<li class="file-stats">
<a href="#c569fe5eb9284314e129c104f265fe360a4b1d3d">
compiler/codeGen/StgCmmExpr.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/34fe87347f9110051a5379a982d779e91c7af4ce...0a3b1eecdfae9697bd5a5d910337ffcb5dd57104">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>