<!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/gc/aging
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/c9fe14cc0a1fb808763c9d1bcd5451443f684cdf">c9fe14cc</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-22T17:11:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update transformers module
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/54a50a6e0c1254579cf22a08bde0f28f9bd9d8ce">54a50a6e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Reenable Hadrian build on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5fcee8aa7666fb5a843c275b49c77f9ed678fb81">5fcee8aa</a></strong>
<div>
<span>by Ben Price</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users guide: consistent spelling of inlinable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/395c8eaaf88608aad7cf255402d60eb12a33d11c">395c8eaa</a></strong>
<div>
<span>by Ben Price</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users guide: fix typesetting of pragmas
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cfe64019a70acc1bae76f2fa580d6654f8eb5bc4">cfe64019</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix hadrian prof flavour so that it builds a profiled version of GHC
In Alp's refactoring of `getProgramContexts` he removed a call to
`getProgramContext` which was where the logic for this used to be
implemented.
Fixes #16214
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33aba19158518eb767f23dbc9ef6084ec3c8c52f">33aba191</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor typo in docs for KProxy
really minor, but it annoyed me when reading it :-)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b19ee0e900a468992e00a586616a3c7a993ade21">b19ee0e9</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add myself to CODEOWNERS for a few files
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/512a5f365b774a999c81ff45b951edb7a56262e4">512a5f36</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Ensure that config.{msys,cygwin} are initialized
Reviewers: monoidal
Reviewed By: monoidal
Subscribers: monoidal, rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5056
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d26869ac83935432e0dcea1ff591268232daef32">d26869ac</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: install patches 'haddock-{html,interface}'
Since the `$(docdir)` can be picked independently from the `$(libdir)`,
we need to make sure that that the `haddock-html` and `haddock-interface`
fields in the package DB (which is in the `$(libdir)`) get updated to
point to the appropriate places in the `$(docdir)`.
NB: in the make system, `ghc-cabal` would cover this sort of thing by
re-running `configure` on installation, but here we get away with a
couple lines of `sed` and a call to `ghc-pkg recache`.
Fixes #16202.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b705fadf936eaf48aaca26d2f7c8c9ae9158c66">0b705fad</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark ghci063 as broken on Darwin
This is the last failing test on Darwin preventing us from disallowing CI
failures. See #16201.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57142eb92bf74d4b5daf316b73b9c2fc39ce0b16">57142eb9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16180 as broken on Darwin
See #16218.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/daff24bc74c1fed7efb1acde2d8f90dc9621a308">daff24bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disallow failure
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/efc95841503a78504c0aa00925fb22c4ec4627af">efc95841</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: support in-tree GMP
Summary:
This adds top-level configure flags '--with-intree-gmp' and
'--with-framework-preferred', both of which are especially relevant
on MacOS.
Besides gaining two new flags, Hadrian also had to be taught what to
do with the 'framework' in .cabal files.
Test Plan:
./boot && ./configure --with-intree-gmp && ./hadrian/build.sh
./boot && ./configure --with-gmp-framework-preferred && ./hadrian/build.sh # on macos
Reviewers: carter, snowleopard, alpmestan, hvr, goldfire, bgamari
Subscribers: rwbarton, erikd
GHC Trac Issues: #16001
Differential Revision: https://phabricator.haskell.org/D5417
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cd45f8c471bb6901ac89babe98fca8e81f430d26">cd45f8c4</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Darwin CI to use new toplevel --with-intree-gmp configure flag
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a90a2aea94b306cf557e74c4c3ed65959d05c20c">a90a2aea</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Collect artifacts on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5341edf3635f2875271acc469570481c52000374">5341edf3</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Error out of invalid Int/Word bit shifts
Although the Haddock's for `shiftL` and `shiftR` do require the number
of bits to be non-negative, we should still check this before calling
out to primitives (which also have undefined behaviour for negative bit
shifts).
If a user _really_ wants to bypass checks that the number of bits is
sensible, they already have the aptly-named `unsafeShiftL`/`unsafeShiftR`
at their disposal.
See #16111.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c9a02dfc32ea4304c1c0d02bd8091fd5d045741f">c9a02dfc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Drop CircleCI jobs
It's pretty unlikely we will be going back to circleci at this point
[skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb2acfe0ec4c196a87218709ee28327845d62dc4">bb2acfe0</a></strong>
<div>
<span>by Gabor Greif</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">A few typofixes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b397e979768cce0acdb3597db50527566ac7b42d">b397e979</a></strong>
<div>
<span>by Gabor Greif</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor refactor [ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/35c58c33344b17469466e0e85324c9b02ac1af46">35c58c33</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip ghcilink002 when unregisterised
See #16085.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/886ddb27bfbbb52c41690cd29e2ab3ed80bf5450">886ddb27</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-23T19:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Explicitly clear dependencies of all jobs
Apparently GitLab CI defaults to declaring all jobs of the previous
stage as dependencies of a job. This meant that we would end up
downloading all of our binary distributions during the `cleanup` stage,
eating up a truly remarkable amount of S3 tranfers.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/571e45d6b5e13222133e52b3c3ca0ff8dfd6747a">571e45d6</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-01-25T03:34:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add Simon and Richard as more CODEOWNERS
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3cbee255cd550e49e3265257fd2955ce8e6a351a">3cbee255</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-01-26T17:44:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add @sgraf to CODEOWNERS
[skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1dd251b861c98c7b42a117b820afef5020745585">1dd251b8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add predicate for CPU feature availability
Previously testing code-generation for ISA extensions was nearly impossible
since we had no ability to determine whether the host supports the needed
extension. Here we fix this by introducing a simple /proc/cpuinfo-based
testsuite predicate. We really ought to
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/372b5d1b4543334d9b446dc897227b838e40cf4e">372b5d1b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #16104
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0d9f105ba423af4f2ca215a18d04d4c8e2c372a8">0d9f105b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GhcPlugins: Fix lookup of TH names
Previously `thNameToGhcName` was calling `lookupOrigNameCache` directly, which
failed to handle the case that the name wasn't already in the name cache. This
happens, for instance, when the name was in scope in a plugin being used during
compilation but not in scope in the module being compiled. In this case we the
interface file containing the name won't be loaded and `lookupOrigNameCache`
fails. This was the cause of #16104.
The solution is simple: use the nicely packaged `lookupOrigIO` instead.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fc44e0b205c71abe3ac615ad3b2a292b37d7fc34">fc44e0b2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Normalise style
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/236beacaeddd19d03af61cfbb3d8a3850e97b3e7">236beaca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Remove directories that already exist when seeding extra_files
Otherwise the testsuite driver crashes when run multiple times with CLEANUP=NO
on a test containing such extra_files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/55bbe9cca2ef4bb0b6fa7eafd00e7aa20a667849">55bbe9cc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark hWaitForInput-accurate-socket as requiring unix
It imports System.Posix.IO.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f75c86ab6687278547e2924fddda0192c65bb512">f75c86ab</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update binary submodule to latest master branch tip
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d0b8a16e388480306c5a07f8bd5172cff84138d4">d0b8a16e</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Cabal submodule to latest master branch tip
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5cb071af5b02b7433b2bb4d06062ac8b6fb387e8">5cb071af</a></strong>
<div>
<span>by Adam Sandberg Eriksson</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: use new-exec to make sure alex & happy are in PATH (#16120)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3cf12e6081e7a9f0c3d515de52ffd079186816a5">3cf12e60</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">check-api-annotations checks for annotation preceding its span
For an API annotation to be useful, it must not occur before the span
it is enclosed in.
So, for check-api-annotation output, a line such as
((Test16212.hs:3:22-36,AnnOpenP), [Test16212.hs:3:21]),
should be flagged as an error, as the AnnOpenP location of 3:21
precedes its enclosing span of 3:22-26.
This patch does this.
Closes #16217
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/022a71761a84aec2a2e62e18bd481ac057b5b8a0">022a7176</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip T1288_ghci in unregisterised
As pointed out in #16085, these ghci tests are fragile in the unregisterised
way.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dc6fd390c64a2ee7c3df1da116504a5faf0afea5">dc6fd390</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip foreignInterruptible in unregisterised way
See #15467.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/def84a10dd9db34d86284cb0b8358261034eecc4">def84a10</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-27T13:32:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add tests from #11982
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/18bd27243a1bac10701fde8f3a01e83d571958ac">18bd2724</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-01-27T13:32:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add myself to a few more places
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/019127b887d89a686dac162348d16da88c0d2d1b">019127b8</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-01-27T13:32:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update CODEOWNERS
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7164384c26e9d177304ab77fdf6c16431832d7f">e7164384</a></strong>
<div>
<span>by Simon Marlow</span>
<i>at 2019-01-27T13:32:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add @simonmar to various things in CODEOWNERS
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10faf44d97095b2f8516b6d449d266f6889dcd70">10faf44d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-01-27T13:32:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't overwrite the set log_action when using --interactive
-ddump-json didn't work with --interactive as --interactive overwrote
the log_action in terms of defaultLogAction.
Reviewers: bgamari
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #14078
Differential Revision: https://phabricator.haskell.org/D4533
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b89b6e71c798996724ba99f273f88d8a3637fb8d">b89b6e71</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-28T04:26:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix incorrectly named configure options
Although we should use 'AC_ARG_ENABLE' for boolean flags, it also
means options get named '--enable-*', not '--with-*'. This should
unbreak the --with-intree-gmp option.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7223b44df3212984c6f013e129afcdc2ab170ff3">7223b44d</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-01-28T04:27:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix regDotColor for amd64.
Add missing color mappings to regDotColor for amd64.
Also set fakeRegs to red instead of xmm regs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f8605fa2b36bb7ff462ce9b12d1dbf23c9503f00">f8605fa2</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-01-28T04:28:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update CODEOWNERS files with utils
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6da9f4c8df7a216234ef50104e400cdcbfbc1bd4">6da9f4c8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-28T04:30:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix Windows cleanup command line
Why is it so hard to delete a directory's contents without deleting the
directory itself in Windows? This will forever remain a mystery.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/79a5afb613235e93bc2c580987595b9c1324db15">79a5afb6</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-01-28T04:30:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test that hsc2hs works with promoted data constructors
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/77974922eb4390899cb151de840308c5fe87949b">77974922</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-01-28T04:33:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Some refactoring in tcInferApps
Should be no change in behavior, but this makes the control
flow a little more apparent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b1e569a54085bf1093b4f858f8c7c739e3be769b">b1e569a5</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-01-28T17:23:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use sigPrec in more places in Convert and HsUtils
Trac #16183 was caused by TH conversion (in `Convert`) not properly
inserting parentheses around occurrences of explicit signatures where
appropriate, such as in applications, function types, and type family
equations. Solution: use `parenthesizeHsType sigPrec` in these
places. While I was in town, I also updated `nlHsFunTy` to do the
same thing.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7cdcd3e12a5c3a337e36fa80c64bd72e5ef79b24">7cdcd3e1</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-01-28T21:53:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #12509: ghci -XSafe fails in an inscrutable way
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76c8fd674435a652c75a96c85abbf26f1f221876">76c8fd67</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-30T06:06:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Batch merge
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/172a59335fa6c76b17fb6795e87fbc7fcfd198e6">172a5933</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-30T15:05:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Batch merge"
This reverts commit 76c8fd674435a652c75a96c85abbf26f1f221876.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bdb559a60a18318b6130f399f158739118237f9b">bdb559a6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Introduce makefile_test
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/513a449c9dd10887d6dc757d55286749b2594b09">513a449c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Use makefile_test
This eliminates most uses of run_command in the testsuite in favor of the more
structured makefile_test.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cc2261d42f6a954d88e355aaad41f001f65c95da">cc2261d4</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Performance tests: recover a baseline from ancestor commits and CI results.
gitlab-ci: push performance metrics as git notes to the "GHC Performance Notes" repository.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c1d9416f2672b8d844141c0393fe773676749777">c1d9416f</a></strong>
<div>
<span>by Dmitry Ivanov</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Compile count{Leading,Trailing}Zeros to corresponding x86_64 instructions under -mbmi2
This works similarly to existing implementation for popCount.
Trac ticket: #16086.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cfbd39bd405b4cedd3ee10a6d4a2bdd89b6e2e2d">cfbd39bd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Use build cleanup logic on Darwin as well
We use the shell executor on Darwin as well as Windows.
See https://gitlab.com/gitlab-org/gitlab-runner/issues/3856.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/924a46075aa5d1835ea37b199f77d605cbc0cf05">924a4607</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid compiling Hadrian dependencies with profiling on Cabal/Windows</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c85d708c36d6a362d45a4e47ae3fefe18120df89">c85d708c</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Avoid compiling Hadrian dependencies with profiling on Cabal/Linux</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f00b35f4ddcc61fb1b1f09854bbbf38934ff0865">f00b35f4</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-01-30T15:06:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">make ghc-pkg shut up
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6fa38663d1abb22e988159ce3f80c824de3b243d">6fa38663</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use `NameEnv Id` instead of `Map Name Id`
This is more consistent with the rest of the GHC codebase.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5ed48d25decc9dec29659482644b136cff91606e">5ed48d25</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include type info for only some exprs in HIE files
This commit relinquishes some some type information in `.hie` files in
exchange for better performance. See #16233 for more on this.
Using `.hie` files to generate hyperlinked sources is a crucial milestone
towards Hi Haddock (the initiative to move Haddock to work over `.hi`
files and embed docstrings in those). Unfortunately, even after much
optimization on the Haddock side, the `.hie` based solution is still
considerably slower and more memory hungry than the existing implementation
- and the @.hie@ code is to blame.
This changes `.hie` file generation to track type information for only
a limited subset of expressions (specifically, those that might eventually
turn into hyperlinks in the Haddock's hyperlinker backend).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7e5f4aebec2f095071a1949bb4595744754ee04">e7e5f4ae</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Only build vanilla way in devel2 flavour
Fixes #16210
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4bf35da4fccd2a21153a1c19bfa80006e99e02a1">4bf35da4</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">API Annotations: Parens not attached correctly for ClassDecl
The parens around the kinded tyvars should be attached to the class
declaration as a whole, they are attached to the tyvar instead,
outside the span.
An annotation must always be within or after the span it is contained
in.
Closes #16212
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e29b1ee72d77d5a06ac949f9dcc80108243a25c0">e29b1ee7</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a RTS option -xp to load PIC object anywhere in address space
Summary:
This re-applies {D5195} with fixes for i386:
* Fix unused label warnings, see {D5230} or {D5273}
* Fix a silly bug introduced by moving `#if`
{P190}
Add a RTS option -xp to load PIC object anywhere in address space. We do
this by relaxing the requirement of <0x80000000 result of
`mmapForLinker` and implying USE_CONTIGUOUS_MMAP.
We also need to change calls to `ocInit` and `ocGetNames` to avoid
dangling pointers when the address of `oc->image` is changed by
`ocAllocateSymbolExtra`.
Test Plan:
See {D5195}, also test under i386:
```
$ uname -a
Linux watashi-arch32 4.18.5-arch1-1.0-ARCH #1 SMP PREEMPT Tue Aug 28
20:45:30 CEST 2018 i686 GNU/Linux
$ cd testsuite/tests/th/ && make test
...
```
will run `./validate` on stacked diff.
Reviewers: simonmar, bgamari, alpmestan, trommler, hvr, erikd
Reviewed By: simonmar
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5289
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/740534d43cf9f1635c60f6311b7e0d89af962617">740534d4</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allocate bss section within proper range of other sections
Summary:
This re-applies {D5195} and {D5235}, they were reverted as part of diff
stack to unbreak i386. The proper fix is done in {D5289}.
Allocate bss section within proper range of other sections:
* when `+RTS -xp` is passed, allocate it contiguously as we did for
jump islands
* when we mmap the code to lower 2Gb, we should allocate bss section
there too
Test Plan:
1. `./validate`
2.
with
```
DYNAMIC_GHC_PROGRAMS = NO
DYNAMIC_BY_DEFAULT = NO
```
`TEST="T15729" make test` passed in both linux (both i386 and x86_64) and macos.
3.
Also test in a use case where we used to encouter error like:
```
ghc-iserv-prof: R_X86_64_PC32 relocation out of range: (noname) =
b90282ba
```
and now, everything works fine.
Reviewers: simonmar, bgamari, angerman, erikd
Reviewed By: simonmar
Subscribers: rwbarton, carter
GHC Trac Issues: #15729
Differential Revision: https://phabricator.haskell.org/D5290
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e96aa2d503ddeeef1fa1f37b45d5c744522b64d">6e96aa2d</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-01-30T15:06:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't use X86_64_ELF_NONPIC_HACK for +RTS -xp
Summary:
When `+RTS -xp` is passed, when don't need the X86_64_ELF_NONPIC_HACK,
becasue the relocation offset should only be out of range if
* the object file was not compiled with `-fPIC -fexternal-dynamic-refs`;
* ghc generates non-pic code while it should (e.g. #15723)
In either case, we should print an error message rather that silently
attempt to use a hacky workaround that may not work.
This could have made debugging #15723 and #15729 much easier.
Test Plan:
Run this in a case where ghci used to crash becasue of T15723. Now we
see helpful message like:
```
ghc-iserv-prof: R_X86_64_PC32 relocation out of range:
stmzm2zi4zi4zi1zmJQn4hNPyYjP5m9AcbI88Ve_ControlziConcurrentziSTMziTMVar_readTMVar_C61n_cc
= 9b95ffac
```
Reviewers: simonmar, bgamari, erikd
Reviewed By: simonmar, bgamari
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5233
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/deab6d64eac085b2e0ec68bfb3eeeda608dfb85a">deab6d64</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-01-31T11:02:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix syntax in CODEOWNERS file
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4fa32293c9d2658ce504b8fe6d909db2acf59983">4fa32293</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ByteString to represent Cmm string literals (#16198)
Also used ByteString in some other relevant places
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d887f3749c4c9c0f30fb9805cf8953efbcd44b82">d887f374</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Optimize pprASCII
* Use `ByteString.foldr` instead of `(List.foldr . BS.unpack)`
* Avoid calling `chr` and its test that checks for invalid Unicode
codepoints: we stay in the ASCII range so we know we're ok
* Avoid calling `isPrint` (unsafe FFI call): we can check the ASCII
printable range directly
* Use bit operations (`unsafeShiftR`, `.&.`) instead of `div` and `mod`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98ff3010a642366ab8e0c563fc20debc8858dc83">98ff3010</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hWaitForInput-accurate-stdin test
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0593e9389c4e5fd4386ebd74a746ef9659401ac6">0593e938</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add -fdefer-diagnostics to defer and group diagnostic messages in make-mode
When loading many modules in parallel there can a lot of warnings and
errors get mixed up with regular output. When the compilation fails,
the relevant error message can be thousands of lines backward and is
hard to find. When the compilation successes, warning message is likely
to be ignored as it is not seen. We can address this by deferring the
warning and error message after the compilation. We also put errors
after warnings so it is more visible.
This idea was originally proposed by Bartosz Nitka in
https://phabricator.haskell.org/D4219.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/92c7e70ff3135b79485be2d36cfac3d2441c29df">92c7e70f</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use O2 on stage1 for faster overall build times with make.
Build times when using the quick flavour:
stage1 opt | time (wall) | time (user)
-O1 | 13m | 53m
-O2 | 13m | 51m
So even when we compile stage2 with -O0 (quick)
using -O2 on stage1 is already faster.
The difference is even bigger when freezing
stage1 and doing multiple builds or compiling
stage2 with optimizations.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1be81c50b51d0c9c651cbdd14bb7cf6884d011ff">1be81c50</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add O2 to hsCompiler on stage0 for most hadrian flavours.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e08974e81ccc84b5887d13cc4752fde9a78c51fb">e08974e8</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduce GhciMonad and generalize types of functions in GHCi.UI
Summary:
Introduce `GhciMonad`, which is bascially `GhcMonad` + `HasGhciState`.
Generalize the commands and help functions defined in `GHCi.UI` so they
can be used as both `GHCi a` and `InputT GHCi a`.
The long term plan is to move reusable bits to ghci library and make it
easier to build a customized interactive ui which carries customized state
and provides customized commands.
Most changes are trivial in this diff by relaxing the type constraint or
add/remove lift as necessary. The non-trivial changes are:
* Change `HasGhciState` to `GhciMonad` and expose it.
* Implementation of `reifyGHCi`.
Test Plan:
./validate
Reviewers: simonmar, hvr, bgamari
Reviewed By: simonmar
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5433
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5b970d8e06c1433066a8c587116f0b22c0f30e22">5b970d8e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #14828
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ff2d6018348c6d316b87c596a4010b316501b91c">ff2d6018</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace BlockSequence with OrdList in BlockLayout.hs
OrdList does the same thing and more so there is no reason
to have both.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/438c11cc5ef4b3afa4afe98dd649ce5fd93bb971">438c11cc</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Small optimizations to BlockLayout.
* Remove `takeL/R 1` occurences by lastOL/headOL.
* Make BlockChain a OrdList newtype by removing the set of blocks.
Initially BlockChain contained both, a set for membership test
and a ordered list of blocks. The set is not used for any
performance sensitive lookups so we get rid of it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4376d8811418d91bb4d19d61801e95a449b98378">4376d881</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PPC NCG: Promote integers to word size in C calls
Fixes #16222
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9bcef368fe64131aa407644e1a03a10fe36bc9bd">9bcef368</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update hsc2hs submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/038de6abf41b6fa9555af86e5b4837000da524a2">038de6ab</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update text submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/03030bcf46cde81cea6a263c6971bc9f68f97740">03030bcf</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update unix submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/edca78379f9f66a24adca63732f69f9ae45df69d">edca7837</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update deepseq submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/229f097d3343067ecd64bc989416b8d996809529">229f097d</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update haskeline submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ffd2035c34589d311e3dc96c8ff747122dfd592f">ffd2035c</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update parsec submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a9e14be001f9e3af68b66552afec6808bdb3bb9">4a9e14be</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update process submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/713271dbb031ad27b74f1675a2e776355d0bd484">713271db</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update stm submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/86734329c4e0bdf5a8c0e92930de21d8d777758d">86734329</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update terminfo submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/780bcdaf66db9d7103ded03773609074ad92df54">780bcdaf</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Update instructions for building on Windows
The `hadrian/doc/windows.md` file has falled out of date. In particular
it still points to the old GitHub repository, and uses incorrect path
to GHC. This patch fixes it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/21462a3a4edede710582b8038695667d2b9d0159">21462a3a</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-01-31T17:46:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Fix outdated link.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ebe2d344899e2165182d3c41b0796ec022561790">ebe2d344</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-01T00:47:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Performance tests: recover a baseline from ancestor commits and CI results."
Unfortunately this has broken all future commits due to spurious(?)
performance changes which I have been unable to work around.
This reverts commit cc2261d42f6a954d88e355aaad41f001f65c95da.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d6d735c1114082b9e9cc1ba7da87c49f52891320">d6d735c1</a></strong>
<div>
<span>by Edward Z. Yang</span>
<i>at 2019-02-01T01:02:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16219: TemplateHaskell causes indefinite package build error
It should work to write an indefinite package using TemplateHaskell,
so long as all of the actual TH code lives outside of the package.
However, cleverness we had to build TH code even when building
with -fno-code meant that we attempted to build object code for
modules in an indefinite package, even when the signatures were
not instantiated. This patch disables said logic in the event
that an indefinite package is being typechecked.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
Test Plan: validate
Reviewers: simonpj, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #16219
Differential Revision: https://phabricator.haskell.org/D5475
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ef6b28339b18597a2df1ce39116f1d4e4533804c">ef6b2833</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-01T11:46:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove ExnStr and ThrowsExn business
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f0cd728fde9bb582930a616cff8d0c5a178c5e14">f0cd728f</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-02T00:10:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject oversaturated VKAs in type family equations
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6dae133fc049fe7a91414cb4ff1afe2db8e91984">6dae133f</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-02T19:02:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update user-settings.md with a pointer to `Packages`
[skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97231c3531d01aa6a459f32e570095404b3ea882">97231c35</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-02T19:03:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Polished Note [Exceptions and strictness]
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d79cd152161ec090f8408ef3b499cd48231d498">2d79cd15</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-03T03:05:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Turn on -Werror when validating
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/558550a671f9be2207aeaf4f60f607236ccb840f">558550a6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-03T03:05:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused imports
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/45bd04d6fde909c66c2ab2347724f36bf2590e6f">45bd04d6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-03T03:05:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hsc2hs for removed unused match
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71dae4eb1a4891fc1a428caf70a06830864ffdc3">71dae4eb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-03T03:05:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Turn on -Wno-unused-imports in make build system
This mirrors Hadrian and it good enough to get us unstuck.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/59d622d7f1a982e5f24bb0eb8e72121d3ef2270c">59d622d7</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-02-03T08:14:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: change meta-variable of -interactive-print from expr to name
`-interactive-print` doesn't accept **expr** as `-e` or `:def` does. It must
be a qualified or unqualified **name** in scope.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/59516e4bbfc0baaa71c83fcd4493c27c422e5d57">59516e4b</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-03T13:39:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix missing space in ppr_cmd for HsCmdArrForm
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8dcd00cef7782c64b5484b106f4fd77c8c87e40a">8dcd00ce</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-03T19:20:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add werror function to Flavour.hs
This function makes it easy to turn on `-Werror` in the correct manner
to mimic how CI turns on -Werror.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/eeabeb92a62b86c6140d901c541355d70ec6a5a6">eeabeb92</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-04T03:10:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Report multiple errors
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/461c447db50ba3f7ded59f73e3b5342212089fb2">461c447d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-04T06:52:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip T15897 in unregisterised way
As noted in #16227 this test routinely times out when run in the
unregisterised way.
See also #15467.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e0c0bde401cca7707678377243648551d1504bdd">e0c0bde4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-04T06:52:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Use makefile_test for T16212
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/626b63b28a91b26b51ad47e56fdd7bcfd61e7327">626b63b2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-04T11:30:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark print037 as broken when GHC is built with LLVM
As noted in #16205 this configuration reliably segfaults.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ef25b59a97f419a2ad6457f696e32aef9ffb3a0f">ef25b59a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-04T11:30:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't allow x86_64-linux-deb9-llvm to fail
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/406e43af2f12756c80d583b86326f760f2f584cc">406e43af</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-02-04T16:04:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-fplugin-trustworthy` to avoid marking modules as unsafe
By default, when a module is compiled with plugins, it will be marked as
unsafe. With this flag passed, all plugins are treated as trustworthy
and the safety inference will no longer be affected.
This fixes Trac #16260.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab4934230bb12451f8990d063906f24ab072addc">ab493423</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-05T12:23:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor splice_exp in Parser.y
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e88e083d62389d5c8d082a25395a3d933ab2f03b">e88e083d</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-06T00:57:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #14579 by defining tyConAppNeedsKindSig, and using it
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9292a183fd031d81ac7027eb95dd5a46249845f8">9292a183</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-06T06:15:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add int-index as parser/* codeowner</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c07e7ecbdfc05429fb6ce84c547c0365d2754db7">c07e7ecb</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-06T10:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16287 by checking for more unsaturated synonym arguments
Trac #16287 shows that we were checking for unsaturated type synonym
arguments (in `:kind`) when the argument was to a type synonym, but
_not_ when the argument was to some other form of type constructor,
such as a data type. The solution is to use the machinery that
rejects unsaturated type synonym arguments (previously confined to
`check_syn_tc_app`) to `check_arg_type`, which checks these other
forms of arguments. While I was in town, I cleaned up
`check_syn_tc_app` a bit to only invoke `check_arg_type` so as to
minimize the number of different code paths that that function could
go down.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c32de5f4f85bffb07cdd6e8c99b4789e1952b16e">c32de5f4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Add a devel2 build
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0620e59aa2ffff81e13c17c0421c11bd2a8eeee7">0620e59a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: More aggressive artifact expiration
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/701cfb3e658b64f136f66529c7cb8fa6987076ce">701cfb3e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "gitlab-ci: More aggressive artifact expiration"
This reverts commit d87b38a2519212aaf8bad927c65abecc509a7212.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/606db8c2580d40157e0aa6a9352b3d2e18ab6bc6">606db8c2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T11334b as broken in debugged compiler
As noted in #16112.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7e495b402f8350a856abcb2a8a58d694c03c5367">7e495b40</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark recomp007 as broken in debugged compiler
As noted in #14759, this triggers a warning in ListSetOps.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71d5ab07fe413fb0d9b04b6b55abc6055c1f0a2e">71d5ab07</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T14740 and tcfail159 as broken in debugged compiler
As noted in #16113, these trigger an assertion in isUnliftedRuntimeRep.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/aad05fb3b36b93b919622f8a6dc032109d040d16">aad05fb3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-07T06:55:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T5515 as broken with debugged compiler
As noted in #16251.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2b90356d26b4699227816ad9424e766eccdb6c36">2b90356d</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-02-08T15:59:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #14729 by making the normaliser homogeneous
This ports the fix to #12919 to the normaliser. (#12919 was about
the flattener.) Because the fix is involved, this is done by
moving the critical piece of code to Coercion, and then calling
this from both the flattener and the normaliser.
The key bit is: simplifying type families in a type is always
a *homogeneous* operation. See #12919 for a discussion of why
this is the Right Way to simplify type families.
Also fixes #15549.
test case: dependent/should_compile/T14729{,kind}
typecheck/should_compile/T15549[ab]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/03b7abc19c8b0ec5c606cc2da208d2d004807fe9">03b7abc1</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-02-08T16:00:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow resizing the stack for the graph allocator.
The graph allocator now dynamically resizes the number of stack
slots when running into the limit.
This fixes #8657.
Also loop membership of basic blocks is now available
in the register allocator for cost heuristics.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/14eb23c1f123e6b8f69148a01fa8c73aee939cb7">14eb23c1</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-08T16:00:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update hpc submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bac64c3253c66f9f95a6e5476ccb6a47badc6e1c">bac64c32</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-02-08T16:00:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: compile libgmp static on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d97f0db8fa6c5d9a4c90c6096b01a76da07cfb2b">d97f0db8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-02-08T16:00:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix test for T16180 on Darwin (fix #16128)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ee5229834dc5e15cd1eea8427b0e00c50d0fa08b">ee522983</a></strong>
<div>
<span>by Langston Barrett</span>
<i>at 2019-02-08T16:00:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TestEquality instance for Compose
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a9bef62ba42056039cc55a68481ed01a5bece445">a9bef62b</a></strong>
<div>
<span>by Langston Barrett</span>
<i>at 2019-02-08T16:00:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a changelog for base 4.14.0.0
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/41df8e392ed5f9e02ec460b5037772d8ef46f4d4">41df8e39</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-08T16:00:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update filepath submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be8a803f8cd461bbf87df1fc0121fe41fa922e50">be8a803f</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-08T16:00:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update directory submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f17a5765075631b7057aba7c582ea72b28c42d9a">f17a5765</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ImplicitParams does not imply FlexibleContexts or FlexibleInstances, fixes #16248</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be15f7457b98fa0378de7e8146c122757f03c4e9">be15f745</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">API Annotations: more explicit foralls fixup
The AnnForall annotations introduced via Phab:D4894 are not always
attached to the correct SourceSpan.
Closes #16230
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cbfc9fcaa33c3b341830962906543dfca1dfedd7">cbfc9fca</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">API Annotations: AnnAt disconnected for TYPEAPP
For the code
type family F1 (a :: k) (f :: k -> Type) :: Type where
F1 @Peano a f = T @Peano f a
the API annotation for the first @ is not attached to a SourceSpan in
the ParsedSource
Closes #16236
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5e9888bd9c22a1315a703f638591b50e657317c4">5e9888bd</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">API Annotations: parens anns discarded for `(*)` operator
The patch from https://phabricator.haskell.org/D4865 introduces
go _ (HsParTy _ (dL->L l (HsStarTy _ isUni))) acc ann fix
= do { warnStarBndr l
; let name = mkOccName tcClsName (if isUni then "★" else "*")
; return (cL l (Unqual name), acc, fix, ann) }
which discards the parens annotations belonging to the HsParTy.
Updates haddock submodule
Closes #16265
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c1cf2693d6efddeeeb813cd8995a1be136800d17">c1cf2693</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Lexer: Alternate Layout Rule injects actual not virtual braces
When the alternate layout rule is activated via a pragma, it injects
tokens for { and } to make sure that the source is parsed properly.
But it injects ITocurly and ITccurly, rather than their virtual
counterparts ITvocurly and ITvccurly.
This causes problems for ghc-exactprint, which tries to print these.
Likewise, any injected ITsemi should have a zero-width SrcSpan.
Test case (the existing T13087.hs)
{-# LANGUAGE AlternativeLayoutRule #-}
{-# LANGUAGE LambdaCase #-}
isOne :: Int -> Bool
isOne = \case 1 -> True
_ -> False
main = return ()
Closes #16279
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7ff127f9e455402da183d1bb1808db024d1fa944">7ff127f9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-08T16:00:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/ProfilerReportJson: Fix format string
This was warning on i386.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ced729f6f4651b67151015e25a98c93792794aee">ced729f6</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-02-08T16:00:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cleanup in parser/Ctype.hs
* GHC now performs constant folding on bit operations like (.|.) so we
use them and we remove the misleading comment
* we use Word8 instead of Int and we remove the useless conversion to
Int32. Hopefully future releases of GHC could transform the big case in
`charType` into a value table indexing instead of a jump table. Word8
would make the table smaller.
* we use INLINABLE pragma instead of INLINE on `is_ctype`: in my test,
the latter *prevents* `is_ctype` to be inlined because `charType` is
inlined into `is_ctype` (to call charType`s worker on the unboxed Char
directly).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/071bef18ccafb134ab886da9e362689b9f092dd3">071bef18</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-08T16:00:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix optSemi type in Parser.y
The definition of 'optSemi' claimed it had type
([Located a],Bool)
Note that its production actually returns ([Located Token],Bool):
: ';' { ([$1],True) } -- $1 :: Located Token
Due to an infelicity in the implementation of 'happy -c', it effectively
resulted in 'unsafeCoerce :: Token -> a'.
See https://github.com/simonmar/happy/pull/134
If any consumer of 'optSemi' tried to instantiate 'a' to something not
representationally equal to 'Token', they would experience a segfault.
In addition to that, this definition made it impossible to compile Parser.y
without the -c flag (as it's reliant on this bug to cast 'Token' to 'forall
a. a').
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0a4bbb526688a97db0edbd5acc7471e3b139ed7d">0a4bbb52</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-02-08T16:00:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove a few undefined prel names
- breakpointAuto
- breakpointJump
- breakpointCondJump
- breakpointAutoJump
These Ids are never defined, but there were definitions about those in
PrelNames. Those are now removed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/616b2ef50d0a4c7cdcda97439936ea31b9a37d09">616b2ef5</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-08T16:00:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comments only
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cefb780ee7ae3c3be873324423358eafd4ba5a17">cefb780e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-08T16:00:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comments only about the binder-swap in OccurAnal
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9bb23d5f8bd7a135670864dfa09dd39a60e94d28">9bb23d5f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-08T16:00:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor refactor of CUSK handling
Previously, in getFamDeclInitialKind, we were figuring
out whether the enclosing class decl had a CUSK very
indirectly, via tcTyConIsPoly. This patch just makes
the computation much more direct and easy to grok.
No change in behaviour.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb031b9b046e48ffe0d2864ec76bee3bc8ff5625">fb031b9b</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-02-09T10:50:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stack: fix name mangling.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9170daa859ca5845b95acc88d10c127fb55d66fa">9170daa8</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-02-09T17:22:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace a few uses of snocView with last/lastMaybe.
These never used the first part of the result from snocView.
Hence replacing them with last[Maybe] is both clearer and
gives better performance.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f4d8e907b6b2e4110e1c6a21b34b1b46566ff6d5">f4d8e907</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-02-09T17:22:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve snocView implementation.
The new implementation isn't tailrecursive and instead
builds up the initial part of the list as it goes.
This improves allocation numbers as we don't build up an intermediate
list just to reverse it later.
This is slightly slower for lists of size <= 3. But in benchmarks
significantly faster for any list above 5 elements, assuming the
majority of the resulting list will be evaluated.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9adb7f64b37122d391247aa80227f68b41c11c77">9adb7f64</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-02-09T17:22:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify the build.stack.bat script to use 'stack run'
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/249b0babb08409311a56da0ef890445676927fb7">249b0bab</a></strong>
<div>
<span>by Neil Mitchell</span>
<i>at 2019-02-09T17:22:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Upgrade to the latest stack resolver
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3fcf79a47138661bb01276a94e3b6d934ba92d4d">3fcf79a4</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-10T07:39:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix inverted position pragma flag in parser API
The behviour of `lexTokenStream` around position pragma was
accidentally inverted in 469fe6133646df5568c9486de2202124cb734242.
This fixes that bug.
This also unbreaks #16239.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e67384f43060000f5e9e6b5cb7539bd5042835a9">e67384f4</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-10T07:39:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix invalid doc comment
The invalid doc comments were exposed by 24b39ce53eedad4cefc30f6786542d2072d1f9b0.
The fix is to properly escaped the `{-` and `-}` in the doc comments.
Some other miscallaneous markup issues are also fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/53a870f4a43591f15694701f2de771773ee8b5eb">53a870f4</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-10T07:39:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make CI via Hadrian build docs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/027017fb33923b106765f5a0a6fc000ebe421d40">027017fb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-02-10T07:39:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove ghctags (#16274)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a48753bdbc99cda36890e851950f5b79e1c3b2b2">a48753bd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-10T13:35:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Capture and simplify constraints arising from running typed splices
This fixes a regression caused by #15471 where splicing in a trivial
program such as `[|| return () ||]` would fail as the dictionary for
`return` would never get bound in the module containing the splice.
Arguably this is symptomatic of a major problem affecting TTH where we
serialise renamed asts and then retype check them. The reference to the
dictionary should be fully determined at the quote site so that splicing
doesn't have to solve any implicits at all. It's a coincidence this
works due to coherence but see #15863 and #15865 for examples where
things do go very wrong.
Fixes #16195
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/224fec6983e16ecfc44a80d47e591a2425468eaf">224fec69</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-10T13:37:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Report stdout and stderr in JUnit output
This patch makes the JUnit output more useful as now we also report the
stdout/stderr in the message which can be used to quickly identify why a
test is failing without downloading the log.
This also introduces TestResult,
previously we were simply passing around tuples, making things the
implementation rather difficult to follow and harder to extend.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f53ef1a72fdebeff19d4a4bd5552d25101c85147">f53ef1a7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-10T13:40:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Always skip T15897
See #16193.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07f5cbc8cc61436cd5f3e9280191bad5480203c5">07f5cbc8</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-02-10T13:42:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix Int overflow on 32 bit platform
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b1662e812c09b8b7c41b90415eecb0c7f215a09b">b1662e81</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-10T14:02:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add LLVM flavours
This adds a handful of LLVM flavours and the accompanying
documentation. These flavours are mostly uninteresting, but
exist in the Make system.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/180c9762d4565f0e8b192abf95d2bed57765e0c5">180c9762</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-11T13:25:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Report unexpected passes in junit output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/093fa2ff74579bf25375526ca54471d69f615004">093fa2ff</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-12T07:37:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update array submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6399965d7f1636db6c777f597192467f93d800b1">6399965d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-12T07:43:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add explicit dependencies to cleanup-darwin</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/012257c15f584069500af2953ab70856f9a1470e">012257c1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-12T07:50:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16293 by cleaning up Proxy# infelicities
This bug fixes three problems related to `Proxy#`/`proxy#`:
1. Reifying it with TH claims that the `Proxy#` type constructor has
two arguments, but that ought to be one for consistency with
TH's treatment for other primitive type constructors like `(->)`.
This was fixed by just returning the number of
`tyConVisibleTyVars` instead of using `tyConArity` (which includes
invisible arguments).
2. The role of `Proxy#`'s visible argument was hard-coded as nominal.
Easily fixed by changing it to phantom.
3. The visibility of `proxy#`'s kind argument was specified, which
is different from the `Proxy` constructor (which treats it as
inferred). Some minor refactoring in `proxyHashId` fixed ths up.
Along the way, I had to introduce a `mkSpecForAllTy` function, so
I did some related Haddock cleanup in `Type`, where that function
lives.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a4ae70f09009c5d32696445a06eacb273f364b5">4a4ae70f</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2019-02-12T07:56:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16188
There was an awful lot of zipping going on in
canDecomposableTyConAppOK, and one of the lists being zipped
was too short, causing the result to be too short. Easily
fixed.
Also fixes #16204 and #16225
test case: typecheck/should_compile/T16188
typecheck/should_compile/T16204[ab]
typecheck/should_fail/T16204c
typecheck/should_compile/T16225
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8b476d822e97cfe4cebe6e74924d9a79148d608c">8b476d82</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-12T08:02:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16299 by deleting incorrect code from IfaceSyn
GHCi's `:info` command was pretty-printing Haskell98-style data types
with explicit return kinds if the return kind wasn't `Type`. This
leads to bizarre output like this:
```
λ> :i (##)
data (##) :: TYPE ('GHC.Types.TupleRep '[]) = (##)
-- Defined in ‘GHC.Prim’
```
Or, with unlifted newtypes:
```
λ> newtype T = MkT Int#
λ> :i T
newtype T :: TYPE 'IntRep = MkT Int#
-- Defined at <interactive>:5:1
```
The solution is simple: just delete one part from `IfaceSyn` where
GHC mistakenly pretty-prints the return kinds for non-GADTs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a08f463bcc9727d91cec4c6e952ad0f5bbc3fbf9">a08f463b</a></strong>
<div>
<span>by nineonine</span>
<i>at 2019-02-13T00:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #15849 by checking whether there's a do block
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/28683137a59607dfdac6add35aefc8676b7fa864">28683137</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-13T00:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: Document CLANG, LLC, and OPT variables
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6b890d76a252259843a6e87043f8f12e6a8a0aae">6b890d76</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-02-13T13:21:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix checkStackChunk() call in Interepter.c, enable an assertion
Fixes #16303
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4af0a2d609651c4bae45d84d2bf7ce9fe8cca350">4af0a2d6</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-13T13:27:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update parallel submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e40f00dcf96ba9009801dd1ca37b4abf12951b6e">e40f00dc</a></strong>
<div>
<span>by Alexandre Esteves</span>
<i>at 2019-02-14T01:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typos [skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7f26b74e409d058005909fc2b2ed2e6027d49365">7f26b74e</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-14T01:13:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `liftedTyped` to `Lift` class
Implements GHC proposal 43, adding a `liftTyped` method to the `Lift` typeclass.
This also adds some documentation to `TExp`, describing typed splices and their
advantages over their untyped counterparts.
Resolves #14671.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0f1eb88c93143359fa671bb72aceebc299c87a95">0f1eb88c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-02-14T07:29:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add perf test for #16190
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1d9a1d9fb8fe0a1fea2c44c4246f102ff3e1f3a3">1d9a1d9f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-02-14T07:29:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">NCG: fast compilation of very large strings (#16190)
This patch adds an optimization into the NCG: for large strings
(threshold configurable via -fbinary-blob-threshold=NNN flag), instead
of printing `.asciz "..."` in the generated ASM source, we print
`.incbin "tmpXXX.dat"` and we dump the contents of the string into a
temporary "tmpXXX.dat" file.
See the note for more details.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/19626218566ea709b5f6f287d3c296b0c4021de2">19626218</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-14T07:36:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement -Wredundant-record-wildcards and -Wunused-record-wildcards
-Wredundant-record-wildcards warns when a .. pattern binds no variables.
-Wunused-record-wildcards warns when none of the variables bound by a ..
pattern are used.
These flags are enabled by `-Wall`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/682783828275cca5fd8bf5be5b52054c75e0e22c">68278382</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-14T08:40:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make a smart mkAppTyM
This patch finally delivers on Trac #15952. Specifically
* Completely remove Note [The tcType invariant], along with
its complicated consequences (IT1-IT6).
* Replace Note [The well-kinded type invariant] with:
Note [The Purely Kinded Type Invariant (PKTI)]
* Instead, establish the (PKTI) in TcHsType.tcInferApps,
by using a new function mkAppTyM when building a type
application. See Note [mkAppTyM].
* As a result we can remove the delicate mkNakedXX functions
entirely. Specifically, mkNakedCastTy retained lots of
extremly delicate Refl coercions which just cluttered
everything up, and(worse) were very vulnerable to being
silently eliminated by (say) substTy. This led to a
succession of bug reports.
The result is noticeably simpler to explain, simpler
to code, and Richard and I are much more confident that
it is correct.
It does not actually fix any bugs, but it brings us closer.
E.g. I hoped it'd fix #15918 and #15799, but it doesn't quite
do so. However, it makes it much easier to fix.
I also did a raft of other minor refactorings:
* Use tcTypeKind consistently in the type checker
* Rename tcInstTyBinders to tcInvisibleTyBinders,
and refactor it a bit
* Refactor tcEqType, pickyEqType, tcEqTypeVis
Simpler, probably more efficient.
* Make zonkTcType zonk TcTyCons, at least if they have
any free unification variables -- see zonk_tc_tycon
in TcMType.zonkTcTypeMapper.
Not zonking these TcTyCons was actually a bug before.
* Simplify try_to_reduce_no_cache in TcFlatten (a lot)
* Combine checkExpectedKind and checkExpectedKindX.
And then combine the invisible-binder instantation code
Much simpler now.
* Fix a little bug in TcMType.skolemiseQuantifiedTyVar.
I'm not sure how I came across this originally.
* Fix a little bug in TyCoRep.isUnliftedRuntimeRep
(the ASSERT was over-zealous). Again I'm not certain
how I encountered this.
* Add a missing solveLocalEqualities in
TcHsType.tcHsPartialSigType.
I came across this when trying to get level numbers
right.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5c1f268e2744fab2d36e64c163858995451d7095">5c1f268e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-14T08:40:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fail fast in solveLocalEqualities
This patch makes us fail fast in TcSimplify.solveLocalEqualities,
and in TcHsType.tc_hs_sig_type, if there are insoluble constraints.
Previously we ploughed on even if there were insoluble constraints,
leading to a cascade of hard-to-understand type errors. Failing
eagerly is much better; hence a lot of testsuite error message
changes. Eg if we have
f :: [Maybe] -> blah
f xs = e
then trying typecheck 'f x = e' with an utterly bogus type
is just asking for trouble.
I can't quite remember what provoked me to make this change,
but I think the error messages are notably improved, by
removing confusing clutter and focusing on the real error.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b31df5caaebb1c4f72a3c70a9cdb7893af4c3309">b31df5ca</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-15T12:23:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: enable -Wcompat=error in the testsuite
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/887454d8889ca5dbba70425de41d97939cb9ac60">887454d8</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-15T12:29:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">'forall' always a keyword, plus the dot type operator
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/173d0cee84ef944059a473b1425e48062739988f">173d0cee</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-15T23:35:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Properly escape character literals in Haddocks
Character literals in Haddock should not be written as plain `'\n'` since
single quotes are for linking identifiers. Besides, since we want the
character literal to be monospaced, we really should use `@\'\\n\'@`.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bcaba30a9602d7c5899c9754096a4460191dc667">bcaba30a</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-02-15T23:41:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't wrap the entry map for LiveInfo in Maybe.
It never really encoded a invariant.
* The linear register allocator just did partial pattern matches
* The graph allocator just set it to (Just mapEmpty) for Nothing
So I changed LiveInfo to directly contain the map.
Further natCmmTopToLive which filled in Nothing is no longer exported.
Instead we know call cmmTopLiveness which changes the type AND fills
in the map.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0b92bdc79ddd38ceb69820dbc27ed36d7e5d7a57">0b92bdc7</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-02-16T06:07:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix and Reapply "Performance tests: recover a baseline from ancestor commits and CI results."
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b39597b66b6a46c1af2bb939dd77d01544ab7be">9b39597b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-16T06:14:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix tests which were made to pass by "Make a smart mkAppTyM"
For some reason gitlab is not reporting these as failures in CI. It's
not clear to me why as the junit output looks fine.
Fixes #16112 and #16113
They were fixed by 682783828275cca5fd8bf5be5b52054c75e0e22c
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5544f6082d6e15d305b83f27f4daa29576d3666e">5544f608</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-16T06:14:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove Simon's special number from typecheck/should_fail/all.t
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7752fa54909a10b565a80a5ca8b751e174b14282">7752fa54</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-02-16T14:10:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor documentation fix in GHC.ForeignPtr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3cb063c805ec841ca33b8371ef8aba9329221b6c">3cb063c8</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-16T14:16:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove `parallel` as a submodule
`parallel` is used in exactly one place in the GHC tree: the T2317 test.
It seems almost by accident that it is a submodule; libraries needed
only for tests should net be included as submodules (see `QuickCheck`,
`async`, `haskell98`, `regex-compat`, `utf8-string`, `vector` and more
for examples).
T2317 will now get run only when `parallel` is installed instead of
`parallel` being required for the testsuite to run.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/69ebf5cb4592b4c89e268937ef7eb96f7c9d4532">69ebf5cb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-16T14:22:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">HIE: Save module name and module exports
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/af7b0fdb64ad1c57f5829e8bd89e8e0fa96b11d2">af7b0fdb</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-02-17T03:49:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cmm: Promote stack arguments to word size
Smaller than word size integers must be promoted to word size
when passed on the stack. While on little endian systems we can
get away with writing a small integer to a word size stack slot
and read it as a word ignoring the upper bits, on big endian
systems a small integer write ends up in the most significant
bits and a word size read that ignores the upper bits delivers
a random value.
On little endian systems a smaller than word size write to
the stack might be more efficient but that decision is
system specific and should be done as an optimization in the
respective backends.
Fixes #16258
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a09d30bffa0c9df10ab5e7d22293c1f39c75728">4a09d30b</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-17T03:55:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Run some of Haddock's tests in the testsuite
The 4 main testsuites in Haddock don't have many dependencies, but are
regularly broken in small ways by changes to the GHC AST or the GHC API.
The main gotcha is that we'll have to make sure that `haddock-test` and
the test suite don't add modules without modifying this test. Then again,
if that happens, the test will fail and someone will noticed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0fff3ae6d2b821cacf33193b85307588402f1748">0fff3ae6</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-02-18T00:52:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Testsuite: implement use_specs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1f1b9e356a873ec7da84cdac2a7850ecb2b32ea9">1f1b9e35</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-18T00:58:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Get rid of tcm_smart from TyCoMapper
Following a succession of refactorings of the type checker,
culminating in the patch
Make a smart mkAppTyM
we have got rid of mkNakedAppTy etc. And that in turn
meant that the tcm_smart field of the generic TyCoMapper
(in Type.hs) was entirely unused. It was always set to True.
So this patch just gets rid of it completely. Less code,
less complexity, and more efficient because fewer higher-order
function calls. Everyone wins.
No change in behaviour; this does not cure any bugs!
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1ffee940a011fc75f40514696a747dd1f3d4f342">1ffee940</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-18T01:04:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix warnings and fatal parsing errors
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2a431640d199b164ca5d233684d4f4bdaf5ca021">2a431640</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-02-18T15:31:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Uphold AvailTC Invariant for associated data fams
The AvailTC was not be upheld for explicit export module
export lists when the module contains associated data families.
module A (module A) where
class C a where { data T a }
instance C () where { data T () = D }
Used to (incorrectly) report avails as `[C{C, T;}, T{D;}]`. Note that
although `T` is exported, the avail where it is the parent does _not_
list it as its first element. This avail is now correctly listed as
`[C{C, T;}, T{T, D;}]`.
This was induces a [crash in Haddock][0].
See #16077.
[0]: https://github.com/haskell/haddock/issues/979
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/129a800dd01bff93f64c21bc22a4609cb26fc571">129a800d</a></strong>
<div>
<span>by Alexandre Baldé</span>
<i>at 2019-02-19T00:17:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix Haddock comment for Integer datatype
Move implementation notes for Integer to Haddock named section
Revert documentation named chunk change [skip ci]
Haddock's named chunk feature was not used correctly in this case,
as it cannot export only parts of a Haddock top level comment.
As such, it was removed and replaced by a message informing the end-
user to browse the source code for detailed information.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9049bfb1773cf114fd4e2d2d6daed46af2b73093">9049bfb1</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-02-19T11:14:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable binder swap in OccurAnal (Trac #16288)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b78cc64e923716ac0512c299f42d4d0012306c05">b78cc64e</a></strong>
<div>
<span>by Arnaud Spiwack</span>
<i>at 2019-02-19T11:14:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make constructor wrappers inline only during the final phase
For case-of-known constructor to continue triggering early,
exprIsConApp_maybe is now capable of looking through lets and cases.
See #15840
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7833cf407d1f608bebb1d38bb99d3035d8d735e6">7833cf40</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-02-19T11:14:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Look through newtype wrappers (Trac #16254)
exprIsConApp_maybe could detect that I# 10 is a constructor application,
but not that Size (I# 10) is, because it was an application with a
nontrivial argument.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76ac103f5021cba5cd000293c7cb8c2bd3148e7a">76ac103f</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-02-19T11:20:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Document errno behaviour in haddocks.
Also add an implementation comment for details.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9f5b11fa6a0bc32888fa88b6c3d57baa2e734c64">9f5b11fa</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-02-19T11:26:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove arc scripts
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/908b4b8659713f0b7a1704ce33c7fa30e3e0ffc3">908b4b86</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-02-20T14:53:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix two bugs in stg_ap_0_fast in profiling runtime
This includes two bug fixes in profiling version of stg_ap_0_fast:
- PAPs allocated by stg_ap_0_fast are now correctly tagged. This
invariant is checked in Sanity.c:checkPAP.
(This was originally implemented in 2693eb11f5, later reverted with
ab55b4ddb7 because it revealed the bug below, but it wasn't clear at
the time whether the bug was the one below or something in the commit)
- The local variable `untaggedfun` is now marked as a pointer so it
survives GC.
With this we finally fix all known bugs caught in #15508. `concprog001`
now works reliably with prof+threaded and prof runtimes (with and
without -debug).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1dad4fc27ea128a11ba0077f459494c2a1ca0d5c">1dad4fc2</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-02-20T14:59:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Fix untracked dependencies
This is a preparation for #16295: https://ghc.haskell.org/trac/ghc/ticket/16295
This commit mostly focuses on getting rid of untracked dependencies,
which prevent Shake's new `--shared` feature from appropriately caching
build rules.
There are three different solutions to untracked dependencies:
* Track them! This is the obvious and the best approach, but in some
situations we cannot use it, for example, because a build rule creates
files whose names are not known statically and hence cannot be
specified as the rule's outputs.
* Use Shake's `produces` to record outputs dynamically, within the rule.
* Use Shake's `historyDisable` to disable caching for a particular build
rule. We currently use this approach only for `ghc-pkg` which mutates
the package database and the file `package.cache`.
These two tickets are fixed as the result:
Ticket #16271: https://ghc.haskell.org/trac/ghc/ticket/16271
Ticket #16272: https://ghc.haskell.org/trac/ghc/ticket/16272 (this one
is fixed only partially: we correctly record the dependency, but we
still copy files into the RTS build tree).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/eda456f6f7ff53d0237531bc7f60ea42a648b6f3">eda456f6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-20T14:59:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Run `cabal update` before trying to build Hadrian
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/aa79f65c06fbe2bbca08de1d02b30ee4fa53d1b4">aa79f65c</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-02-20T15:05:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump ghc version to 8.9
Along the way, I discovered that `template-haskell.cabal` was
hard-coding the GHC version (in the form of its `ghc-boot-th` version
bounds), so I decided to make life a little simpler in the future by
generating `template-haskell.cabal` with autoconf.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e96ce1fced5ea4f005edea2eeab50f67acb9114">2e96ce1f</a></strong>
<div>
<span>by Dmitry Ivanov</span>
<i>at 2019-02-20T15:11:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test bit-manipulating primops under respective arch flags like -msse4.2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2209ea86cbdfb1e08772a41f74b28563119b4385">2209ea86</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-20T15:17:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add comments about how zip fusion
Alexandre Balde (rockbmb) points out that the fusion technology
for foldr2, zip, zipWith, etc is undocumented. This patch adds
comments to explain.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e86606f2dd25a6ea55ed29a0434b82cf862c2544">e86606f2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-20T15:17:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tiny refactor in isUnliftedRuntimeRep
No change in behaviour, slightly more efficient
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5eeefe4c1e007ea2098f241634b48a4dada785a5">5eeefe4c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-20T15:17:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve the very simple optimiser slightly
There was a missing case in the very simple optimiser,
CoreOpt.simpleOptExpr, which led to Trac #13208 comment:2.
In particular, in simple_app, if we find a Let, we should
just float it outwards. Otherwise we leave behind some
easy-to-reduce beta-redexes.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3f73f081d675fd35ee0af0facc05a046d379ef26">3f73f081</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-20T15:17:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Comments only, in GhcPrelude
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2a0be1468cf440547e2ceb93f0d01d23637affc6">2a0be146</a></strong>
<div>
<span>by Vaibhav Sagar</span>
<i>at 2019-02-21T09:14:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Text.ParserCombinators.ReadP: use NonEmpty in Final
The `Final` constructor needed to maintain the invariant that the list
it is provided is always non-empty. Since NonEmpty is in `base` now, I
think it would be better to use it for this purpose.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/32f44ed81b0f16099d780e73ad2ea1a3cd812448">32f44ed8</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-02-21T09:20:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix test runner crash when not in a git repo
Respect `inside_git_repo()` when checking performance stats.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2f4af71e73ac3b59f4faba5bf1b25774b1008898">2f4af71e</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-21T09:26:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Dot/bang operators in export lists (Trac #16339)
The dot type operator was handled in the 'tyvarop' parser production, and the
bang type operator in 'tyapp'. However, export lists and role annotations use
'oqtycon', so these type operators could not be exported or assigned roles.
The fix is to handle them in a lower level production, 'tyconsym'.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e204431e5a5e2fd16da52b04bda2798f16c51344">e204431e</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-21T09:26:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle the (~) type operator in 'tyconsym'
By parsing '~' in 'tyconsym' instead of 'oqtycon', we
get one less shift/reduce conflict.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/48aafc247316a15f2fe412d5dcf07c0bc6e5cbbf">48aafc24</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-02-22T01:52:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Testsuite: opt-in to symlinks on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9db92cf0baada362f2b1bd69fbfd156f415d4053">9db92cf0</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-02-22T01:52:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set builder env
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0e2d300a59b1b5c167d2e7d99a448c8663ba6d7d">0e2d300a</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-02-22T01:58:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Write .o files atomically. See #14533
This issue was reproduced with, and the fix confirmed with,
the `hatrace` tool for syscall-based fault injection:
https://github.com/nh2/hatrace
The concrete test case for GHC is at
https://github.com/nh2/hatrace/blob/e23d35a2d2c79e8bf49e9e2266b3ff7094267f29/test/HatraceSpec.hs#L185
A previous, nondeterministic reproducer for the issue was provided by
Alexey Kuleshevich in
https://github.com/lehins/exec-kill-loop
Signed-off-by: Niklas Hambüchen <niklas@fpcomplete.com>
Reviewed-by: Alexey Kuleshevich <alexey@fpcomplete.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e8a08f400744a860d1366c6680c8419d30f7cc2a">e8a08f40</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-02-22T01:58:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Refactor: extract `withAtomicRename`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/473632d7671619ee08a2a0025aa22bd4f79eca2d">473632d7</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-02-22T02:04:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump nofib submodule.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a07f46ead660caa7fc6073e7b9bd1c8b7c4cdfe2">a07f46ea</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-22T06:56:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove tcTyConUserTyVars
The tcTyConUserTyVars field of TcTyCon was entirely unused.
This patch kills it off entirely.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0eb7cf03da3783ca887d5de44d312cf6f3a4113c">0eb7cf03</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-22T06:56:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't do binder-swap for GlobalIds
This patch disables the binder-swap transformation in the
(relatively rare) case when the scrutinee is a GlobalId.
Reason: we are getting Lint errors so that GHC doesn't
even validate. Trac #16346.
This is NOT the final solution -- it's just a stop-gap
to get us running again.
The final solution is in Trac #16296
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c25b135ff5b9c69a90df0ccf51b04952c2dc6ee1">c25b135f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-22T06:56:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix exprIsConApp_maybe
In this commit
commit 7833cf407d1f608bebb1d38bb99d3035d8d735e6
Date: Thu Jan 24 17:58:50 2019 +0100
Look through newtype wrappers (Trac #16254)
we made exprIsConApp_maybe quite a bit cleverer. But I had not paid
enough attention to keeping exactly the correct substitution and
in-scope set, which led to Trac #16348.
There were several buglets (like applying the substitution twice in
exprIsConApp_maybe, but the proximate source of the bug was that we were
calling addNewInScopeIds, which deleted things from the substitution as
well as adding them to the in-scope set. That's usually right, but not
here!
This was quite tricky to track down. But it is nicer now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/44ad7215a11cb49651233646c30ced9eb72eaad2">44ad7215</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-22T06:56:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use validate flavour rather than devel2 for DEBUG CI job
This also builds stage2 with optimisations and -dcore-lint
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/806cc234426dca41e1c799e9e6212cf9e352d180">806cc234</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-02-23T04:35:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Build and copy libffi shared libraries correctly and enable dynamically linking ghc.
Test Plan:
Ensure build environment does NOT have a system libffi installed (you may want to use a nix environment).
Then `hadrian/build.sh -c --flavour=default`
Reviewers: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #15837
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4b752d52761be4795fd83698b3290df455f0c3ea">4b752d52</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2019-02-23T04:41:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update CI images to GHC-8.4.4 & cabal-install-2.4.1.0
Use official bindists, except for Debian 9/Stretch
http://downloads.haskell.org/debian/ is used. (There are no recent
GHC/cabal-install for Debian 8/Jessie there)
Use v2-update/v2-install to install Haskell tools.
Try to unify structure of the different Dockerfiles, incl installing GHC
in one step (this will prevent sublayers from existing, making final
image slightly smaller)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e87ae4733adb7420d13e96c2423aa71f804a2c46">e87ae473</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-02-23T04:47:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop support for i386 and PowerPC in MachO linker
Some code is broken, there are no CI targets (so not obvious how to
test), and no one seems to have built GHC for any of the above
platforms in years.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/04b7f4c1c6ea910ab378f27c5f9efd6c88f65425">04b7f4c1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-23T04:53:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-in-ghci: Fix capitalization of hieFile
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e9426df902cd2e118f162876d6991ffa5be9137">2e9426df</a></strong>
<div>
<span>by Tom Sydney Kerckhove</span>
<i>at 2019-02-24T02:25:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hWaitForInput-accurate-socket test
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ac34e784775a0fa8b7284d42ff89571907afdc36">ac34e784</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-24T02:31:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove bogus assertion
Remove a bogus assertion in FamInst.newFamInst
(There is a comment to explain.)
This fixes Trac #16112.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6cce36f83aec33d33545e0ef2135894d22dff5ca">6cce36f8</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-02-24T02:31:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add AnonArgFlag to FunTy
The big payload of this patch is:
Add an AnonArgFlag to the FunTy constructor
of Type, so that
(FunTy VisArg t1 t2) means (t1 -> t2)
(FunTy InvisArg t1 t2) means (t1 => t2)
The big payoff is that we have a simple, local test to make
when decomposing a type, leading to many fewer calls to
isPredTy. To me the code seems a lot tidier, and probably
more efficient (isPredTy has to take the kind of the type).
See Note [Function types] in TyCoRep.
There are lots of consequences
* I made FunTy into a record, so that it'll be easier
when we add a linearity field, something that is coming
down the road.
* Lots of code gets touched in a routine way, simply because it
pattern matches on FunTy.
* I wanted to make a pattern synonym for (FunTy2 arg res), which
picks out just the argument and result type from the record. But
alas the pattern-match overlap checker has a heart attack, and
either reports false positives, or takes too long. In the end
I gave up on pattern synonyms.
There's some commented-out code in TyCoRep that shows what I
wanted to do.
* Much more clarity about predicate types, constraint types
and (in particular) equality constraints in kinds. See TyCoRep
Note [Types for coercions, predicates, and evidence]
and Note [Constraints in kinds].
This made me realise that we need an AnonArgFlag on
AnonTCB in a TyConBinder, something that was really plain
wrong before. See TyCon Note [AnonTCB InivsArg]
* When building function types we must know whether we
need VisArg (mkVisFunTy) or InvisArg (mkInvisFunTy).
This turned out to be pretty easy in practice.
* Pretty-printing of types, esp in IfaceType, gets
tidier, because we were already recording the (->)
vs (=>) distinction in an ad-hoc way. Death to
IfaceFunTy.
* mkLamType needs to keep track of whether it is building
(t1 -> t2) or (t1 => t2). See Type
Note [mkLamType: dictionary arguments]
Other minor stuff
* Some tidy-up in validity checking involving constraints;
Trac #16263
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e61f6e35e2fffb1e82e9559852481010fe84d8d3">e61f6e35</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-24T02:37:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Expression/command ambiguity resolution
This patch removes 'HsArrApp' and 'HsArrForm' from 'HsExpr' by
introducing a new ambiguity resolution system in the parser.
Problem: there are places in the grammar where we do not know whether we
are parsing an expression or a command:
proc x -> do { (stuff) -< x } -- 'stuff' is an expression
proc x -> do { (stuff) } -- 'stuff' is a command
Until we encounter arrow syntax (-<) we don't know whether to parse
'stuff' as an expression or a command.
The old solution was to parse as HsExpr always, and rejig later:
checkCommand :: LHsExpr GhcPs -> P (LHsCmd GhcPs)
This meant polluting 'HsExpr' with command-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 by panicking.
We fix this abstraction leak by parsing into an intermediate
representation, 'ExpCmd':
data ExpCmdG b where
ExpG :: ExpCmdG HsExpr
CmdG :: ExpCmdG HsCmd
type ExpCmd = forall b. ExpCmdG b -> PV (Located (b GhcPs))
checkExp :: ExpCmd -> PV (LHsExpr GhcPs)
checkCmd :: ExpCmd -> PV (LHsCmd GhcPs)
checkExp f = f ExpG -- interpret as an expression
checkCmd f = f CmdG -- interpret as a command
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/command ambiguity.
Future work: apply the same principles to the expression/pattern
ambiguity.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ee284b854e514685036dc21a1ee61241c76d14b5">ee284b85</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-02-24T02:43:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix regression incorrectly advertising TH support
`--supported-languages` must only advertise language extensions
which are supported by the compiler in order for tooling such
as Cabal relying on this signalling not to behave incorrectly.
Fixes #16331
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a990312e3d36e0e1b18bb966ac3297aa0aae142a">a990312e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-02-24T02:50:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Exit with exit code 1 when tests unexpectedly pass
This was causing gitlab to not report from builds as failing. It also
highlighted a problem with the LLVM tests where some of the external
interpreter tests are failing.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1059e234b04a041291cc422cad715011011724d1">1059e234</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-24T02:56:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Only build x86_64-deb8 and fedora27 for releases
These are largely redundant as they are covered by x86_64-deb9.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b85068f6843eb0b16ff898e0dfa811fede8e1ca1">b85068f6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-02-24T03:02:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include closure header size in StgLamLift's estimations
While playing around with late lambda lifting, I realised that
StgLamLift.Analysis doesn't consider the removed closure header in its
allocation estimations.
That's because contrary to what I thought, the total word count returned
by `mkVirtHeapOffsets` doesn't include the size of the closure header.
We just add the header size manually now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/88970187779166abd9c13b6e48430bfccc9ee880">88970187</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-24T03:08:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">User's Guide: update info on kind inference
We no longer put class variables in front,
see "Taming the Kind Inference Monster"
(also fix some markup issues)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae7d1ff62f61e2ded772d4c58cda3c130bbdcf78">ae7d1ff6</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-24T03:14:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">User's Guide: forall is a keyword nowadays
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6ba3421efd1caf469e30ce53fef8c5406adde357">6ba3421e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-02-24T03:20:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix whitespace in hp2ps error message
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9059343e8d1fc94ac62145688d6fdd70a791eaf1">9059343e</a></strong>
<div>
<span>by Alexandre</span>
<i>at 2019-02-24T21:17:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Allow fusion for zip7 and related
Fixes #14037.
Metric Decrease:
T9872b
T9872d
Reviewers: bgamari, simonpj, hvr
Reviewed By: simonpj
Subscribers: AndreasK, simonpj, osa1, dfeuer, rwbarton, carter
GHC Trac Issues: #14037
Differential Revision: https://phabricator.haskell.org/D5249
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/14586f5d737ec5dc828633267b50dcf0d47e1696">14586f5d</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-24T21:23:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable fragile test cases: T14697 T5559 T3424
See Trac #15072, Trac #16349, Trac #16350
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f320f3b2f2f421af41b8f7588529ed46bbe6ccf3">f320f3b2</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-25T16:19:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix the ghci063 test on Darwin (Trac #16201)
We use "touch -r" to set modification timestamps, which leads to precision loss
on Darwin. For example,
before: 2019-02-25 01:11:23.807627350 +0300
after: 2019-02-25 01:11:23.807627000 +0300
^^^
This means we can't trick GHCi into thinking the file hasn't been changed by
restoring its old timestamp, as we cannot faithfully restore all digits.
The solution is to nullify the insignificant digits before the first :load
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4dbacba5d2831bc80c48f3986e59b1a1c91cc620">4dbacba5</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-26T17:36:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Skip T3424 when fast()
14586f5d removed this by accident.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5bc195b1fe788e9a900a15fbe473967850517c3e">5bc195b1</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-27T14:53:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Treat kind/type variables identically, demolish FKTV
Implements GHC Proposal #24: .../ghc-proposals/blob/master/proposals/0024-no-kind-vars.rst
Fixes Trac #16334, Trac #16315
With this patch, scoping rules for type and kind variables have been
unified: kind variables no longer receieve special treatment. This
simplifies both the language and the implementation.
User-facing changes
-------------------
* Kind variables are no longer implicitly quantified when an explicit
forall is used:
p :: Proxy (a :: k) -- still accepted
p :: forall k a. Proxy (a :: k) -- still accepted
p :: forall a. Proxy (a :: k) -- no longer accepted
In other words, now we adhere to the "forall-or-nothing" rule more
strictly.
Related function: RnTypes.rnImplicitBndrs
* The -Wimplicit-kind-vars warning has been deprecated.
* Kind variables are no longer implicitly quantified in constructor
declarations:
data T a = T1 (S (a :: k) | forall (b::k). T2 (S b) -- no longer accepted
data T (a :: k) = T1 (S (a :: k) | forall (b::k). T2 (S b) -- still accepted
Related function: RnTypes.extractRdrKindSigVars
* Implicitly quantified kind variables are no longer put in front of
other variables:
f :: Proxy (a :: k) -> Proxy (b :: j)
f :: forall k j (a :: k) (b :: j). Proxy a -> Proxy b -- old order
f :: forall k (a :: k) j (b :: j). Proxy a -> Proxy b -- new order
This is a breaking change for users of TypeApplications. Note that
we still respect the dpendency order: 'k' before 'a', 'j' before 'b'.
See "Ordering of specified variables" in the User's Guide.
Related function: RnTypes.rnImplicitBndrs
* In type synonyms and type family equations, free variables on the RHS
are no longer implicitly quantified unless used in an outermost kind
annotation:
type T = Just (Nothing :: Maybe a) -- no longer accepted
type T = Just Nothing :: Maybe (Maybe a) -- still accepted
The latter form is a workaround due to temporary lack of an explicit
quantification method. Ideally, we would write something along these
lines:
type T @a = Just (Nothing :: Maybe a)
Related function: RnTypes.extractHsTyRdrTyVarsKindVars
* Named wildcards in kinds are fixed (Trac #16334):
x :: (Int :: _t) -- this compiles, infers (_t ~ Type)
Related function: RnTypes.partition_nwcs
Implementation notes
--------------------
* One of the key changes is the removal of FKTV in RnTypes:
- data FreeKiTyVars = FKTV { fktv_kis :: [Located RdrName]
- , fktv_tys :: [Located RdrName] }
+ type FreeKiTyVars = [Located RdrName]
We used to keep track of type and kind variables separately, but
now that they are on equal footing when it comes to scoping, we
can put them in the same list.
* extract_lty and family are no longer parametrized by TypeOrKind,
as we now do not distinguish kind variables from type variables.
* PatSynExPE and the related Note [Pattern synonym existentials do not scope]
have been removed (Trac #16315). With no implicit kind quantification,
we can no longer trigger the error.
* reportFloatingKvs and the related Note [Free-floating kind vars]
have been removed. With no implicit kind quantification,
we can no longer trigger the error.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5c084e0468be46f5ab48b2c1669a7e4d4d0f3c43">5c084e04</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-02-27T14:59:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">RTS: Add missing memory barrier
In the work stealing queue a load-load-barrier is required to ensure
that a read of queue data cannot be reordered before a read of the
bottom pointer into the queue.
The added load-load-barrier ensures that the ordering of writes enforced
at the end of `pushWSDeque` is also respected in the order of reads in
`stealWSDeque_`. In other words, when reading `q->bottom` we want to make
sure that we see the updates to `q->elements`.
Fixes #13633
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e8f664957dc3763dc4375894b8dc4d046d2e95b">2e8f6649</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-02-27T15:06:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix intermittent hie002 failure
hie002 is a performance test that used to fail unpredictably:
max_bytes_used Decrease from x86_64-linux-deb9-debug baseline @ HEAD~2:
Expected hie002 (normal) max_bytes_used: 1190923992.0 +/-20%
Lower bound hie002 (normal) max_bytes_used: 952739193
Upper bound hie002 (normal) max_bytes_used: 1429108791
Actual hie002 (normal) max_bytes_used: 726270784
Deviation hie002 (normal) max_bytes_used: -39.0 %
peak_megabytes_allocated Decrease from x86_64-linux-deb9-debug baseline @ HEAD~2:
Expected hie002 (normal) peak_megabytes_allocated: 2538.0 +/-20%
Lower bound hie002 (normal) peak_megabytes_allocated: 2030
Upper bound hie002 (normal) peak_megabytes_allocated: 3046
Actual hie002 (normal) peak_megabytes_allocated: 1587
Deviation hie002 (normal) peak_megabytes_allocated: -37.5 %
*** unexpected stat test failure for hie002(normal)
'max_bytes_used' and 'peak_megabytes_allocated' are too unstable without careful
control of the runtime configuration. We fix this by using a more predictable
metric, 'bytes allocated'.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f838809f1e73c20bc70926fe98e735297572ac60">f838809f</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2019-02-28T07:20:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cleanup iserv/iserv-proxy
This adds trace messages that include the processes name and as such
make debugging and following the communication easier.
It also adds a note regarding the fwd*Call proxy-communication logic
between the proxy and the slave.
The proxy will now also poll for 60s to wait for the remote iserv
to come up. (Alternatively you can start the remote process
beforehand; and just have iserv-proxy connect to it)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c26d299dc422f43b8c37da4b26da2067eedcbae8">c26d299d</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-01T21:26:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Visible dependent quantification
This implements GHC proposal 35
(https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0035-forall-arrow.rst)
by adding the ability to write kinds with
visible dependent quantification (VDQ).
Most of the work for supporting VDQ was actually done _before_ this
patch. That is, GHC has been able to reason about kinds with VDQ for
some time, but it lacked the ability to let programmers directly
write these kinds in the source syntax. This patch is primarly about
exposing this ability, by:
* Changing `HsForAllTy` to add an additional field of type
`ForallVisFlag` to distinguish between invisible `forall`s (i.e,
with dots) and visible `forall`s (i.e., with arrows)
* Changing `Parser.y` accordingly
The rest of the patch mostly concerns adding validity checking to
ensure that VDQ is never used in the type of a term (as permitting
this would require full-spectrum dependent types). This is
accomplished by:
* Adding a `vdqAllowed` predicate to `TcValidity`.
* Introducing `splitLHsSigmaTyInvis`, a variant of `splitLHsSigmaTy`
that only splits invisible `forall`s. This function is used in
certain places (e.g., in instance declarations) to ensure that GHC
doesn't try to split visible `forall`s (e.g., if it tried splitting
`instance forall a -> Show (Blah a)`, then GHC would mistakenly
allow that declaration!)
This also updates Template Haskell by introducing a new `ForallVisT`
constructor to `Type`.
Fixes #16326. Also fixes #15658 by documenting this feature in the
users' guide.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f37efb11b957a21f3048f7005a234f96350ff938">f37efb11</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-03-01T21:32:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Lexer: turn some fatal errors into non-fatal ones
The following previously fatal lexer errors are now non-fatal:
* errors about enabling `LambdaCase`
* errors about enabling `NumericUnderscores`
* errors about having valid characters in primitive strings
See #16270
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8442103aa575dc1cd25cb3231e729c6365dc1b5c">8442103a</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-01T21:38:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: introduce ways to skip some documentation targets
The initial motivation for this is to have a chance to run the binary
distribution rules in our Windows CI without having to install
sphinx-build and xelatex there, while retaining the ability to
generate haddocks. I just ended up extending this idea a little bit so
as to have control over whether we build haddocks, (sphinx) HTML manuals,
(sphinx) PDF manuals and (sphinx) manpages.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9aa27273afddd3cbf4c03c70954f24ac8ea1a706">9aa27273</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-01T21:38:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">use --docs=no-sphinx in both Hadrian CI jobs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b1c7ffafc64c5e04fe59e1c38fe86693de3498aa">b1c7ffaf</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-01T21:44:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix parsing of expected performance changes for tests with non-alpha characters.
Python's split() function is used to split on all white space.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b90695cdaaa0995c1b7a26289c63be9f9e9cfe3e">b90695cd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-01T22:06:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Pull docker images from ghc/ci-images registry
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/161f102b023b3668c9cdc28ace2c1985049841c3">161f102b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-01T22:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop Docker images
These have been moved to the ghc/ci-images project.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d298cb9cf722126316c9697c20a8e0048498efb9">d298cb9c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-01T22:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Produce DWARF-enabled binary distribution
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/aeefc90cf7fb42183aebe23ccc9d06863f5a9fcf">aeefc90c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-01T22:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Suppress ticks when comparing -ddump-simpl output
Otherwise these tests break spuriously when core libraries are compiled
with source notes.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1bceb6431736a53d4746f570ba3631905f6c9c29">1bceb643</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-01T22:07:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Give deb9-unreg job a distinct cache key
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1285d6b95fbae7858abbc4722bc2301d7fe40425">1285d6b9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-02T23:32:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: A bit of reorganization
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f77229e3c30fa9e353c061dc038a5d0b2ee01c48">f77229e3</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-04T00:35:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">detect 'autoreconf' path during configure, and use it in hadrian
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e2ae52c34e81123dce9991fad393d96fd7b7af6a">e2ae52c3</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-03-04T15:18:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't leave .hi files after running Haddock tests
RyanGlScott observed in https://github.com/haskell/haddock/issues/1030
that running Haddock tests in GHC's testsuite left some `.hi` files
around in `utils/haddock`. This should fix that problem.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/22c2713bcc30cea9da7d8b95f3ea99357d1551f7">22c2713b</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-04T15:18:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: track mingw, ship it in bindists, more robust install script
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7080bef906b66d0e7053db99c9733aa95059d42">e7080bef</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-04T15:18:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "compiler: Refactor: extract `withAtomicRename`"
This reverts commit e8a08f400744a860d1366c6680c8419d30f7cc2a.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e6ce17433b75c6c985bffaf1f6fc18d299666ccb">e6ce1743</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-04T15:18:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "compiler: Write .o files atomically. See #14533"
This reverts commit 0e2d300a59b1b5c167d2e7d99a448c8663ba6d7d.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/80dfcee61e3bfb67f131cd674f96467e16c0f9d8">80dfcee6</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-05T08:09:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Be more careful when naming TyCon binders
This patch fixes two rather gnarly test cases:
* Trac #16342 (mutual recursion)
See Note [Tricky scoping in generaliseTcTyCon]
* Trac #16221 (shadowing)
See Note [Unification variables need fresh Names]
The main changes are:
* Substantial reworking of TcTyClsDecls.generaliseTcTyCon
This is the big change, and involves the rather tricky
function TcHsSyn.zonkRecTyVarBndrs.
See Note [Inferring kinds for type declarations] and
Note [Tricky scoping in generaliseTcTyCon] for the details.
* bindExplicitTKBndrs_Tv and bindImplicitTKBndrs_Tv both now
allocate /freshly-named/ unification variables. Indeed, more
generally, unification variables are always fresh; see
Note [Unification variables need fresh Names] in TcMType
* Clarify the role of tcTyConScopedTyVars.
See Note [Scoped tyvars in a TcTyCon] in TyCon
As usual, this dragged in some more refactoring:
* Renamed TcMType.zonkTyCoVarBndr to zonkAndSkolemise
* I renamed checkValidTelescope to checkTyConTelescope;
it's only used on TyCons, and indeed takes a TyCon as argument.
* I folded the slightly-mysterious reportFloatingKvs into
checkTyConTelescope. (Previously all its calls immediately
followed a call to checkTyConTelescope.) It makes much more
sense there.
* I inlined some called-once functions to simplify
checkValidTyFamEqn. It's less spaghetti-like now.
* This patch also fixes Trac #16251. I'm not quite sure why #16251
went wrong in the first place, nor how this patch fixes it, but
hey, it's good, and life is short.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6c4e45b043b0577d64e5addf5eaf6503e4a10b23">6c4e45b0</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-05T08:15:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test Runner: don't show missing baseline warning for performance tests with expected changes on the current commit.
Trac #16359
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646b6dfbe125aa756a935e840979ba11b4a882c0">646b6dfb</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-05T08:21:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix map/coerce rule for newtypes with wrappers
This addresses Trac #16208 by marking newtype wrapper
unfoldings as compulsory.
Furthermore, we can remove the special case for newtypes
in exprIsConApp_maybe (introduced in 7833cf407d1f).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/37f257afcd6a52cf4d76c60d766b1aeb520b9f05">37f257af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-06T03:22:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rip out object splitting
The splitter is an evil Perl script that processes assembler code.
Its job can be done better by the linker's --gc-sections flag. GHC
passes this flag to the linker whenever -split-sections is passed on
the command line.
This is based on @DemiMarie's D2768.
Fixes Trac #11315
Fixes Trac #9832
Fixes Trac #8964
Fixes Trac #8685
Fixes Trac #8629
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23342e1f06204a4853a6b191bf0960d2c2baf457">23342e1f</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T03:28:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Printer: Introduce a few more printing utilities
These include printLargeAndPinnedObjects, printWeakLists, and
printStaticObjects. These are generally useful things to have.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c19a401db45148873a7b6ba575384d2e77807647">c19a401d</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T03:28:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Printer: Print forwarding pointers
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db039a4a10fc8fa9e03e6781d1c0dc33151beda6">db039a4a</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-06T03:40:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for #15918
The test case in #15918 no longer triggers an `ASSERT` failure on
GHC HEAD, likely due to commit
682783828275cca5fd8bf5be5b52054c75e0e22c (`Make a smart mkAppTyM`).
This patch adds a regression test for #15918 to finally put it to
rest.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ff77b9894eecf51fa619ed2266ca196e296cd1e">2ff77b98</a></strong>
<div>
<span>by P.C. Shyamshankar</span>
<i>at 2019-03-06T14:17:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Handle absolute paths to build roots in Hadrian.
Fixes #16187.
This patch fixes various path concatenation issues to allow functioning
builds with hadrian when the build root location is specified with an
absolute path.
Remarks:
- The path concatenation operator (-/-) now handles absolute second operands
appropriately. Its behavior should match that of POSIX (</>) in this
regard.
- The `getDirectoryFiles*` family of functions only searches for matches
under the directory tree rooted by its first argument; all of the
results are also relative to this root. If the first argument is the
empty string, the current working directory is used.
This patch passes the appropriate directory (almost always either `top`
or `root`), and subsequently attaches that directory prefix so that
the paths refer to the appropriate files.
- Windows `tar` does not like colons (':') in paths to archive files, it
tries to resolve them as remote paths. The `--force-local` option
remedies this, and is applied on windows builds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5aab1d9ca927a058135ca9a08c10ea3474cbe251">5aab1d9c</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-06T20:53:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Unglobalize dead_weak_ptr_list and resurrected_threads
In the concurrent nonmoving collector we will need the ability to call
`traverseWeakPtrList` concurrently with minor generation collections.
This global state stands in the way of this. However, refactoring it
away is straightforward since this list only persists the length of a
single GC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a4944d8d98770b869f6aa5fb667877c56c3f8825">a4944d8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-06T20:53:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix it
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78dd04f9126dc5df966070b8db4b39a517a9d99f">78dd04f9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-06T21:05:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16385 by appending _maybe to a use of lookupGlobalOcc
`instance forall c. c` claimed that `c` was out of scope because the
renamer was invoking `lookupGlobalOcc` on `c` (in
`RnNames.getLocalNonValBinders`) without binding `c` first. To avoid
this, this patch changes GHC to invoke `lookupGlobalOcc_maybe` on `c`
instead, and if that returns `Nothing`, then bail out, resulting
in a better error message.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3caeb443b2bc2c2ef6f43ce59abfc1cfe3ba579f">3caeb443</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2019-03-06T21:11:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move reifyGHCi function into GhciMonad type class
This was the suggested change in !176 but missed the batch merge (!263).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4ca271d1880a6f4c5f49869de7f1920a2073adb6">4ca271d1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Introduce fragile modifier
Now since we have been a bit more stringent in testsuite cleanliness we
have been marking a lot of tests as fragile using the `skip` modifier.
However, this unfortunately means that we lose the association with the
ticket number documenting the fragility.
Here we introduce `fragile` and `fragile_for` to retain this
information.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/910185a3eb5fd2148e42d39f6374ab03d098b682">910185a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark heapprof001 as fragile on i386
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a65bcbe7db4f39d18012ce28cb99bed2ce18e7f5">a65bcbe7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Use fragile modifier for more tests
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f624dc15d196507c011079eaad9a31acef87a24c">f624dc15</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-07T02:48:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't allow i386-deb9 to fail
Also account for testsuite metric drift.
Metric Increase:
haddock.Cabal
haddock.base
T14683
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07f378cee37338c5f2655b3a7e46dfef3f1c5cc1">07f378ce</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-07T02:54:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add tests for Trac #16221 and #16342
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/25c3dd39f7d446f66b5c967be81f80cd7facb509">25c3dd39</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-07T02:54:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test Trac #16263
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7a68254a7284db5bf8f1fa82aba4a6825d8f050a">7a68254a</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-03-07T19:01:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16392: revertCAFs in external interpreter when necessary
We revert CAFs when loading/adding modules in ghci (presumably to refresh
execution states and to allow for object code to be unloaded from the runtime).
However, with `-fexternal-interpreter` enabled, we are only doing it in the
ghci process instead of the external interpreter process where the cafs are
allocated and computed. This makes sure that revertCAFs is done in the
appropriate process no matter if that flag is present or not.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/068b7e983f4a0b35f453aa5e609998efd0c3f334">068b7e98</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-07T19:07:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16391 by using occCheckExpand in TcValidity
The type-variables-escaping-their-scope-via-kinds check in
`TcValidity` was failing to properly expand type synonyms, which led
to #16391. This is easily fixed by using `occCheckExpand` before
performing the validity check.
Along the way, I refactored this check out into its own function,
and sprinkled references to Notes to better explain all of the moving
parts. Many thanks to @simonpj for the suggestions.
Bumps the haddock submodule.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1675d40afe07b9c414eaa37d85819f37f8420118">1675d40a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-03-08T01:44:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Always do the worker/wrapper split for NOINLINEs
Trac #10069 revealed that small NOINLINE functions didn't get split
into worker and wrapper. This was due to `certainlyWillInline`
saying that any unfoldings with a guidance of `UnfWhen` inline
unconditionally. That isn't the case for NOINLINE functions, so we
catch this case earlier now.
Nofib results:
--------------------------------------------------------------------------------
Program Allocs Instrs
--------------------------------------------------------------------------------
fannkuch-redux -0.3% 0.0%
gg +0.0% +0.1%
maillist -0.2% -0.2%
minimax 0.0% -0.8%
--------------------------------------------------------------------------------
Min -0.3% -0.8%
Max +0.0% +0.1%
Geometric Mean -0.0% -0.0%
Fixes #10069.
-------------------------
Metric Increase:
T9233
-------------------------
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/48927a9a1e6b455bdf9dc4d47695795f10fc1988">48927a9a</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-08T10:50:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: various improvements around the 'test' rule
- introduce a -k/--keep-test-files flag to prevent cleanup
- add -dstg-lint to the options that are always passed to tests
- infer library ways from the compiler to be tested instead of getting them
from the flavour (like make)
- likewise for figuring out whether the compiler to be tested is "debugged"
- specify config.exeext
- correctly specify config.in_tree_compiler, instead of always passing True
- fix formatting of how we pass a few test options
- add (potential) extensions to check-* program names
- build check-* programs with the compiler to be tested
- set TEST_HC_OPTS_INTERACTIVE and PYTHON env vars when running tests
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5d7441432e4c00a463f645248b354707d7d8335e">5d744143</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-08T10:56:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Drop remaining symlink traversal code from build scripts
This partly resolves #16325 (https://ghc.haskell.org/trac/ghc/ticket/16325).
As previously discussed in https://github.com/snowleopard/hadrian/issues/667,
we do not need the symlink traversal code in build scripts. However, it
appears we forgot to delete this code from our Stack-based build scripts,
which led to placing all build artefacts in an unexpected location when
using Hadrian in combination with symlink trees. This commit fixes this.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/826282540492d64c59cd3ba9df5fd0b2e92f76ef">82628254</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-03-08T11:02:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Testsuite: use 'fragile' instead of 'skip' for T3424, T14697
Also, replace some tabs with spaces to avoid a "mixed indent" warning that vim
gives me.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5be7ad7861c8d39f60b7101fd8d8e816ff50353a">5be7ad78</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-08T11:08:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use captureTopConstraints in TcRnDriver calls
Trac #16376 showed the danger of failing to report an error
that exists only in the unsolved constraints, if an exception
is raised (via failM).
Well, the commit 5c1f268e (Fail fast in solveLocalEqualities)
did just that -- i.e. it found errors in the constraints, and
called failM to avoid a misleading cascade.
So we need to be sure to call captureTopConstraints to report
those insolubles. This was wrong in TcRnDriver.tcRnExpr and
in TcRnDriver.tcRnType.
As a result the error messages from test T13466 improved slightly,
a happy outcome.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/224a6b864c6aa0d851fcbf79469e5702b1116dbc">224a6b86</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-03-08T19:05:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TH: support raw bytes literals (#14741)
GHC represents String literals as ByteString internally for efficiency
reasons. However, until now it wasn't possible to efficiently create
large string literals with TH (e.g. to embed a file in a binary, cf #14741):
TH code had to unpack the bytes into a [Word8] that GHC then had to re-pack
into a ByteString.
This patch adds the possibility to efficiently create a "string" literal
from raw bytes. We get the following compile times for different sizes
of TH created literals:
|| Size || Before || After || Gain ||
|| 30K || 2.307s || 2.299 || 0% ||
|| 3M || 3.073s || 2.400s || 21% ||
|| 30M || 8.517s || 3.390s || 60% ||
Ticket #14741 can be fixed if the original code uses this new TH feature.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2762f94dc27cc065dded7755f99c66cba26683dd">2762f94d</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2019-03-08T19:11:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #13839: GHCi warnings do not respect the default module header
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1f5cc9dc8aeeafa439d6d12c3c4565ada524b926">1f5cc9dc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-09T07:07:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop inferring over-polymorphic kinds
Before this patch GHC was trying to be too clever
(Trac #16344); it succeeded in kind-checking this
polymorphic-recursive declaration
data T ka (a::ka) b
= MkT (T Type Int Bool)
(T (Type -> Type) Maybe Bool)
As Note [No polymorphic recursion] discusses, the "solution" was
horribly fragile. So this patch deletes the key lines in
TcHsType, and a wodge of supporting stuff in the renamer.
There were two regressions, both the same: a closed type family
decl like this (T12785b) does not have a CUSK:
type family Payload (n :: Peano) (s :: HTree n x) where
Payload Z (Point a) = a
Payload (S n) (a `Branch` stru) = a
To kind-check the equations we need a dependent kind for
Payload, and we don't get that any more. Solution: make it
a CUSK by giving the result kind -- probably a good thing anyway.
The other case (T12442) was very similar: a close type family
declaration without a CUSK.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cfbedf1780002f4f76aa9c6c754818a436888e9f">cfbedf17</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-03-09T07:14:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Write .o files atomically. See #14533
This issue was reproduced with, and the fix confirmed with,
the `hatrace` tool for syscall-based fault injection:
https://github.com/nh2/hatrace
The concrete test case for GHC is at
https://github.com/nh2/hatrace/blob/e23d35a2d2c79e8bf49e9e2266b3ff7094267f29/test/HatraceSpec.hs#L185
A previous, nondeterministic reproducer for the issue was provided by
Alexey Kuleshevich in
https://github.com/lehins/exec-kill-loop
Signed-off-by: Niklas Hambüchen <niklas@fpcomplete.com>
Reviewed-by: Alexey Kuleshevich <alexey@fpcomplete.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/08ad38a93cb7037bbafcd3e12b27c876d714c5c0">08ad38a9</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2019-03-09T07:14:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Refactor: extract `withAtomicRename`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e76ee67510be951cea13636a763daae53108197c">e76ee675</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:30:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Factor out large bitmap walking
This will be needed by the mark phase of the non-moving collector
so let's factor it out.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e3e537e419ba8d02dac306d596fba3c1029f123">6e3e537e</a></strong>
<div>
<span>by Edward Z. Yang</span>
<i>at 2019-03-09T12:36:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make bkpcabal01 test compatible with new ordering requirements.
Previously, our test did something like this:
1. Typecheck p
2. Typecheck q (which made use of an instantiated p)
3. Build instantiated p
4. Build instantiated q
Cabal previously permitted this, under the reasoning that during
typechecking there's no harm in using the instantiated p even if we
haven't build it yet; we'll just instantiate it on the fly with p.
However, this is not true! If q makes use of a Template Haskell
splice from p, we absolutely must have built the instantiated p
before we typecheck q, since this typechecking will need to
run some splices. Cabal now complains that you haven't done
it correctly, which we indeed have not!
Reordering so that we do this:
1. Typecheck p
3. Build instantiated p
2. Typecheck q (which made use of an instantiated p)
4. Build instantiated q
Fixes the problem. If Cabal had managed the ordering itself, it would
have gotten it right.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6b2f09916e0c8c5f37c9fbe08eb076476501c8d6">6b2f0991</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-03-09T12:42:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">NCG: correctly escape path strings on Windows (#16389)
GHC native code generator generates .incbin and .file directives. We
need to escape those strings correctly on Windows (see #16389).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b760269c5914e128c07c66bacdbe86168003e82e">b760269c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rip out perl dependency
The object splitter was the last major user of perl. There remain a few
uses in nofib but we can just rely on the system's perl for this since
it's not critical to the build.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0cd989577a8b8d2666741fcac4fd3032ae212b80">0cd98957</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-09T12:48:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop utils/count_lines
This doesn't appear to be used anywhere in the build system and it
relies on perl. Drop it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bcb6769c83744c211d3ddddbc7fd9dec88452c88">bcb6769c</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-03-11T22:11:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ignore more version numbers in the testsuite
Prevents some tests from failing just due to mismatched version numbers.
These version numbers shouldn't cause tests to fail, especially since
we *expect* them to be regularly incremented. The motivation for this
particular set of changes came from the changes that came along with
the `base` version bump in 8f19ecc95fbaf2cc977531d721085d8441dc09b7.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/60b03adea8cc55ff65fbf6458487c3baf12bb0a1">60b03ade</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-11T22:18:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Change the warning in substTy back to an assertion
We'd like to enforce the substitution invariant (Trac #11371).
In a492af06d326453 the assertion was downgraded to a warning;
I'm restoring the assertion and making the calls that
don't maintain the invariant as unchecked.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2f453414c5b1b27b6a84a3b5c7cd1bb5449f1f5d">2f453414</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-11T22:18:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a test for Trac #13951
It no longer gives a warning.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b232231065f5e40ae3a6bd515bb42330cf484fcc">b2322310</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Allow passing CABFLAGS into build.cabal.sh
Setting `CABFLAGS=args` will pass the additional arguments to cabal
when it is invoked.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/61264556d5c817b55332a199b03fa1f559e92ee2">61264556</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Make libsuf and distDir stage aware
The version suffix needs to be the version of the stage 0 compiler
when building shared libraries with the stage 0 compiler.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/705fa21d674a5a799712346e01033db98b16e71d">705fa21d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Make makeRelativeNoSysLink total
makeRelativeNoSysLink would previously crash for no reason if the first
argument as `./` due to the call to `head`. This refactoring keeps the
behaviour the same but doesn't crash in this corner case.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4cf2160afe0e08fe29576895a1eced863d3a521d">4cf2160a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Fix rpath so shared objects work after being copied
After being copied all the shared objects end up in the same directory.
Therefore the correct rpath is `$ORIGIN` rather than the computed
path which is relative to the directory where it is built.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d7dd0285bbc364f89d4d97928674f7ea73ed2c8">2d7dd028</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Add ./hadrian/ghci.sh script for fast development feedback
Running the `./hadrian/ghci` target will load the main compiler into
a ghci session. This is intended for fast development feedback, modules are only
typechecked so it isn't possible to run any functions in the repl.
You can also use this target with `ghcid`.
The first time this command is run hadrian will need to compile a few dependencies
which will take 1-2 minutes. Loading GHC into GHCi itself takes about 30 seconds.
Internally this works by calling a new hadrian target called `tool-args`.
This target prints out the package and include flags which are necessary
to load files into ghci. The same target is intended to be used by other
tooling which uses the GHC API in order to set up the correct GHC API
session. For example, using this target it is also possible to use HIE
when developing on GHC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb684e650166bc2f95d53e1582813e6f2ab31121">bb684e65</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove training whitespace
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/72c455a4a1d2dbeeed9c9d4e80cf333bdf98fcf2">72c455a4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Add ghc-in-ghci build job
This is a separate build job to the other hadrian jobs as it only takes
about 2-3 minutes to run from cold. The CI tests that the
`./hadrian/ghci` script loads `ghc/Main.hs` successfully.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5165378d87602a8ce24776d220039fc05075d31f">5165378d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:04:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove trailing whitespace
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/50249a9f652ae3440e9462fdc9914edc924091f1">50249a9f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-12T13:13:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use transSuperClasses in TcErrors
Code in TcErrors was recursively using immSuperClasses,
which loops in the presence of UndecidableSuperClasses.
Better to use transSuperClasses instead, which has a loop-breaker
mechanism built in.
Fixes issue #16414.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/62db9295ba79d5229585fb08530fff944179c609">62db9295</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-12T13:19:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove duplicate functions in StgCmmUtils, use functions from CgUtils
Also remove unused arg from get_Regtable_addr_from_offset
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4db9bdd91549b4eada5324cd7452e7e74ada28f5">4db9bdd9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-12T13:25:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for #16347
Commit 1f5cc9dc8aeeafa439d6d12c3c4565ada524b926 ended up
fixing #16347. Let's add a regression test to ensure that it stays
fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/02ddf947f40837c3aa0a196a4b2faf254764cfc3">02ddf947</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:42:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Update ci-images commit</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a0cab873b592290b2b389f88069ee03a89f32291">a0cab873</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-12T13:44:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert: Update ci-images commit</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23fc615679072a6fa433460a92f597af2ae388b2">23fc6156</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-13T19:03:53Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark heapprof001 as fragile on all platforms
See #15382.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb17c2da1774a2565946f43261140f2a8b328840">cb17c2da</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-13T19:10:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: build (and retrieve) binary distributions in CI
With all the recent fixes to the binary-dist rule in Hadrian, we can now run
that rule in CI and keep the bindists around in gitlab as artifacts, just like
we do for the make CI jobs.
To get 'autoreconf' to work in the Windows CI, we have to run it through the
shell interpreter, so this commit does that along the way.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/36546a43e490ea6f989e6cad369d1a251c94a42b">36546a43</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-13T19:16:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16411 by making dataConCannotMatch aware of (~~)
The `dataConCannotMatch` function (which powers the
`-Wpartial-fields` warning, among other things) had special reasoning
for explicit equality constraints of the form `a ~ b`, but it did
not extend that reasoning to `a ~~ b` constraints, leading to #16411.
Easily fixed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10a971208dcd537742fe4e15b2713eb0f3052a3a">10a97120</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-14T16:20:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add testcase for #16394
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8162eab27101cddb0c822347300640f07110379a">8162eab2</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-15T13:59:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove the GHCi debugger's panicking isUnliftedType check
The GHCi debugger has never been that robust in the face of
higher-rank types, or even types that are _interally_ higher-rank,
such as the types of many class methods (e.g., `fmap`). In GHC 8.2,
however, things became even worse, as the debugger would start to
_panic_ when a user tries passing the name of a higher-rank thing
to `:print`. This all ties back to a strange `isUnliftedType` check
in `Debugger` that was mysteriously added 11 years ago
(in commit 4d71f5ee6dbbfedb4a55767e4375f4c0aadf70bb) with no
explanation whatsoever.
After some experimentation, no one is quite sure what this
`isUnliftedType` check is actually accomplishing. The test suite
still passes if it's removed, and I am unable to observe any
differences in debugger before even with data types that _do_ have
fields of unlifted types (e.g., `data T = MkT Int#`). Given that
this is actively causing problems (see #14828), the prudent thing
to do seems to be just removing this `isUnliftedType` check, and
waiting to see if anyone shouts about it. This patch accomplishes
just that.
Note that this patch fix the underlying issues behind #14828, as the
debugger will still print unhelpful info if you try this:
```
λ> f :: (forall a. a -> a) -> b -> b; f g x = g x
λ> :print f
f = (_t1::t1)
```
But fixing this will require much more work, so let's start with the
simple stuff for now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d10e23687d166ea6656fe0caf9c6eb2642a61b7b">d10e2368</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:05:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: remove unneeded imports.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4df757729dab0a5be07f111843ed3ca9de6c3771">4df75772</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:05:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: remove unneeded rpaths.
Issue #12770
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/afc80730fd235f5c5b2d0b9fc5a10c16ef9865f6">afc80730</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-15T14:11:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Git ignore .hadrian_ghci (generated by the ./hadrian/ghci.sh)
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/610ec224a49e092c802a336570fd9613ea15ef3c">610ec224</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-15T14:17:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Trac ticket URLs to point to GitLab
This moves all URL references to Trac tickets to their corresponding
GitLab counterparts.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97032ed9b2594c8939cab776ff871051d6dba30a">97032ed9</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-15T14:24:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Report better suggestion for GADT data constructor
This addresses issue #16427. An easy fix.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/83e09d3c2b2e84b85fa25e271eff2747fc783f09">83e09d3c</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-03-15T14:30:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PPC NCG: Use liveness information in CmmCall
We make liveness information for global registers
available on `JMP` and `BCTR`, which were the last instructions
missing. With complete liveness information we do not need to
reserve global registers in `freeReg` anymore. Moreover we
assign R9 and R10 to callee saves registers.
Cleanup by removing `Reg_Su`, which was unused, from `freeReg`
and removing unused register definitions.
The calculation of the number of floating point registers is too
conservative. Just follow X86 and specify the constants directly.
Overall on PowerPC this results in 0.3 % smaller code size in nofib
while runtime is slightly better in some tests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57201bebaeb15c5635ac5ea153b0141b55670199">57201beb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-15T14:36:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add flavours link</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4927117cd6166a97455d788dbf7433c95441b57a">4927117c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-16T12:08:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve error recovery in the typechecker
Issue #16418 showed that we were carrying on too eagerly after a bogus
type signature was identified (a bad telescope in fact), leading to a
subsequent crash.
This led me in to a maze of twisty little passages in the typechecker's
error recovery, and I ended up doing some refactoring in TcRnMonad.
Some specfifics
* TcRnMonad.try_m is now called attemptM.
* I switched the order of the result pair in tryTc,
to make it consistent with other similar functions.
* The actual exception used in the Tc monad is irrelevant so,
to avoid polluting type signatures, I made tcTryM, a simple
wrapper around tryM, and used it.
The more important changes are in
* TcSimplify.captureTopConstraints, where we should have been calling
simplifyTop rather than reportUnsolved, so that levity defaulting
takes place properly.
* TcUnify.emitResidualTvConstraint, where we need to set the correct
status for a new implication constraint. (Previously we ended up
with an Insoluble constraint wrapped in an Unsolved implication,
which meant that insolubleWC gave the wrong answer.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/600a1ac3829c2b216d2cc23a1e8256841ffe6466">600a1ac3</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2019-03-16T12:08:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add location to the extra-constraints wildcard
The extra-constraints wildcard had lost its location
(issue #16431).
Happily this is easy to fix. Lots of error improvements.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1c1b63d63efe8b0f789aa7d5b87cfac3edd213eb">1c1b63d6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:13:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compiler: Disable atomic renaming on Windows
As discussed in #16450, this feature regresses CI on Windows, causing
non-deterministic failures due to missing files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6764da436ae039645df2af1c1d53f7cd45a9638b">6764da43</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:16:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Explicitly set bindist tarball name
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ad79ccd9c86ae2eccb625ab7000cf899f23ff840">ad79ccd9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:17:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Generate documentation tarball
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3f2291e47b8e00f1312c9be31484ceddd1289212">3f2291e4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-16T23:17:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Generate source tarballs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb61371e3260e07be724a04b72a935133f66b514">cb61371e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-17T09:05:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-heap: Introduce closureSize
This function allows the user to compute the (non-transitive) size of a
heap object in words. The "closure" in the name is admittedly confusing
but we are stuck with this nomenclature at this point.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c01d5af31c8feb634fc3dffc84e6e7ece61ba190">c01d5af3</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-03-18T02:23:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extract out use of UnboxedTuples from GHCi.Leak
See #13101 + #15454 for motivation. This change reduces the number of
modules that need to be compiled to object code when loading GHC into
GHCi.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6113d0d4540af7853c71e9f42a41c3b0bab386fd">6113d0d4</a></strong>
<div>
<span>by Radosław Rowicki</span>
<i>at 2019-03-18T02:29:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update bug tracker link to point to gitlab instead of deprecated trac</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b8326897251ebdbb896da2b28ad27a48ee8f2582">b8326897</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-18T03:16:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Always build fedora27
This ends up being much easier to use than Debian 9 under NixOS.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/acf2129d49989071e296634711e3f4d9ebed6ee0">acf2129d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-18T03:17:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Implement head.hackage jobs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71648c35ad243396433d017da9ce18bea603d1ce">71648c35</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:04:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Implement support for i386/Windows bindists
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d94ca74f2c083c86be1799bf1534db078ab611a6">d94ca74f</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-03-20T03:10:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">err: clean up error handler
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/398f2cbc6af6fcb6135ba2d56c154869bea071a0">398f2cbc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:16:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump Cabal submodule to 3.0
Metric Increase:
haddock.Cabal
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/89a201e88a9313ecff4f5659c38e40136cfc0b76">89a201e8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-03-20T03:22:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Update Wiki URLs to point to GitLab
The user's guide uses the `ghc-wiki` macro, and substitution rules
are complicated. So I manually edited `.rst` files without sed.
I changed `Commentary/Latedmd` only to a different page.
It is more appropriate as an example.
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98ff1a5696dd10233229c790eb9642a26e13a9a3">98ff1a56</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace nOfThem by replicate
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6a47414f0cc6d538fbec7ca537ad36fbcc1a2480">6a47414f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typos
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e26e60dd21c235678447ee903afbf15228e40de">1e26e60d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify monadic code
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c045bd7cfaef2f4b6753e5a19637a658dce9e58d">c045bd7c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-03-20T03:28:42Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove deprecated reinitializeGlobals
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6d19ad72f6a7283dfbfa6facb58063c0ff777af8">6d19ad72</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T03:34:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bump docker images
To install lndir and un-break the source distribution job.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c7a84a6067311c204f6fa459e5f59b0958863118">c7a84a60</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-20T03:34:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update .gitlab-ci.yml</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db1362375cb960529cd068dd6cacd9ba0cf3977b">db136237</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16219 and cabal09 as broken on Windows
See #16386.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7cd8e330a2c82fe048e501671b32cd2ec5b5c0d9">7cd8e330</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix expected output on Windows for various ghci tests
Broke as -Wimplicit-kind-vars no longer exists. Specifically ghci024,
ghci057 and T9293.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/23b639fd1b7c558383792c48bd35f457b01b2515">23b639fd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T5836 as broken on Windows
See #16387.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a1bda08d6cd1fe1cb8d77c552e33f5d48936aa8c">a1bda08d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T15904 as broken on Windows
It seems to look for some sort of manifest file. See #16388.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b7f5d5526ac0989fcbe0cb1aff00aaee3e2690bb">b7f5d552</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T16190 as broken on Windows
There seems to be some filepath funniness due to TH embedding going on
here. See #16389.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a0c31f78647efc1f9aba6c7ac52f64237143b539">a0c31f78</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/plugins: Add multi_cpu_race modifier on Windows
A few tests previously failed with various failure modes. For instance,
`plugin-recomp-change` fails with:
```
Wrong exit code for plugin-recomp-change()(expected 0 , actual 2 )
Stderr ( plugin-recomp-change ):
Simple Plugin Passes Queried
Got options:
Simple Plugin Pass Run
C://GitLabRunner//builds//8fc0e283//0//ghc//ghc//inplace//mingw//bin/ld.exe: cannot find -lHSplugin-recompilation-0.1-CPeObcGoBuvHdwBnpK9jQq
collect2.exe: error: ld returned 1 exit status
`gcc.exe' failed in phase `Linker'. (Exit code: 1)
make[2]: *** [Makefile:112: plugin-recomp-change] Error 1
*** unexpected failure for plugin-recomp-change(normal)
```
It's unclear whether the ghc-pkg concurrency issue mentioned in all.T is
the culprit but the set of tests that fail overlaps strongly with the
set of tests that lack the `multi_cpu_race` modifier. Let's see if
adding it fixes them.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/88a6e9a4e596d22d1dd8b983a15781183050f51a">88a6e9a4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T10672 as broken
This test, which is only run on Windows, seems to be reliably timing
out.
See #16390.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f4d3aaaf318efa5a476bc35b16d0327e9d0a0b66">f4d3aaaf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/plugins: Increase compile timeout on Windows
I think the linker is routinely eating through the timeout,
leading to many spurious failures.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae382245ea65bf8824db7f4dbab5ade78e6ed9dd">ae382245</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/RtsSymbols: Drop __mingw_vsnwprintf
As described in #16387, this is already defined by mingw and
consequently defining it in the RTS as well leads to multiple definition
errors from the RTS linker at runtime.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f79f93e47e28f662478493f2b651153a09df404e">f79f93e4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't mark cabal09 as broken
It doesn't fail reliably.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d98cb7637a305e31de5e05a1feb9f6f2339f8cc4">d98cb763</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Don't mark T5836 as broken
I believe removing __mingw_vsnwprintf from RtsSymbols fixed #16387.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8c1a27435e990287fa928a71f632007eea23b48a">8c1a2743</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Try again
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3394a7cd27cec64a577ee0a9df887a431ccb3696">3394a7cd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T22:41:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Display observed exit code on failure due to bad exit code
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/368187591a5454e47c4e08dae90d39d2af1fad40">36818759</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adjust section placement and relocation logic for Mach-O
1. Place each section on a separate page to ensure required
alignment (wastes lots ot space, needs to be improved).
2. Unwire relocation logic from macho sections (the most fiddly part
is adjusting internal relocations).
Other todos:
0. Add a test for section alignment.
1. Investigate 32bit relocations!
2. Fix memory leak in ZEROPAGE section allocation.
3. Fix creating redundant jump islands for GOT.
4. Investigate more compact section placement.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78c61acf15c66a17df63da60226acff3a2dda585">78c61acf</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use segments for section layout
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7bbfb789913b84660bc743aeffee06e18cbde2f0">7bbfb789</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Address some todos and fixmes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3cdcc0b55de5f7a35dc12430f021a665b0477e95">3cdcc0b5</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a linker test re: section alignment
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cb745c84a192c4a1f992649fbda584941f8ec3eb">cb745c84</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add missing levels to SegmentProt enum
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d950f11eff0a5dc0ad950fbd47e3ee32649d1d62">d950f11e</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Directly test section alignment, fix internal reloc probing length
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3fb10fcfc03d5590579743494450fc8b06b179ad">3fb10fcf</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-03-20T23:52:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Gracefully handle error condition in Mach-O relocateSection
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dc713c71540556ee9dcc90cfd8046c98af5d3d78">dc713c71</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T23:58:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Move validate-x86_64-linux-deb9 to full-build stage
The `build` stage is meant to be a minimal smoke test to weed out broken
commits. The `validate-x86_64-linux-deb9` build will generally catch a
subset of issues caught by `validate-x86_64-linux-deb9-debug` so only
the latter should be in `build`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/505c5ab2b9d9d4ac721d1a6fea020e0886c02eff">505c5ab2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-20T23:58:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Add some descriptions of the stages
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646e3dc20ebe25baae898a6b22895ddd015fc975">646e3dc2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-03-21T00:04:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a bench flavour to Hadrian
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8d18a873c5d7688c6e7d91efab6bb0d6f99393c6">8d18a873</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-21T00:10:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject nested predicates in impredicativity checking
When GHC attempts to unify a metavariable with a type containing
foralls, it will be rejected as an occurrence of impredicativity.
GHC was /not/ extending the same treatment to predicate types, such
as in the following (erroneous) example from #11514:
```haskell
foo :: forall a. (Show a => a -> a) -> ()
foo = undefined
```
This will attempt to instantiate `undefined` at
`(Show a => a -> a) -> ()`, which is impredicative. This patch
catches impredicativity arising from predicates in this fashion.
Since GHC is pickier about impredicative instantiations, some test
cases needed to be updated to be updated so as not to fall afoul of
the new validity check. (There were a surprising number of
impredicative uses of `undefined`!) Moreover, the `T14828` test case
now has slightly less informative types shown with `:print`. This is
due to a a much deeper issue with the GHCi debugger (see #14828).
Fixes #11514.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7b213b8dc668be216cb2efd7140a2f0263a454e5">7b213b8d</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-21T00:17:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Print test suite results ("unexpected failures" etc.) in sorted order
Fixes #16425
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f199a8437ba70e65910220625e690157af679573">f199a843</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-03-21T00:23:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check.hs: Fix a few typos
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/07d44ed144ef06de4b125389f318c1f514eee004">07d44ed1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-21T00:29:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Depend upon shlwapi on Windows
As noted in #16466, `System.Environment.getExecutablePath` depends upon
`PathFileExistsW` which is defined by `shlwapi`.
Fixes #16466.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1382d09efadc900f7242c2e23482a9970eaf4f9b">1382d09e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-21T00:35:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused XArrApp and XArrForm extension points
!301 removed the `HsArrApp` and `HsArrForm` constructors, which
renders the corresponding extension points `XArrApp` and `XArrForm`
useless. This patch finally rips them out.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3423664b80ce3c8f5fa3104f3b0a1bcd0e539a02">3423664b</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2019-03-21T00:41:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix specification of load_load_barrier [skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/84c77a675ccc4b6bbd0f271d7859266872eab777">84c77a67</a></strong>
<div>
<span>by Alexandre Esteves</span>
<i>at 2019-03-21T21:43:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typo [skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7092b2de6fb8f23e03c0be7bd23bf394e087fc00">7092b2de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T03:38:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Only run check-makefiles.py linter in testsuite dir
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/322239de9555ff753db08d1508ee52a484c89093">322239de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T03:38:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Run linters on merge requests
It seems that it has failed to execute at all since it was implemented.
We now run the linters on merge requests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8f8d532c6c9ade79c5ba1a6e08b3e082db1a5fcd">8f8d532c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:45:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Do full `perf` build when building Windows releases
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ef72d3f2b40f4a180501507797378952fc38bae">2ef72d3f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:45:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Pass --target explicitly to configure on Windows
Otherwise configure fails in the 32-bit case with
```
This GHC (c:/GitLabRunner/builds/8fc0e283/0/ghc/ghc/toolchain/bin/ghc) does not generate code for the build platform
GHC target platform : x86_64-unknown-mingw32
Desired build platform : i386-unknown-mingw32
```
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8b14f536b8ddbb83341464c5d07066ad8c3960d3">8b14f536</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T03:51:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump cabal submodule
Due to https://github.com/haskell/cabal/issues/5953.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dbe4557f0cfb863b1e6267a0f6a6e6d2cf10430a">dbe4557f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-22T14:02:32Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CI: Allow failure in packaging step
This depends on the windows build which is still allowed to fail. If
that job fails then the packaging job will also fail.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/366f1c68c1b688baab61934eee62c5a7992db525">366f1c68</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T14:08:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Deploy documentation snapshot via GitLab Pages
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d608d5434772c121759535d13c286a676abb565f">d608d543</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2019-03-22T14:14:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force LF line ending for md5sum [skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cd07086ada34888c08585f4dc98a961618748ed0">cd07086a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T14:34:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix linters
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab51bee40c82cd552bcf13e24b67d43f3b8d25f3">ab51bee4</a></strong>
<div>
<span>by Herbert Valerio Riedel</span>
<i>at 2019-03-22T14:34:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Remove `Monad(fail)` method and reexport `MonadFail(fail)` instead
As per https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail
Coauthored-by: Ben Gamari <ben@well-typed.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/266b49ca3f3f8846eae29d984eb04339dbc0c2c5">266b49ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:33:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Clean up linter
I'm not sure why these steps were done but they seem counterproductive
and unnecessary.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/44b08ede3f4afb05a55c1acd5b644a38e0fb14f5">44b08ede</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:38:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix YAML syntax
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/971f4530004868b9a043252d6f25081388d99e0d">971f4530</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-22T22:49:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Compute merge base against remote tracking branch
Previously we would use the local branch with the name
`$CI_MERGE_REQUEST_TARGET_BRANCH_NAME` to compute the merge base when
linting. However, this branch isn't necessarily up-to-date. We should
rather use `origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8d01b57273e72a9a9d4a76a8f3f15f59441ed30a">8d01b572</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-23T16:37:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Explicitly fetch target branch
`git fetch`, which we used previously, doesn't update the remote
tracking branches.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cd85f8a71bb56cff332560e1d571b3406789fb71">cd85f8a7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-24T12:46:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow linters to fail for now
They are broken and I don't have time to fix them at the moment.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d763b2e7097a2dc14f4917d7e9f0cbd5c7085961">d763b2e7</a></strong>
<div>
<span>by Haskell-mouse</span>
<i>at 2019-03-25T18:02:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">User's Guide: extensions compatibility
Adds the mention that extensions "AllowAmbiguousTypes" and "RankNTypes"
are not always compatible with each other.
Specifies the conditions and causes of failing in resolving
of ambiguity.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/200d65ef41efda8ff2b524f7a15c14620d6a57b9">200d65ef</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-25T18:02:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Check hadrian/ghci.sh script output to determine pass/fail
ghci always exits with exit code 0 so you have to check the output
to see if the modules loaded succesfully.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e07368faf5090a5ac803f0e4fa3a5a2a4aba05c">8e07368f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-03-25T18:02:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor ./hadrian/ghci.sh for better error messages
By separating these two lines, if the first command fails then `ghci` is
not loaded. Before it would still load ghci but display lots of errors
about not being able to find modules.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3769e3a829f4514f82ce7f7d218867f1d69d3d38">3769e3a8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-03-25T18:02:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update Wiki URLs to point to GitLab
This moves all URL references to Trac Wiki to their corresponding
GitLab counterparts.
This substitution is classified as follows:
1. Automated substitution using sed with Ben's mapping rule [1]
Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...
New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...
2. Manual substitution for URLs containing `#` index
Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz
New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz
3. Manual substitution for strings starting with `Commentary`
Old: Commentary/XxxYyy...
New: commentary/xxx-yyy...
See also !539
[1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b9da28680aa7ac128ba31680becb4be6f9b21ed4">b9da2868</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-03-25T18:02:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct duplicate 4.12.0.0 entry in base's changelog
See #16490.
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab41c1b429374e22f51c06128c173ef4f14be67d">ab41c1b4</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-27T11:20:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Bump Shake to 0.17.6
The new release of Shake comes with these relevant features:
* use symlinks for --shared
* add --compact for a Bazel/Buck style output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/646f2e79c5d6e79341693b1b9660da974102cec2">646f2e79</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-03-27T11:20:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: trace the execution of expensive Cabal calls
We use Cabal to parse, configure, register and copy packages, which are
expensive operations that are currently not visible to Shake's profiling
infrastructure. By using `traced` we tell Shake to add these IO actions
to the profiling report, helping us to identify performance bottlenecks.
We use short tracing keys, as recommended in Shake docs: the name of the
current target is already available in the rest of the profiling
information.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb12f53c2779f15ee24786e8c3beae3133506a01">fb12f53c</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-03-27T11:20:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: introduce an easy way for users to build with -split-sections
Any user can now trivially build any number of Haskell packages with
`-split-sections` by using `splitSections`/`splitSectionsIf` on any
existing or new flavour:
-- build all packages but the ghc library with -split-sections
splitSections :: Flavour -> Flavour
-- build all packages that satisfy the given predicate
-- with --split-sections
splitSectionsIf :: (Package -> Bool) -> Flavour -> Flavour
See the new section in `doc/user-settings.md`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3dec527a840a8165c33579bca09740ca9cf1f4de">3dec527a</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-03-27T11:20:09Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: don't use -zorigin on darwin.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5730f86331df4aa9b3d7b5ab59b1ebeafceaeadb">5730f863</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-03-27T11:20:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Minor refactoring in copy array primops:
- `emitCopySmallArray` now checks size before generating code and
doesn't generate any code when size is 0. `emitCopyArray` already does
this so this makes small/large array cases the same in argument
checking.
- In both `emitCopySmallArray` and `emitCopyArray` read the `dflags`
after checking the argument.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4acdb769705de63c721555e70bef5c3dff87e3c5">4acdb769</a></strong>
<div>
<span>by Chaitanya Koparkar</span>
<i>at 2019-03-27T11:20:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix a few broken Trac links [skip ci]
This patch only attempts to fix links that don't automatically re-direct to the correct URL.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97ad5cfb1c41d19cc56f7450c1e42d988dc9fd2d">97ad5cfb</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2019-03-29T18:18:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add some tips to the Troubleshooting section of README
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8a20bfc21da6a47087c8069f92691629eb47951d">8a20bfc2</a></strong>
<div>
<span>by Michael Peyton Jones</span>
<i>at 2019-03-29T18:18:14Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Visibility: handle multiple units with the same name
Fixes #16228. The included test case is adapted from the reproduction in
the issue, and fails without this patch.
------
We compute an initial visilibity mapping for units based on what is
present in the package databases. To seed this, we compute a set of all
the package configs to add visibilities for.
However, this set was keyed off the unit's *package name*. This is
correct, since we compare packages across databases by version. However,
we would only ever consider a single, most-preferable unit from the
database in which it was found.
The effect of this was that only one of the libraries in a Cabal package
would be added to this initial set. This would cause attempts to use
modules from the omitted libraries to fail, claiming that the package
was hidden (even though `ghc-pkg` would correctly show it as visible).
A solution is to do the selection of the most preferable packages
separately, and then be sure to consider exposing all units in the
same package in the same package db. We can do this by picking a
most-preferable unit for each package name, and then considering
exposing all units that are equi-preferable with that unit.
------
Why wasn't this bug apparent to all people trying to use sub-libraries
in Cabal? The answer is that Cabal explicitly passes `-package` and
`-package-id` flags for all the packages it wants to use, rather than
relying on the state of the package database. So this bug only really
affects people who are trying to use package databases produced by Cabal
outside of Cabal itself.
One particular example of this is the way that the
Nixpkgs Haskell infrastructure provides wrapped GHCs: typically these
are equipped with a package database containing all the needed
package dependencies, and the user is not expected to pass
`-package` flags explicitly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/754b5455aa0983c7702546a6c64061c95733997a">754b5455</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2019-03-29T18:18:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: make nfib compute the Fibonacci sequence [skipci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1a567133f291234f3921b5badaae8a2de6d19ce0">1a567133</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-29T18:18:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Check that changelogs don't contain "TBA"
This ensures that the release dates in the library changelogs are
properly set.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e15ca54c09331378f018abc315a4c6c68db9e1a">6e15ca54</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-29T18:18:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump transformers to 0.5.6.2
See #16199.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6f7115dfd4fbb439a309a8381c4d02c450170cdc">6f7115df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-03-30T11:42:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ci: Ensure index.html is preserved in documentation tarball
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33173a51c77d9960d5009576ad9b67b646dfda3c">33173a51</a></strong>
<div>
<span>by Alexandre</span>
<i>at 2019-04-01T07:32:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;"> Add support for bitreverse primop
This commit includes the necessary changes in code and
documentation to support a primop that reverses a word's
bits. It also includes a test.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a3971b4e8cb2f07387fbc165d46cd861a914c193">a3971b4e</a></strong>
<div>
<span>by Alexandre</span>
<i>at 2019-04-01T07:32:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump ghc-prim's version where needed
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/061276ea5d265eb3c23a3698f0a10f6a764ff4b4">061276ea</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-04-01T07:32:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unnecessary uses of UnboxedTuples pragma (see #13101 / #15454)
Also removes a couple unnecessary MagicHash pragmas
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e468c61333205cc89244acc01432c8493cb06d62">e468c613</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Support Shake's --lint-fsatrace feature.
Using this feature requires fsatrace (e.g. https://github.com/jacereda/fsatrace).
Simply use the `--lint-fsatrace` option when running hadrian.
Shake version >= 0.17.7 is required to support linting out of tree build dirs.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e9e4197f1a8b6b53483bd984d241b0f2922a5bf">1e9e4197</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add merge request template for backports for 8.8
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/55650d147bce7cd005327ebd5807fe2851a4e2e1">55650d14</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T07:32:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add some simply issue templates
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/27b99ed8ede3d54932a432402de7dc43d1445f8f">27b99ed8</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-04-01T07:32:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clean up URLs to point to GitLab
This moves URL references to old Trac to their corresponding
GitLab counterparts.
This patch does not update the submodule library, such as
libraries/Cabal.
See also !539, !606, !618
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/18d1555d6e8d8988bcf19a4411a9ff432898282e">18d1555d</a></strong>
<div>
<span>by Adam Sandberg Eriksson</span>
<i>at 2019-04-01T07:32:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: document the use of the LD variable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10352efa453810b7b49be475cd2ebf3c2fc0cd61">10352efa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T22:22:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Add feature request MR template
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1e52054bab20f28c7447fe80dad5353e71cea774">1e52054b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T23:16:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Move feature request template to issue_templates
Whoops.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e5c21ca9dfcd7ff3b382f557a91c50c0a45e4330">e5c21ca9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-01T23:16:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Mention ~"user facing" label
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/39282422afe58a0855c2fe5315163236c116c2f4">39282422</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-02T00:01:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump array submodule
This bumps `array` to version 0.5.4.0 so that we can distinguish
it with `MIN_VERSION_array` (as it introduces some changes to the
`Show` instance for `UArray`).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7cf5ba3dba88356571197b470556e888581212d7">7cf5ba3d</a></strong>
<div>
<span>by Michal Terepeta</span>
<i>at 2019-04-02T00:07:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve performance of newSmallArray#
This:
- Hoists part of the condition outside of the initialization loop in
`stg_newSmallArrayzh`.
- Annotates one of the unlikely branches as unlikely, also in
`stg_newSmallArrayzh`.
- Adds a couple of annotations to `allocateMightFail` indicating which
branches are likely to be taken.
Together this gives about 5% improvement.
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dd9c82ef38e87ede01d81907c5037845f2944435">dd9c82ef</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T00:13:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: correct deps for ghc builder.
Previously, when needing ghc as a builder, the ghcDeps (Files
the GHC binary depends on) for the current stage were needed.
This is incorrect as the previous stage's ghc is used for building.
This commit fixes the issue, needing the previous stage's ghcDeps.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/345306d3fa5e84de8b6783c0bc70cf3ba5ecd2b7">345306d3</a></strong>
<div>
<span>by Alexandre Baldé</span>
<i>at 2019-04-02T16:34:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix formatting issue in ghc-prim's changelog [skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f54b5124bd449dd0d818725a5797e7aa9d9e9eba">f54b5124</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T16:40:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: traceAllow deep dependencies when compilling haskell object files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d132b30ad7ee73606c745ad7e0b81383eea69d0a">d132b30a</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-02T16:40:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: lint ignore autom4te and ghc-pkg cache files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bf73419518ca550e85188616f860961c7e2a336b">bf734195</a></strong>
<div>
<span>by Simon Marlow</span>
<i>at 2019-04-02T16:46:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add myself to libraries/ghci</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5a75ccd0993ff2fdf827824e28ae7db4ad9c25ad">5a75ccd0</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-03T04:34:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix faulty substitutions in StgCse (#11532).
`substBndr` should rename bindings which shadow existing ids.
However while it was renaming the bindings it was not adding proper substitutions
for renamed bindings.
Instead of adding a substitution of the form `old -> new` for renamed
bindings it mistakenly added `old -> old` if no replacement had taken
place while adding none if `old` had been renamed.
As a byproduct this should improve performance, as we no longer add
useless substitutions for unshadowed bindings.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2ec749b5994aef0eff9185ad2985bfa847cec021">2ec749b5</a></strong>
<div>
<span>by Nathan Collins</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix typo
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ea192a0932c6a95d7854e86f743c11249af23ded">ea192a09</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Add documentation that liftA2 used to not be a typeclass method
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/733f1b52448e5ddd5f3f0d218050f5f22a707b5e">733f1b52</a></strong>
<div>
<span>by Frank Steffahn</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Typo in Users Guide, Glasgow Exts
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3364def0a28d8b888f558cb9fdab379685636854">3364def0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">integer-gmp: Write friendlier documentation for Integer
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dd3a3d08e99114b791f5d1ef9218d922cdfd90e0">dd3a3d08</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">integer-simple: Add documentation for Integer type
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/722fdddf31932236d4246821cb79987fa9422a7e">722fdddf</a></strong>
<div>
<span>by Chris Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct two misspellings of "separately"
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bf6dbe3d1046573cb71fd534a326a9a0e6f1b220">bf6dbe3d</a></strong>
<div>
<span>by Chris Martin</span>
<i>at 2019-04-03T04:41:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Inline the definition of 'ap' in the Monad laws
The law as it is currently written is meaningless, because nowhere have
we defined the implementation of 'ap'. The reader of the Control.Monad
documentation is provided with only a type signature,
> ap :: Monad m => m (a -> b) -> m a -> m b
an informal description,
> In many situations, the liftM operations can be replaced by uses of
> ap, which promotes function application.
and a relationship between 'ap' and the 'liftM' functions
> return f `ap` x1 `ap` ... `ap` xn
> is equivalent to
> liftMn f x1 x2 ... xn
Without knowing how 'ap' is defined, a law involving 'ap' cannot
provide any guidance for how to write a lawful Monad instance, nor can
we conclude anything from the law.
I suspect that a reader equipped with the understanding that 'ap' was
defined prior to the invention of the Applicative class could deduce
that 'ap' must be defined in terms of (>>=), but nowhere as far as I can
tell have we written this down explicitly for readers without the
benefit of historical context.
If the law is meant to express a relationship among (<*>), (>>=), and
'return', it seems that it is better off making this statement directly,
sidestepping 'ap' altogether.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7b090b53fea065d2cfd967ea919426af9ba8d737">7b090b53</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T07:57:40Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: Always use AC_LINK_ELSEIF when testing against assembler
This fixes #16440, where the build system incorrectly concluded that the
`.subsections_via_symbols` assembler directive was supported on a Linux
system. This was caused by the fact that gcc was invoked with `-flto`;
when so-configured gcc does not call the assembler but rather simply
serialises its AST for compilation during the final link.
This is described in Note [autoconf assembler checks and -flto].
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4626cf213fe7affe5f8c2d94dbf03e727c816694">4626cf21</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-04-03T08:03:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix Uncovered set of literal patterns
Issues #16289 and #15713 are proof that the pattern match checker did
an unsound job of estimating the value set abstraction corresponding to
the uncovered set.
The reason is that the fix from #11303 introducing `NLit` was
incomplete: The `LitCon` case desugared to `Var` rather than `LitVar`,
which would have done the necessary case splitting analogous to the
`ConVar` case.
This patch rectifies that by introducing the fresh unification variable
in `LitCon` in value abstraction position rather than pattern postition,
recording a constraint equating it to the constructor expression rather
than the literal. Fixes #16289 and #15713.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6f13e7b13de361f0813a8752a7279ec3c1383755">6f13e7b1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T12:12:26Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Build hyperlinked sources for releases
Fixes #16445.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/895394c26156993a9405039fe53fde3a6b1414b7">895394c2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-03T12:15:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Fix label names in issue templates
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/75abaaead796415cf2b5da610f4b3ee75b9d7759">75abaaea</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-04T08:23:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace git.haskell.org with gitlab.haskell.org (#16196)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/25c02ea172ef1dad2d12d8baff6ce57a68bf4127">25c02ea1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T08:29:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16518 with some more kind-splitting smarts
This patch corrects two simple oversights that led to #16518:
1. `HsUtils.typeToLHsType` was taking visibility into account in the
`TyConApp` case, but not the `AppTy` case. I've factored out the
visibility-related logic into its own `go_app` function and now
invoke `go_app` from both the `TyConApp` and `AppTy` cases.
2. `Type.fun_kind_arg_flags` did not properly split kinds with
nested `forall`s, such as
`(forall k. k -> Type) -> (forall k. k -> Type)`. This was simply
because `fun_kind_arg_flags`'s `FunTy` case always bailed out and
assumed all subsequent arguments were `Required`, which clearly
isn't the case for nested `forall`s. I tweaked the `FunTy` case
to recur on the result kind.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/51fd357119b357c52e990ccce9059c423cc49406">51fd3571</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T08:35:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use funPrec, not topPrec, to parenthesize GADT argument types
A simple oversight. Fixes #16527.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6c0dd085c16bad20f6604ce608df6db275d6bca9">6c0dd085</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-04T12:12:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add testcase for #16111
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cbb8886560e63b662f50965cc96efafa8dd6875a">cbb88865</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-04T12:12:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore Xmm registers properly in StgCRun.c
This fixes #16514: Xmm6-15 was restored based off rax instead of rsp.
The code was introduced in the fix for #14619.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33b0a291898b6a35d822fde59864c5c94a53d039">33b0a291</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-04T12:12:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tweak error messages for narrowly-kinded assoc default decls
This program, from #13971, currently has a rather confusing error
message:
```hs
class C a where
type T a :: k
type T a = Int
```
```
• Kind mis-match on LHS of default declaration for ‘T’
• In the default type instance declaration for ‘T’
In the class declaration for ‘C’
```
It's not at all obvious why GHC is complaining about the LHS until
you realize that the default, when printed with
`-fprint-explicit-kinds`, is actually `type T @{k} @* a = Int`.
That is to say, the kind of `a` is being instantiated to `Type`,
whereas it ought to be a kind variable. The primary thrust of this
patch is to weak the error message to make this connection
more obvious:
```
• Illegal argument ‘*’ in:
‘type T @{k} @* a = Int’
The arguments to ‘T’ must all be type variables
• In the default type instance declaration for ‘T’
In the class declaration for ‘C’
```
Along the way, I performed some code cleanup suggested by @rae in
https://gitlab.haskell.org/ghc/ghc/issues/13971#note_191287. Before,
we were creating a substitution from the default declaration's type
variables to the type family tycon's type variables by way of
`tcMatchTys`. But this is overkill, since we already know (from the
aforementioned validity checking) that all the arguments in a default
declaration must be type variables anyway. Therefore, creating the
substitution is as simple as using `zipTvSubst`. I took the
opportunity to perform this refactoring while I was in town.
Fixes #13971.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3a38ea4487173f0f8e3693a75d1c5c7d33f12f05">3a38ea44</a></strong>
<div>
<span>by Eric Crockett</span>
<i>at 2019-04-07T19:21:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16282.
Previously, -W(all-)missed-specs was created with 'NoReason',
so no information about the flag was printed along with the warning.
Now, -Wall-missed-specs is listed as the Reason if it was set,
otherwise -Wmissed-specs is listed as the reason.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/63b7d5fb9d695dafc243cbf6f9f70b06030c0dea">63b7d5fb</a></strong>
<div>
<span>by Michal Terepeta</span>
<i>at 2019-04-08T18:29:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Generate straightline code for inline array allocation
GHC has an optimization for allocating arrays when the size is
statically known -- it'll generate the code allocating and initializing
the array inline (instead of a call to a procedure from
`rts/PrimOps.cmm`).
However, the generated code uses a loop to do the initialization. Since
we already check that the requested size is small (we check against
`maxInlineAllocSize`), we can generate faster straightline code instead.
This brings about 15% improvement for `newSmallArray#` in my testing and
slightly simplifies the code in GHC.
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2b3f4718502465e2b4dfa4a7868ed7a3ad5e4ff1">2b3f4718</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-04-08T18:35:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16500: look for interface files in -hidir flag in OneShot mode
We are currently ignoring options set in the hiDir field of hsc_dflags
when looking for interface files while compiling in OneShot mode. This
is inconsistent with the behaviour of other directory redirecting fields
(such as objectDir or hieDir). It is also inconsistent with the
behaviour of compilation in CompManager mode (a.k.a `ghc --make`) which
looks for interface files in the directory set in hidir flag. This
changes Finder.hs so that we use the value of hiDir while looking for
interface in OneShot mode.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97502be8bda9199ac058b9677b4b6ba028022936">97502be8</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-08T18:41:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-optcxx` option (#16477)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/97d3d546e6f03977a9cbe7d5499bb66510411468">97d3d546</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-08T18:47:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Unmark T16190 as broken
Was broken via #16389 yet strangely it has started passing despite the
fact that the suggested root cause has not changed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a42d206a76e03b4cd831aa7bc72c6d4a0f124bd1">a42d206a</a></strong>
<div>
<span>by Yuriy Syrovetskiy</span>
<i>at 2019-04-08T18:54:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix whitespace style
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4dda2270d26017eadddd99ed567aacf41c2913b9">4dda2270</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-04-08T19:00:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ./hadrian/ghci.sh in .ghcid
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d236d9d0f4f3be0641933b959dde14a065acd37f">d236d9d0</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-04-08T19:06:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make `singleConstructor` cope with pattern synonyms
Previously, `singleConstructor` didn't handle singleton `COMPLETE` sets
of a single pattern synonym, resulting in incomplete pattern warnings
in #15753.
This is fixed by making `singleConstructor` (now named
`singleMatchConstructor`) query `allCompleteMatches`, necessarily making
it effectful. As a result, most of this patch is concerned with
threading the side-effect through to `singleMatchConstructor`.
Unfortunately, this is not enough to completely fix the original
reproduction from #15753 and #15884, which are related to function
applications in pattern guards being translated too conservatively.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1085090e83bbf2a7dbb1b9a2e9023f3500538930">1085090e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-08T19:12:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Skip test ArithInt16 and ArithWord16 in GHCi way
These tests use unboxed tuples, which GHCi doesn't support
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7287bb9ea51251441bc8caca2894549ab34fbcb3">7287bb9e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-08T19:18:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Show exit code of GHCi tests on failure
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f5604d3709d015f4085843a92298af3e53c08d36">f5604d37</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2019-04-08T19:24:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">settings.in: Reformat
We're might be about to switch to generating it in Hadrian/Make. This
reformat makes it easier to programmingmatically generate and end up
with the exact same thing, which is good for diffing to ensure no
regressions.
I had this as part of !712, but given the difficulty of satisfying CI, I
figured I should break things up even further.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/cf9e1837adc647c90cfa176669d14e0d413c043d">cf9e1837</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-08T19:30:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hpc submodule
Currently, the `hpc` submodule is pinned against the `wip/final-mfp`
branch, not against `master`. This pins it back against `master`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/36d380475d9056fdf93305985be3def00aaf6cf7">36d38047</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T14:23:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Document how to disable package environments
As noted in #16309 this somehow went undocumented.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/af4cea7f1411e5b99e2417d7c2d3d0e697093103">af4cea7f</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: fix memset unroll for small bytearrays, add 64-bit sets
Fixes #16052
When the offset in `setByteArray#` is statically known, we can provide
better alignment guarantees then just 1 byte.
Also, memset can now do 64-bit wide sets.
The current memset intrinsic is not optimal however and can be
improved for the case when we know that we deal with
(baseAddress at known alignment) + offset
For instance, on 64-bit
`setByteArray# s 1# 23# 0#`
given that bytearray is 8 bytes aligned could be unrolled into
`movb, movw, movl, movq, movq`; but currently it is
`movb x23` since alignment of 1 is all we can embed into MO_Memset op.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bd2de4f06169e15506bb357cf7c2c8b1dad37d67">bd2de4f0</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: use newtype for Alignment in BasicTypes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/14a7870770fb2dd2e096bc13e8c927d49c868911">14a78707</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: add a note about changes in memset unrolling to 8.10.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fe40ddd9f960d89fbb430962f642ee9b053a0492">fe40ddd9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-09T16:50:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix library install paths in bindist Makefile (#16498)
GHC now works out-of-the-box (i.e. without any wrapper script) by
assuming that @bin@ and @lib@ directories sit next to each other. In
particular, its RUNPATH uses $ORIGIN-based relative path to find the
libraries.
However, to be good citizens we want to support the case where @bin@ and
@lib@ directories (respectively BINDIR and LIBDIR) don't sit next to
each other or are renamed. To do that the install script simply creates
GHC specific @bin@ and @lib@ siblings directories into:
LIBDIR/ghc-VERSION/{bin,lib}
Then it installs wrapper scripts into BINDIR that call the appropriate
programs into LIBDIR/ghc-VERSION/bin/.
The issue fixed by this patch is that libraries were not installed into
LIBDIR/ghc-VERSION/lib but directly into LIBDIR.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9acdc4c0ea14f890045e973dabcb5ad3bb029505">9acdc4c0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T16:56:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Bump cabal-install version used by Windows builds to 2.4
Hopefully fixes Windows Hadrian build.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fc3f421bd63cbf550cd0c8771aaf11e9c362f4d1">fc3f421b</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2019-04-10T03:17:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC no longer ever defines TABLES_NEXT_TO_CODE on its own
It should be entirely the responsibility of make/Hadrian to ensure that
everything that needs this flag gets it. GHC shouldn't be hardcoded to
assist with bootstrapping since it builds other things besides itself.
Reviewers:
Subscribers: TerrorJack, rwbarton, carter
GHC Trac Issues: #15548 -- progress towards but not fix
Differential Revision: https://phabricator.haskell.org/D5082 -- extract
from that
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be0dde8e3c27ca56477d1d1801bb77621f3618e1">be0dde8e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-10T03:23:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ghc-prim < 0.7, not <= 0.6.1, as upper version bounds
Using `ghc-prim <= 0.6.1` is somewhat dodgy from a PVP point of view,
as it makes it awkward to support new minor releases of `ghc-prim`.
Let's instead use `< 0.7`, which is the idiomatic way of expressing
PVP-compliant upper version bounds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/42504f4a575395a35eec5c3fd7c9ef6e2b54e68e">42504f4a</a></strong>
<div>
<span>by Carter Schonwald</span>
<i>at 2019-04-11T00:28:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">removing x87 register support from native code gen
* simplifies registers to have GPR, Float and Double, by removing the SSE2 and X87 Constructors
* makes -msse2 assumed/default for x86 platforms, fixing a long standing nondeterminism in rounding
behavior in 32bit haskell code
* removes the 80bit floating point representation from the supported float sizes
* theres still 1 tiny bit of x87 support needed,
for handling float and double return values in FFI calls wrt the C ABI on x86_32,
but this one piece does not leak into the rest of NCG.
* Lots of code thats not been touched in a long time got deleted as a
consequence of all of this
all in all, this change paves the way towards a lot of future further
improvements in how GHC handles floating point computations, along with
making the native code gen more accessible to a larger pool of contributors.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c401f8a487ce6762476b113ad9f0d32960a3e152">c401f8a4</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-11T23:51:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix binary-dir with --docs=none
Hadrian's "binary-dist" target must check that the "docs" directory
exists (it may not since we can disable docs generation).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/091195a49c29a4f81b7e8ffb1e5136f15077c3db">091195a4</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-11T23:57:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused remilestoning script
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fa0ccbb8731e3a44dba130e835ce2a5da994c66c">fa0ccbb8</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-11T23:57:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update a panic message
Point users to the right URL
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/beaa07d204a779cc509985765a87da95faefb359">beaa07d2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-12T17:17:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix ghci wrapper script generation (#16508)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e05df3e1380989ca00ecd88b6d7d0f4aec5502fb">e05df3e1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T17:23:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Ensure that version number has three components
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/885d2e04854f038fbb899ab545df2b57d9b8bba4">885d2e04</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-12T18:40:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add -ddump-stg-final to dump stg as it is used for codegen.
Intermediate STG does not contain free variables which can be useful
sometimes. So adding a flag to dump that info.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3c759ced1c894da2358d12fa91e20f12adf0e5bd">3c759ced</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-12T18:46:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add a --test-accept/-a flag, to mimic 'make accept'
When -a or --test-accept is passed, and if one runs the 'test' target, then
any test failing because of mismatching output and which is not expected to
fail will have its expected output adjusted by the test driver, effectively
considering the new output correct from now on.
When this flag is passed, hadrian's 'test' target becomes sensitive to the
PLATFORM and OS environment variable, just like the Make build system:
- when the PLATFORM env var is set to "YES", when accepting a result, accept it
for the current platform;
- when the OS env var is set to "YES", when accepting a result, accept it
for all wordsizes of the current operating system.
This can all be combined with `--only="..."` and `TEST="..." to only accept
the new output of a subset of tests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f4b5a6c040abb492367fdfe18c4f2ebf03c0d084">f4b5a6c0</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-12T18:46:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: document -a/--test-accept
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/30a0988d2a1398bc5be79e506a3cc55df4b5bd79">30a0988d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T19:41:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Disable windows-hadrian job
Not only is it reliably failing due to #16574 but all of the quickly
failing builds also causes the Windows runners to run out of disk space.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8870a51bd62f2d4ee7bd21b96240d5806c2817af">8870a51b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T19:41:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Don't run lint-submods job on Marge branches
This broke Marge by creating a second pipeline (consisting of only the
`lint-submods` job). Marge then looked at this pipeline and concluded
that CI for her merge branch passed. However, this is ignores the fact
that the majority of the CI jobs are triggered on `merge_request` and
are therefore in another pipeline.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7876d08881b66c3e47d8dab3420c9c14616325e4">7876d088</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-13T13:51:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">linters: Fix check-version-number
This should have used `grep -E`, not `grep -e`</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e7b2e55de503d3b5086c0cec5f320667503f699">2e7b2e55</a></strong>
<div>
<span>by Ara Adkins</span>
<i>at 2019-04-13T14:00:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] Update CI badge in readme
This trivial MR updates the CI badge in the readme to point to the
new CI on gitlab, rather than the very out-of-date badge from
Travis.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/40848a43072768d5a0a41a1df05f7a8ffd85f345">40848a43</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-13T14:02:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Better document implementation implications of Data.Timeout
As noted in #16546 timeout uses asynchronous exceptions internally, an
implementation detail which can leak out in surprising ways. Note this
fact.
Also expose the `Timeout` tycon.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5f1830817b90960d5d11bee95a99df3e1425f8ab">5f183081</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-14T05:08:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add rts shared library symlinks for backwards compatability
Fixes test T3807 when building with Hadrian.
Trac #16370
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b142c53325ffee6e3eef55daabefe9e2881f9e9">9b142c53</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-14T05:14:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add binary-dist-dir target
This patch adds an Hadrian target "binary-dist-dir". Compared to
"binary-dist", it only builds a binary distribution directory without
creating the Tar archive. It makes the use/test of the bindist
installation script easier.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6febc444c0abea6c033174aa0e813c950b9b2877">6febc444</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-04-14T05:20:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix assertion failures reported in #16533
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/edcef7b384ca5af6e67d58c39779d03f80768538">edcef7b3</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-14T05:26:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: unroll memcpy calls for small bytearrays
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6094d43f36bdab5ff3f246afca9a6018545fdd73">6094d43f</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-14T05:26:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: mention memcpy optimization for ByteArrays in 8.10.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d2271fe4e841cc157385bfc9ee498a0bf805f250">d2271fe4</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-04-14T12:43:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ord docs: Add explanation on 'min' and 'max' operator interactions
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7cad16c19fb226353d3fb6e92914ed953d32857">e7cad16c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-04-14T12:49:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a safeguard to Core Lint
Lint returns a pair (Maybe a, WarnsAndErrs). The Maybe monad
allows to handle an unrecoverable failure.
In case of such a failure, the error should be added to the second
component of the pair. If this is not done, Lint will silently
accept bad programs. This situation actually happened during
development of linear types. This adds a safeguard.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c54a093ffb46b2efa0cc1511797fe8e01987ae87">c54a093f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-14T12:55:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CODEOWNERS: Add simonmar as owner of rts/linker
I suspect this is why @simonmar wasn't notified of !706.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1825f50d1736401724ef644e4d481cc26e8f47e5">1825f50d</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-14T13:01:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: don't accept p_dyn for executables, to fix --flavour=prof
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b024e2891d06a81b3fd824f33fc72fb805e03c8f">b024e289</a></strong>
<div>
<span>by Giles Anderson</span>
<i>at 2019-04-15T10:20:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document how -O3 is handled by GHC
-O2 is the highest value of optimization.
-O3 will be reverted to -O2.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4b1ef06d45fb3cd226b5ec4217e975d48b85e645">4b1ef06d</a></strong>
<div>
<span>by Giles Anderson</span>
<i>at 2019-04-15T10:20:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Apply suggestion to docs/users_guide/using-optimisation.rst</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71cf94db8445e5d8225ce65a9feecbfaa3ac3fe3">71cf94db</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2019-04-15T10:26:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHCi: fix load order of .ghci files
Directives in .ghci files in the current directory ("local .ghci")
can be overridden by global files. Change the order in which the
configs are loaded: global and $HOME/.ghci first, then local.
Also introduce a new field to GHCiState to control whether local
.ghci gets sourced or ignored. This commit does not add a way to
set this value (a subsequent commit will add this), but the .ghci
sourcing routine respects its value.
Fixes: https://gitlab.haskell.org/ghc/ghc/issues/14689
Related: https://gitlab.haskell.org/ghc/ghc/issues/6017
Related: https://gitlab.haskell.org/ghc/ghc/issues/14250
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5c06b60d0e2e270c9ccacebb96ca0da4d0f4e6d9">5c06b60d</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2019-04-15T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: update startup script order
Update users guide to match the new startup script order. Also
clarify that -ignore-dot-ghci does not apply to scripts specified
via the -ghci-script option.
Part of: https://gitlab.haskell.org/ghc/ghc/issues/14689
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/aa490b350b35a07495837e96d01137ed50915131">aa490b35</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2019-04-15T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHCi: add 'local-config' setting
Add the ':set local-config { source | ignore }' setting to control
whether .ghci file in current directory will be sourced or not. The
directive can be set in global config or $HOME/.ghci, which are
processed before local .ghci files.
The default is "source", preserving current behaviour.
Related: https://gitlab.haskell.org/ghc/ghc/issues/6017
Related: https://gitlab.haskell.org/ghc/ghc/issues/14250
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ed94d3450cbb6ec7a31d9aa37efb7fe93d0559cf">ed94d345</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2019-04-15T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: document :set local-config
Document the ':set local-config' command and add a warning about
sourcing untrusted local .ghci scripts.
Related: https://gitlab.haskell.org/ghc/ghc/issues/6017
Related: https://gitlab.haskell.org/ghc/ghc/issues/14250
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be05bd8168b0ea65d63dc0093a5c8781a2528500">be05bd81</a></strong>
<div>
<span>by Gabor Greif</span>
<i>at 2019-04-15T21:19:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">asm-emit-time IND_STATIC elimination
When a new closure identifier is being established to a
local or exported closure already emitted into the same
module, refrain from adding an IND_STATIC closure, and
instead emit an assembly-language alias.
Inter-module IND_STATIC objects still remain, and need to be
addressed by other measures.
Binary-size savings on nofib are around 0.1%.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57eb5bc61317e5cdf1fd5745036e443037a37451">57eb5bc6</a></strong>
<div>
<span>by erthalion</span>
<i>at 2019-04-16T19:40:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Show dynamic object files (#16062)
Closes #16062. When -dynamic-too is specified, reflect that in the
progress message, like:
$ ghc Main.hs -dynamic-too
[1 of 1] Compiling Lib ( Main.hs, Main.o, Main.dyn_o )
instead of:
$ ghc Main.hs -dynamic-too
[1 of 1] Compiling Lib ( Main.hs, Main.o )
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/894ec447955a5066faee1b87af9cc7785ae14cd8">894ec447</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-04-16T19:46:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Generate GHC wrapper scripts
This is a temporary workaround for #16534. We generate wrapper scripts
<build-root>/ghc-stage1 and <build-root>/ghc-stage2 that can be used to
run Stage1 and Stage2 GHCs with the right arguments.
See https://gitlab.haskell.org/ghc/ghc/issues/16534.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e142ec99e91ef4bdffd367780e945526ec6ef7e2">e142ec99</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2019-04-18T03:19:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Typeset Big-O complexities with Tex-style notation (#16090)
E.g. use `\(\mathcal{O}(n^2)\)` instead of `/O(n^2)/`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f0f495f0c4e16520adea83e82885dc08fa0c38a3">f0f495f0</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-18T03:25:10Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add an Outputable instance for SDoc with ppr = id.
When printf debugging this can be helpful.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e28706ea0d7b8115716926d0016cd070ab5ab326">e28706ea</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-18T12:12:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Gitlab: allow execution of CI pipeline from the web interface
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4c8a67a4b025774993b80442fb3654c8868c1d24">4c8a67a4</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-18T12:18:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix ghcDebugged and document it
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5988f17a799ba3416bb6ed539ae65e1f3fd9f2c0">5988f17a</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-19T02:46:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix the value we pass to the test driver for config.compiler_debugged
We used to pass YES/NO, while that particular field is set to True/False. This
happens to fix an unexpected pass, T9208.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57cf113302eee6068a1b10cba348f4b7de7faeae">57cf1133</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-04-19T02:52:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TH: make `Lift` and `TExp` levity-polymorphic
Besides the obvious benefits of being able to manipulate `TExp`'s of
unboxed types, this also simplified `-XDeriveLift` all while making
it more capable.
* `ghc-prim` is explicitly depended upon by `template-haskell`
* The following TH things are parametrized over `RuntimeRep`:
- `TExp(..)`
- `unTypeQ`
- `unsafeTExpCoerce`
- `Lift(..)`
* The following instances have been added to `Lift`:
- `Int#`, `Word#`, `Float#`, `Double#`, `Char#`, `Addr#`
- unboxed tuples of lifted types up to arity 7
- unboxed sums of lifted types up to arity 7
Ideally we would have levity-polymorphic _instances_ of unboxed
tuples and sums.
* The code generated by `-XDeriveLift` uses expression quotes
instead of generating large amounts of TH code and having
special hard-coded cases for some unboxed types.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fdfd97310128d82ac5316d357f0422c9939c1edc">fdfd9731</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-04-19T02:52:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add test case for #16384
Now that `TExp` accepts unlifted types, #16384 is fixed. Since the real
issue there was GHC letting through an ill-kinded type which
`-dcore-lint` rightly rejected, a reasonable regression test is that
the program from #16384 can now be accepted without `-dcore-lint`
complaining.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/eb2a4df84cd7d66bb27f8ccb08ef10d5c984e892">eb2a4df8</a></strong>
<div>
<span>by Michal Terepeta</span>
<i>at 2019-04-20T03:32:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">StgCmmPrim: remove an unnecessary instruction in doNewArrayOp
Previously we would generate a local variable pointing after the array
header and use it to initialize the array elements. But we already use
stores with offset, so it's easy to just add the header to those offsets
during compilation and avoid generating the local variable (which would
become a LEA instruction when using native codegen; LLVM already
optimizes it away).
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fcef26b62569428d47e96fcd8946a733540783ab">fcef26b6</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-20T03:38:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't indent single alternative case expressions for STG.
Makes the width of STG dumps slightly saner.
Especially for things like unboxing.
Fixes #16580
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7280c93ef8f0685bbd63552b5b72c029907687e">e7280c93</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-04-20T03:44:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tagless final encoding of ExpCmdI in the parser
Before this change, we used a roundabout encoding:
1. a GADT (ExpCmdG)
2. a class to pass it around (ExpCmdI)
3. helpers to match on it (ecHsApp, ecHsIf, ecHsCase, ...)
It is more straightforward to turn these helpers into class methods,
removing the need for a GADT.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/99dd5d6b8365ecc8748651395c503b2c0b82490e">99dd5d6b</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-04-20T03:50:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Haddock: support strict GADT args with docs
Rather than massaging the output of the parser to re-arrange docs and
bangs, it is simpler to patch the two places in which the strictness
info is needed (to accept that the `HsBangTy` may be inside an
`HsDocTy`).
Fixes #16585.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/10776562d8b9c92f6dee0fec6294c07944b19442">10776562</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2019-04-20T03:56:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Drop old/unused CI scripts
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/37b1a6da9244d2714c9ff4f9b6174a1ed715acb8">37b1a6da</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-20T15:55:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Improve error message on failure of doc-tarball job
Previously the failure was quite nondescript.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e3fe26010dfc3a9681ac6ea976e299e6f8966af1">e3fe2601</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-20T15:55:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow doc-tarball job to fail
Due to allowed failure of Windows job.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bd3872dff8889427942ad63966e8f274f44489f8">bd3872df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-20T15:55:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Only run release notes lint on release tags
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2145b738aaa974ab0a7103b110e268fbf98b95c4">2145b738</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-20T15:55:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Add centos7 release job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/983c53c3da7a2e4e9c91f21adbd93c68a7922bae">983c53c3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-20T15:55:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Do not build profiled libraries on 32-bit Windows
Due to #15934.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5cf771f35f926f435f75020bb159eebb18ed6fb9">5cf771f3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-21T13:07:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Add pretty to package list
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6ac5da7844023a896d4e4477ee6429fa0f35c6e4">6ac5da78</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-21T13:07:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Add libraries section to 8.10.1 release notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3e963de3775c36e6d3f192bada142f9c7aef81d7">3e963de3</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">improve docs for casArray and casSmallArray
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/98bffb079d0c9f19431f15fbbd2023bee88da58c">98bffb07</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] say "machine words" instead of "Int units" in the primops docs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3aefc14a07714d5db19665c6205d4880ab1b1b9a">3aefc14a</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] correct formatting of casArray# in docs for casSmallArray#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0e96d1205905707369b82ce024afdfed3fd7bdf8">0e96d120</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-04-21T13:13:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] correct the docs for casArray a little more. clarify that the returned element may be two different things
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/687152f288dc37a1038094ed9e9c1ee2759706b1">687152f2</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-21T13:19:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: move tests related to linker under tests/rts/linker
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/36e51406eb5c551f6fdc5b2f9e087c1d3a809141">36e51406</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-21T13:19:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: fix ifdef lint errors under tests/rts/linker
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1a7a329b983fa03f4115b769ede5c2e148abaad0">1a7a329b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-04-22T18:37:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Correct off by one error in ghci +c
Fixes #16569
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/51655fd8a4422fd840abd449444eb1505022f5d5">51655fd8</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-22T18:44:11Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: use the testsuite driver's config.haddock arg more correctly
4 haddock tests assume that .haddock files have been produced, by using the
'req_haddock' modifier. The testsuite driver assumes that this condition is
satisfied if 'config.haddock' is non-empty, but before this patch Hadrian was
always passing the path to where the haddock executable should be, regardless
of whether it is actually there or not.
Instead, we now pass an empty config.haddock when we can't find all of
<build root>/docs/html/libraries/<pkg>/<pkg>.haddock>, where <pkg> ranges over
array, base, ghc-prim, process and template-haskell, and pass the path
to haddock when all those file exists. This has the (desired) effect of skipping
the 4 tests (marked as 'missing library') when the docs haven't been built,
and running the haddock tests when they have.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1959bad3feb9a05c8a5f2a4249a2506c5770d6fe">1959bad3</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-04-22T18:50:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop misusing EWildPat in pattern match coverage checking
EWildPat is a constructor of HsExpr used in the parser to represent
wildcards in ambiguous positions:
* in expression context, EWildPat is turned into hsHoleExpr (see rnExpr)
* in pattern context, EWildPat is turned into WildPat (see checkPattern)
Since EWildPat exists solely for the needs of the parser, we could
remove it by improving the parser.
However, EWildPat has also been used for a different purpose since
8a50610: to represent patterns that the coverage checker cannot handle.
Not only this is a misuse of EWildPat, it also stymies the removal of
EWildPat.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6a491726bbe000c4b0effc4175caaaabc7416f1e">6a491726</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2019-04-23T13:27:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">osReserveHeapMemory: handle signed rlim_t
rlim_t is a signed type on FreeBSD, and the build fails with a
sign-compare error. Add explicit (unsigned) cast to handle this
case.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ab9b3ace24e57359d5745dd9abf593d1ec94a0ad">ab9b3ace</a></strong>
<div>
<span>by Alexandre Baldé</span>
<i>at 2019-04-23T13:33:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix error message for './configure' regarding '--with-ghc' [skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/465f8f48c8f196a7b696a360c2f3c636cc88321a">465f8f48</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-24T16:19:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: source-tarball job should have no dependencies
</pre>
</li>
<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/7b751ed89a97545e9ff9c9814a3d5440a8d42d64">7b751ed8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-12T21:52:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bump Docker image
Fixes linters.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5ffc266e9c5ec8ed6010835165a65bd1f6b56dd4">5ffc266e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T06:48:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a few missing llvm-targets
This should finally fix #14261.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fc6b23be509e290f8d27775a1c637284a335ed81">fc6b23be</a></strong>
<div>
<span>by Phuong Trinh</span>
<i>at 2019-06-13T06:48:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16525: ObjectCode freed wrongly because of lack of info header check
`checkUnload` currently doesn't check the info header of static objects.
Thus, it may free an `ObjectCode` struct wrongly even if there's still a
live static object whose info header lies in a mapped section of that
`ObjectCode`. This fixes the issue by adding an appropriate check.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a657543c4d676b7e6e0984b72b31dd95949855e4">a657543c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T06:49:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PrelRules: Ensure that string unpack/append rule fires with source notes
Previously the presence of source notes could hide nested applications
of `unpackFoldrCString#` from our constant folding logic. For instance,
consider the expression:
```haskell
unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
```
Specifically, ticks appearing in two places can defeat the rule:
a. Surrounding the inner application of `unpackFoldrCString#`
b. Surrounding the fold function, `c`
The latter caused the `str_rules` testcase to fail when `base` was built
with `-g3`.
Fixes #16740.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e98d32a62977fe1057ebbb1b6ed8990438cb9896">e98d32a6</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-06-13T06:50:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Track RTS library symlink targets
This requires creating RTS library symlinks when registering, outside
of the rule for the registered library file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/35113117436c4936d97aae90693b93206d9ff213">35113117</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-13T06:50:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: Do not allow the Linux jobs to fail anymore
MR !1151 makes the Hadrian/Linux job pass by fixing the last two test failures,
so we can now be stricter and not allow those jobs to fail anymore, easily
letting us see when patches introduce test failures.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/70b5eefe09823f77bcfdd7b4fa8dbaee18ab316c">70b5eefe</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T06:51:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix a few markup issues
Strangely these were only causing the build to fail in the aarch64-linux
job, despite Sphinx throwing errors in all jobs I checked.
Also changes some `#ifdef`s to `#if defined` to satisfy the linter.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9721b40db9b87c0135613649f9f1e129eb49795b">9721b40d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T06:51:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't build PDF user's guide on AArch64
For reasons I don't understand sphinx seems to fail to produce a .idx
file for makeindex.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d550b771f6ebb91bfe860fc08811a7d74b39eb38">d550b771</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T06:51:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Clean up .circleci
Move prepare-system.sh to .gitlab and remove everything else.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c53dfb3b2cddfe2d00d9017c9240042cc6bc7fcf">c53dfb3b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T15:52:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: A more portable solution to #9399
Previously we used an awful hybrid batch script/Bourne shell script to
allow this test to run both on Windows and Linux (fixing #9399).
However, this breaks on some libc implementations (e.g. musl). Fix this.
Fixes #16798.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/74b5d0496f60b30c3fd4de2e7f8a96d1c481bdd6">74b5d049</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T15:53:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable deb9-llvm job, introduce nightly LLVM job
This should help alleviate queue times as the LLVM job is one of the
longest that we have.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5ce63d52fed05371edb34b4f330c33bc85a45127">5ce63d52</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-13T15:53:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable validate-x86_64-linux-deb9 job to reduce load
Enable artifacts on to ensure we have bindist coverage.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7bc5d6c6578ab9d60a83b81c7cc14819afef32ba">7bc5d6c6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-14T03:34:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Maintain separate flags for C++ compiler invocations
Previously we would pass flags intended for the C compiler to the C++
compiler (see #16738). This would cause, for instance, `-std=gnu99` to
be passed to the C++ compiler, causing spurious test failures. Fix this
by maintaining a separate set of flags for C++ compilation invocations.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/71e75ba6d892e8dfb6794f0ce70d01c9521b77c5">71e75ba6</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-14T03:35:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused Unique field from StgFCallOp
Fixes #16696
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ec25fe5986c13f673882a88a3107dfa2e0cec254">ec25fe59</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-14T03:35:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: remove superfluous dependencies in Rules.Compile
Each package's object files were 'need'ing the library files of all transitive
dependencies of the current package, whichi is pointless since the said
libraries are not needed until we link those object files together.
This fixes #16759.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3bc6df3223f62a8366e2e4267bac23aa08e6a939">3bc6df32</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2019-06-14T03:36:34Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add Outputable instances for Float, Double.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/effdd948056923f3bc03688c24d7e0339d6272f5">effdd948</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-06-14T14:48:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement the -XUnliftedNewtypes extension.
GHC Proposal: 0013-unlifted-newtypes.rst
Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/98
Issues: #15219, #1311, #13595, #15883
Implementation Details:
Note [Implementation of UnliftedNewtypes]
Note [Unifying data family kinds]
Note [Compulsory newtype unfolding]
This patch introduces the -XUnliftedNewtypes extension. When this
extension is enabled, GHC drops the restriction that the field in
a newtype must be of kind (TYPE 'LiftedRep). This allows types
like Int# and ByteArray# to be used in a newtype. Additionally,
coerce is made levity-polymorphic so that it can be used with
newtypes over unlifted types.
The bulk of the changes are in TcTyClsDecls.hs. With -XUnliftedNewtypes,
getInitialKind is more liberal, introducing a unification variable to
return the kind (TYPE r0) rather than just returning (TYPE 'LiftedRep).
When kind-checking a data constructor with kcConDecl, we attempt to
unify the kind of a newtype with the kind of its field's type. When
typechecking a data declaration with tcTyClDecl, we again perform a
unification. See the implementation note for more on this.
Co-authored-by: Richard Eisenberg <rae@richarde.dev>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5279dda861f6a5cc804be88dc5f0ff2442660149">5279dda8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-14T14:48:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PrelRules: Don't break let/app invariant in shiftRule
Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.
Fixes #16742.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/503e830c3d01edc9db4e49e73841e45a20675a1e">503e830c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T03:10:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Lint testsuite for framework failures
This introduces a new lint job checking for framework failures and
listing broken tests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b5ea9323a3a39a005a41580228a4722131d417b2">b5ea9323</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T03:10:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">lint: Only apply --interactive lint to testsuite .T files
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5c97211cf21d2eb99db1a5cf473a630ffe245064">5c97211c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T03:10:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Lint the linters
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/257165b47298644d67d39b6f5b565b65fe840f50">257165b4</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-15T03:10:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove duplicates from 'ghc --info' output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5da6c86f7b1304af3c314b3f9c0b007d6508c427">5da6c86f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T19:14:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump unix submodule
Skips `executeFile001` test in `threaded2` way. Fixes #16814.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/20b4d5ecabc59062b7a841ce20b631364d8f8645">20b4d5ec</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T03:32:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable optimisation when building Cabal lib for stage0
This disables optimisation when building Cabal for Hadrian and
stage0 `ghc-cabal`. Cabal is performance critical in neither case nor
will any performance difference here be visible to the end-user.
See #16817.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76b7f619385ac5d126dd186ff3bfe4cdad9349e7">76b7f619</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T03:32:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable optimisation when building Cabal in development flavours
This updates the make and Hadrian build flavours targetting developers
to disable optimisation when building the Cabal library. Cabal tends to
tickle some very bad compiler performance cases (e.g. #16577) so
disabling optimisation here makes a sizeable impact on overall build
time.
See #16817.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0d2a4258c1a025c2610a415e951efe4e2ed8970a">0d2a4258</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T03:33:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Introduce concurrent_ways set
Previously we just tested for the threaded2 when determining whether to
skip tests which are fragile under concurrent execution. However, this
isn't the only way which is concurrent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/beacb6fd898db43382fedf8b9a7e6657e53fca9a">beacb6fd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T03:33:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip hDuplicateTo001 in concurrent ways
As noted in #16819, this operation is racy under concurrent execution.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ca721193fc71c065036deecfb9d4274fbfc6850d">ca721193</a></strong>
<div>
<span>by Aiken Cairncross</span>
<i>at 2019-06-16T03:33:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix typo in error message
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/57b718481d5363ab33df4c7814f74897418f79d7">57b71848</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T03:34:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add assertions that way lists are in fact lists
Previously there were a few cases where operations like `omit_ways`
were incorrectly passed a single way (e.g. `omit_ways('threaded2')`).
This won't work as the author expected.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/25ee60cdae6ddedaf6b4677c6327c0f31c81073a">25ee60cd</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-06-16T03:35:03Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Synchronize ClsInst.doTyConApp with TcTypeable validity checks (#15862)
Issue #15862 demonstrated examples of type constructors on which
`TcTypeable.tyConIsTypeable` would return `False`, but the `Typeable`
constraint solver in `ClsInst` (in particular, `doTyConApp`) would
try to generate `Typeable` evidence for anyway, resulting in
disaster. This incongruity was caused by the fact that `doTyConApp`
was using a weaker validity check than `tyConIsTypeable` to determine
if a type constructor warrants `Typeable` evidence or not. The
solution, perhaps unsurprisingly, is to use `tyConIsTypeable` in
`doTyConApp` instead.
To avoid import cycles between `ClsInst` and `TcTypeable`, I factored
out `tyConIsTypeable` into its own module, `TcTypeableValidity`.
Fixes #15862.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4138bf868534f54d47643c0aa38d4dce89135501">4138bf86</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-06-16T03:35:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove dead code
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db313f987f353cd2691b42c85866a62f5c0a903c">db313f98</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base/Event/Poll: Drop POLLRDHUP enum item
Previously the Event enumeration produced by hsc2hs would sometimes
include a currently-unused POLLRDHUP item. This unused binding would
result in a build failure. Drop it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/81608e82dfed7e78c1bba189f26c8c760f7c196a">81608e82</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix T8602 on musl
Musl wants hash-bangs on all executables.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a0f683795a72f7b82962d24098b1dc7c2b04ab29">a0f68379</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Ensure T5423 flushes C output buffer
Previously T5423 would fail to flush the printf output buffer.
Consequently it was platform-dependent whether the C or Haskell print
output would be emitted first.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/543dfaab166c81f46ac4af76918ce32190aaab22">543dfaab</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Flush conc059's printf buffer
Otherwise it the order out the Haskell and C output will be
system-dependent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e647752e7b99c2fb198b652bc00c531cf31878cf">e647752e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Ensure that ffi005 output order is predictable
The libc output buffer wasn't being flushed, making the order
system-depedent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/338336d37eaaac614c6f2c3b077417195b05e713">338336d3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T10:26:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Build alpine release bindists
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/75c6ccf72b2e9c363fad6b91dd4a39525f17a4c5">75c6ccf7</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-16T10:27:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fix runghc's GHC detection logic to cover the "in-tree Hadrian build" scenario
Before this patch, runghc would only run the GHC detection logic on Windows and
assume that it was invoked through a wrapper script on all other platforms.
This patch lifts this limitation and makes that logic work for the scenario
where someone is calling the runghc executable directly, without passing an
explicit path to GHC.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3c35e14058f909bf0c26b5553fc9c61559fc5708">3c35e140</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T23:38:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Really fix #16741
The previous fix, !1095, didn't work as `--show-iface` ignores
`-dsuppress-ticks`. Rework the test instead.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b3bb1b06b875291cfd7be2a0c0afc87f3c0574e0">b3bb1b06</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-16T23:38:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Don't allow failure of deb9-dwarf job
This #16741 out of the way this should now pass.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b965de1ef0e2770f71d49d66f88df7fa7cd2cd58">b965de1e</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-16T23:39:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use TupleSections in CmmParse.y, simplify a few exprs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/63965ae3a3aa0ea2a2f7462337892898b8880880">63965ae3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-17T05:20:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">make: Clean includes/settings file
Now since this is generated by the build system we should ensure that it
is properly cleaned.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bb141114ad4e4eb6db66e212fa08d93257b99bbc">bb141114</a></strong>
<div>
<span>by Siddharth Bhat</span>
<i>at 2019-06-17T05:20:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add link to mfix.github.io/ghc in HACKING.md
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f17c9fcf97efd3f4f3b954cc1a7a4f2a12e1e95b">f17c9fcf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:07:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Schedule: Allow synchronization without holding a capability
The concurrent mark-and-sweep will be performed by a GHC task which will
not hold a capability. This is necessary to avoid a concurrent mark from
interfering with minor generation collections.
However, the major collector must synchronize with the mutators at the
end of marking to flush their update remembered sets. This patch extends
the `requestSync` mechanism used to synchronize garbage collectors to
allow synchronization without holding a capability.
This change is fairly straightforward as the capability was previously
only required for two reasons:
1. to ensure that we don't try to re-acquire a capability that we
the sync requestor already holds.
2. to provide a way to suspend and later resume the sync request if
there is already a sync pending.
When synchronizing without holding a capability we needn't worry about
consideration (1) at all.
(2) is slightly trickier and may happen, for instance, when a capability
requests a minor collection and shortly thereafter the non-moving mark
thread requests a post-mark synchronization. In this case we need to
ensure that the non-moving mark thread suspends his request until after
the minor GC has concluded to avoid dead-locking. For this we introduce
a condition variable, `sync_finished_cond`, which a
non-capability-bearing requestor will wait on and which is signalled
after a synchronization or GC has finished.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9e7fa2b1ca641fb41c3915d3f328028cc12f4763">9e7fa2b1</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/GC: Add an obvious assertion during block initialization
Namely ensure that block descriptors are initialized with valid
generation numbers.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4d16cfa43333672701f9269caca788a059957294">4d16cfa4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Add Note explaining applicability of selector optimisation depth limit
This was slightly non-obvious so a note seems deserved.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6e19f3ae29a68b7959b280f598c715963e00b479">6e19f3ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Capability: A few documentation comments
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/511f5a7653052436955a37c217fc7af32ad3fd59">511f5a76</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Give stack flags proper macros
This were previously quite unclear and will change a bit under the
non-moving collector so let's clear this up now.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae3e852e34f90be4ee8a05161e9bdea85774a26a">ae3e852e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/GC: Refactor gcCAFs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b6544355586565545003ed5e8b1721e43a90eac">9b654435</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:08:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Fix macro parenthesisation
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/205e8a23cb48d95615b206f75442a3c589510892">205e8a23</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:09:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'wip/gc/misc-rts' into wip/gc/preparation
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ea8441ca8e60f93e8556ee31e90ac1318cb113c1">ea8441ca</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-18T22:09:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/BlockAlloc: Allow aligned allocation requests
This implements support for block group allocations which are aligned to
an integral number of blocks.
This will be used by the nonmoving garbage collector, which uses the
block allocator to allocate the segments which back its heap. These
segments are a fixed number of blocks in size, with each segment being
aligned to the segment size boundary. This allows us to easily find the
segment metadata stored at the beginning of the segment.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fb256bcafce4830aba0ff2f098adbf9a51c5c8ad">fb256bca</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-18T22:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/StableName: Expose FOR_EACH_STABLE_NAME, freeSnEntry, SNT_size
These will be needed when we implement sweeping in the nonmoving
collector.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ec5e8286a7546710f8d30c378538f814a451c1b2">ec5e8286</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Disable aggregate-return warnings from gcc
This warning is a bit of a relic; there is little reason to avoid
aggregate return values in 2019.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/26fafd79c507e332c40a117d0b058b5ea29e5f6f">26fafd79</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-18T22:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/Scav: Expose scavenging functions
To keep the non-moving collector nicely separated from the moving
collector its scavenging phase will live in another file,
`NonMovingScav.c`. However, it will need to use these functions so
let's expose them.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1189c0b8831ca1dca13fd23f021d8a0ebc701145">1189c0b8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Introduce flag to enable the nonmoving old generation
This flag will enable the use of a non-moving oldest generation.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/dca21cc21d35c6811b4500730c2bf1dfdf5b1522">dca21cc2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Introduce debug flag for non-moving GC
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78c21bffb1964a0ff38f2c48ae6e98c1d3b71895">78c21bff</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-18T22:15:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Non-concurrent mark and sweep
This implements the core heap structure and a serial mark/sweep
collector which can be used to manage the oldest-generation heap.
This is the first step towards a concurrent mark-and-sweep collector
aimed at low-latency applications.
The full design of the collector implemented here is described in detail
in a technical note
B. Gamari. "A Concurrent Garbage Collector For the Glasgow Haskell
Compiler" (2018)
The basic heap structure used in this design is heavily inspired by
K. Ueno & A. Ohori. "A fully concurrent garbage collector for
functional programs on multicore processors." /ACM SIGPLAN Notices/
Vol. 51. No. 9 (presented by ICFP 2016)
This design is intended to allow both marking and sweeping
concurrent to execution of a multi-core mutator. Unlike the Ueno design,
which requires no global synchronization pauses, the collector
introduced here requires a stop-the-world pause at the beginning and end
of the mark phase.
To avoid heap fragmentation, the allocator consists of a number of
fixed-size /sub-allocators/. Each of these sub-allocators allocators into
its own set of /segments/, themselves allocated from the block
allocator. Each segment is broken into a set of fixed-size allocation
blocks (which back allocations) in addition to a bitmap (used to track
the liveness of blocks) and some additional metadata (used also used
to track liveness).
This heap structure enables collection via mark-and-sweep, which can be
performed concurrently via a snapshot-at-the-beginning scheme (although
concurrent collection is not implemented in this patch).
The mark queue is a fairly straightforward chunked-array structure.
The representation is a bit more verbose than a typical mark queue to
accomodate a combination of two features:
* a mark FIFO, which improves the locality of marking, reducing one of
the major overheads seen in mark/sweep allocators (see [1] for
details)
* the selector optimization and indirection shortcutting, which
requires that we track where we found each reference to an object
in case we need to update the reference at a later point (e.g. when
we find that it is an indirection). See Note [Origin references in
the nonmoving collector] (in `NonMovingMark.h`) for details.
Beyond this the mark/sweep is fairly run-of-the-mill.
[1] R. Garner, S.M. Blackburn, D. Frampton. "Effective Prefetch for
Mark-Sweep Garbage Collection." ISMM 2007.
Co-Authored-By: Ben Gamari <ben@well-typed.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1ac2bc85f97c7d7233c83e433bf5718adc0e1c5d">1ac2bc85</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:29:33Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add nonmoving WAY
This simply runs the compile_and_run tests with `-xn`, enabling the
nonmoving oldest generation.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8e44a3ad663ecee9489296326852ab27e6e5b84a">8e44a3ad</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:29:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Implement concurrent collection in the nonmoving collector
This extends the non-moving collector to allow concurrent collection.
The full design of the collector implemented here is described in detail
in a technical note
B. Gamari. "A Concurrent Garbage Collector For the Glasgow Haskell
Compiler" (2018)
This extension involves the introduction of a capability-local
remembered set, known as the /update remembered set/, which tracks
objects which may no longer be visible to the collector due to mutation.
To maintain this remembered set we introduce a write barrier on
mutations which is enabled while a concurrent mark is underway.
The update remembered set representation is similar to that of the
nonmoving mark queue, being a chunked array of `MarkEntry`s. Each
`Capability` maintains a single accumulator chunk, which it flushed
when it (a) is filled, or (b) when the nonmoving collector enters its
post-mark synchronization phase.
While the write barrier touches a significant amount of code it is
conceptually straightforward: the mutator must ensure that the referee
of any pointer it overwrites is added to the update remembered set.
However, there are a few details:
* In the case of objects with a dirty flag (e.g. `MVar`s) we can
exploit the fact that only the *first* mutation requires a write
barrier.
* Weak references, as usual, complicate things. In particular, we must
ensure that the referee of a weak object is marked if dereferenced by
the mutator. For this we (unfortunately) must introduce a read
barrier, as described in Note [Concurrent read barrier on deRefWeak#]
(in `NonMovingMark.c`).
* Stable names are also a bit tricky as described in Note [Sweeping
stable names in the concurrent collector] (`NonMovingSweep.c`).
We take quite some pains to ensure that the high thread count often seen
in parallel Haskell applications doesn't affect pause times. To this end
we allow thread stacks to be marked either by the thread itself (when it
is executed or stack-underflows) or the concurrent mark thread (if the
thread owning the stack is never scheduled). There is a non-trivial
handshake to ensure that this happens without racing which is described
in Note [StgStack dirtiness flags and concurrent marking].
Co-Authored-by: Ömer Sinan Ağacan <omer@well-typed.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/28972f045a7580ae934b5b27f833c3d08e16ccce">28972f04</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:29:52Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Nonmoving: Disable memory inventory with concurrent collection
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/157ca13bf7c4a81282924e3022002065671b3861">157ca13b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:30:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Nonmoving: Allow aging and refactor static objects logic
This commit does two things:
* Allow aging of objects during the preparatory minor GC
* Refactor handling of static objects to avoid the use of a hashtable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e911031877103f070d16bad89f0b0124c2ae6be7">e9110318</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:30:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable aging when doing deadlock detection GC
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4bd679bcee270266b380792ebbebca78c1c95666">4bd679bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-18T22:30:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More comments for aging
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#74861eb00e7bf05baf1936de4e60eead2c8615c0">
<span class="deleted-file">
−
.arc-linters/arcanist-external-json-linter
</span>
</a>
</li>
<li class="file-stats">
<a href="#06c38e192651b120486cd4a1b5193d492df6a183">
<span class="deleted-file">
−
.arc-linters/check-binaries.py
</span>
</a>
</li>
<li class="file-stats">
<a href="#1f18d06b67ef5e034d77f1cc8e79897a61925c0b">
<span class="deleted-file">
−
.arc-linters/check-cpp.py
</span>
</a>
</li>
<li class="file-stats">
<a href="#dc28f670eb01f73cd3dfef2576b004f46c95b7a2">
<span class="deleted-file">
−
.arc-linters/check-makefiles.py
</span>
</a>
</li>
<li class="file-stats">
<a href="#e9a5c563646553f45928436e27f80e657354f067">
<span class="deleted-file">
−
.arcconfig
</span>
</a>
</li>
<li class="file-stats">
<a href="#d373a187fddc017329438049fb7ae94273d1b438">
<span class="deleted-file">
−
.arclint
</span>
</a>
</li>
<li class="file-stats">
<a href="#fd5da61396a8376845bee5cdf71aaf3c98a888ae">
<span class="deleted-file">
−
.circleci/config.yml
</span>
</a>
</li>
<li class="file-stats">
<a href="#56be66455261205bf0b72abe2b6de5304b7edbea">
<span class="deleted-file">
−
.circleci/fetch-submodules.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#9dad718ed3d5a6d0c74abe30ba8dabe2352ac79f">
<span class="deleted-file">
−
.circleci/images/aarch64-linux-deb9/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#7c5be9c23a5468998e77939f933a83f5779fc9b8">
<span class="deleted-file">
−
.circleci/images/i386-linux-deb8/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#ebf015dfa7c145ad57e0b8772f1887022a679e11">
<span class="deleted-file">
−
.circleci/images/i386-linux-deb9/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#d25eb3b013c74cbcedf01d2cbbe60510853d8580">
<span class="deleted-file">
−
.circleci/images/linters/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#a810fdbd05c3e221a075696547cda0fb14a30302">
<span class="deleted-file">
−
.circleci/images/update-image
</span>
</a>
</li>
<li class="file-stats">
<a href="#f1f380c328fbd4c24a56f26b45234dd780ea1c70">
<span class="deleted-file">
−
.circleci/images/x86_64-freebsd/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#3d36c3dd09292ecfee357e1771048d275144762b">
<span class="deleted-file">
−
.circleci/images/x86_64-freebsd/build-toolchain.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#09279b09e8c12ad06fb74f2f21dbe5514e9cceb7">
<span class="deleted-file">
−
.circleci/images/x86_64-linux-centos7/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#7b958f3f8f0c71684ae679bb62448cdfe48dd347">
<span class="deleted-file">
−
.circleci/images/x86_64-linux-deb8/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#f4bb8fd7d07ef9fca3b87ce76b275a9b7bb319d4">
<span class="deleted-file">
−
.circleci/images/x86_64-linux-deb9/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#42d3a0f90220dbb6e1bf2e7c238f91fc71480ae1">
<span class="deleted-file">
−
.circleci/images/x86_64-linux-fedora27/Dockerfile
</span>
</a>
</li>
<li class="file-stats">
<a href="#1f5a0c7d612024c9508dd9b2f4f8dc750313be9a">
<span class="deleted-file">
−
.circleci/push-test-metrics.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#03615ac1622815b67e9829de1c43ac90fa6d8068">
.ghcid
</a>
</li>
<li class="file-stats">
<a href="#24139dae656713ba861751fb2c2ac38839349a7a">
<span class="new-file">
+
.gitattributes
</span>
</a>
</li>
<li class="file-stats">
<a href="#a5cc2925ca8258af241be7e5b0381edf30266302">
.gitignore
</a>
</li>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#0da1179aab31cf22c6b68d3bbbe5165f8c8f73fd">
<span class="new-file">
+
.gitlab/issue_templates/bug.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#70424f3e889c476809536f20e5ea251264077eca">
<span class="new-file">
+
.gitlab/issue_templates/feature_request.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#94d74d443c79a6f0e3f44097cf3dd2f1a34bdcbe">
.gitlab/linters/check-makefiles.py
</a>
</li>
<li class="file-stats">
<a href="#b8dbb28cac2b7ba465be98a9ef055178d1b8bdec">
<span class="new-file">
+
.gitlab/linters/check-version-number.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#e744be31242d2de56a037bead48e7046d28c2059">
.gitlab/linters/linter.py
</a>
</li>
<li class="file-stats">
<a href="#4dd1dc0abc990333ed932ef4087febfc97d3c4f9">
<span class="new-file">
+
.gitlab/merge_request_templates/backport-for-8.8.md
</span>
</a>
</li>
</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/f05efa484a700fd078506e2ebff910043050862e...4bd679bcee270266b380792ebbebca78c1c95666">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>