<!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/bump-text
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/7fc34aed2b133f7bea7e82f0d9a9fb5af6281d4f">7fc34aed</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-02-22T18:43:59-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #17724 by having occAnal preserve used bindings.
It sometimes happened that occAnal would remove bindings
as dead code by relying on bindings to be in dependency
order. The fix was contributed by SPJ.
(cherry picked from commit 6de966f1369740d00193e64ec82d11e934256616)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/195654119babc25e5f413b7b46abd3b4b0465999">19565411</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-02-22T18:44:33-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set RELEASE=YES
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ccd851fcf0f773e53cd76ee1151ce643a684810">5ccd851f</a></strong>
<div>
<span>by Alexis King</span>
<i>at 2020-02-22T18:49:33-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Treat coercions as arguments for floating and inlining
This reverts commit 8924224ecfa065ebc67b96a90d01cf9d2edd0e77
and fixes #17787.
(cherry picked from commit 54c8641df70961fd57ff89ec52596a2898a048d7)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff95136b7951d21186ce06a8397f03c41e89c8df">ff95136b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-02-22T18:58:35-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fs: Port fixes from ghc-jailbreak repository
* Override rename, unlink, and remove
* Factor out wchar conversion
(cherry picked from commit bdb2e37550fed13ad1d5cf1d76c8cc90b4d823fb)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05969579057d8712e298b5d290cbdc79f0732c34">05969579</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-02-23T10:21:06-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Skip T17787 in profiled ways
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5848178872c5523669e5fe5b48ebcb616161a387">58481788</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2020-02-25T01:37:00-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix order of arguments in specializer (#17801)
See https://gitlab.haskell.org/ghc/ghc/issues/17801#note_253330
No regression test, as it's hard to trigger.
(cherry picked from commit f0c0ee7d9a942a19361e72553cd08f42cc12b04a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fe488bbe22df3dda4cfcb02fd350eaf50e6622e1">fe488bbe</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-02-25T18:29:03+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document module renaming
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea7ff702a9b8366e68aae30ff816b542c15e26c5">ea7ff702</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-04T12:33:25-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Fix marking in compact regions
Previously we were tracing the object we were asked to mark, even if it
lives in a compact region. However, there is no need to do this; we need
only to mark the region itself as live.
I have seen a segfault due to this due to the concurrent mark seeing a
an object in the process of being compacted by the mutator.
(cherry picked from commit e4e9a7ba3abc991d3583371da4681560a7b67bd2)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9dcac04446c88ecdd13fe65d2b3ae571f0f7eed">a9dcac04</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-04T12:33:25-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Clear segment bitmaps during sweep
Previously we would clear the bitmaps of segments which we are going to
sweep during the preparatory pause. However, this is unnecessary: the
existence of the mark epoch ensures that the sweep will correctly
identify non-reachable objects, even if we do not clear the bitmap.
We now defer clearing the bitmap to sweep, which happens concurrently
with mutation.
(cherry picked from commit 69001f54279a55bc4e5e5883c675e5ba6fe49a22)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2bf7b5b54065a6aa6ab7e70a9b5ba87aed1c84cf">2bf7b5b5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-04T12:33:25-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Don't traverse filled segment list in pause
The non-moving collector would previously walk the entire filled segment
list during the preparatory pause. However, this is far more work than
is strictly necessary. We can rather get away with merely collecting the
allocators' filled segment list heads and process the lists themselves
during the concurrent phase. This can significantly reduce the maximum
gen1 GC pause time in programs with high rates of long-lived allocations.
(cherry picked from commit 927b7a3de710d53fb11ccea35b807b64b4afc700)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92bc36885a8866714fce5cb44e298562ac29b5b8">92bc3688</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-04T12:56:40-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Fix collection of sparks
Previously sparks living in the non-moving heap would be promptly GC'd
by the minor collector since pruneSparkQueue uses the BF_EVACUATED flag,
which non-moving heap blocks do not have set.
Fix this by implementing proper support in pruneSparkQueue for
determining reachability in the non-moving heap. The story is told in
Note [Spark management in the nonmoving heap].
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7daea6566702f4423b1d1eb590bc652c4025629a">7daea656</a></strong>
<div>
<span>by Josef Svenningsson</span>
<i>at 2020-03-09T11:55:24-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix ApplicativeDo regression #17835
A previous fix for #15344 made sure that monadic 'fail' is used properly
when translating ApplicativeDo. However, it didn't properly account
for when a 'fail' will be inserted which resulted in some programs
failing with a type error.
(cherry picked from commit 7537d273b3082ef15693c78ac38d3020d4add4c9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4d102d28cfba02dd7e3159888729e1168b785dd">a4d102d2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-09T19:07:33-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Solve constraints from top-level groups sooner"
This reverts commit 9612e91c793830b3049d2bc9a9ee28d9d82b928d.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a20022fc2b26b31c40a0be2225edd3f5d3af724b">a20022fc</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-03-10T17:52:13-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fs: Fix UNC remapping code.
(cherry picked from commit 5670881d7779ecd7eee8c969dab66ee343298532)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb3542a5cbade65c13d8ba29812c91b70f69c983">fb3542a5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-11T19:59:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Rework triggering of release builds
Use a push option instead of tagging.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84439cb053aa4cbfe56a2ab6aedf848899c085dc">84439cb0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-12T19:00:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hpc submodule
Fixes typo in changelog.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6ccab3538cd33041eea2c16eb362b0754bf76f6">e6ccab35</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-12T19:32:37-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Disable utimensat support in Darwin builds
Works around #17895.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dbc5e8c882e9fcb15f9a87f9665c6fd36dcb5c9b">dbc5e8c8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-13T10:44:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Add integer-simple release build for Windows
Closes #16144.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e03bae3cb687337c06305ad9d1c0dd511c2d74cf">e03bae3c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-14T15:41:40-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule
Avoid unreachable case alternative warning on Windows.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05cc8b19b59669ec10c9a313d3825e5c1b31904e">05cc8b19</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-14T15:42:16-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Use integer-simple to built Alpine bindists
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91d1f25cde01eb0c4731f4b977fd9599b0e8a0f2">91d1f25c</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2020-03-14T16:13:39-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix global_link of TSOs for threads reachable via dead weaks
Fixes #17785
Here's how the problem occurs:
- In generation 0 we have a TSO that is finished (i.e. it has no more
work to do or it is killed).
- The TSO only becomes reachable after collectDeadWeakPtrs().
- After collectDeadWeakPtrs() we switch to WeakDone phase where we don't
move TSOs to different lists anymore (like the next gen's thread list
or the resurrected_threads list).
- So the TSO will never be moved to a generation's thread list, but it
will be promoted to generation 1.
- Generation 1 collected via mark-compact, and because the TSO is
reachable it is marked, and its `global_link` field, which is bogus at
this point (because the TSO is not in a list), will be threaded.
- Chaos ensues.
In other words, when these conditions hold:
- A TSO is reachable only after collectDeadWeakPtrs()
- It's finished (what_next is ThreadComplete or ThreadKilled)
- It's retained by mark-compact collector (moving collector doesn't
evacuate the global_list field)
We end up doing random mutations on the heap because the TSO's
global_list field is not valid, but it still looks like a heap pointer
so we thread it during compacting GC.
The fix is simple: when we traverse old_threads lists to resurrect
unreachable threads the threads that won't be resurrected currently
stays on the old_threads lists. Those threads will never be visited
again by MarkWeak so we now reset the global_list fields. This way
compacting GC does not thread pointers to nowhere.
Testing
-------
The reproducer in #17785 is quite large and hard to build, because of
the dependencies, so I'm not adding a regression test.
In my testing the reproducer would take a less than 5 seconds to run,
and once in every ~5 runs would fail with a segfault or an assertion
error. In other cases it also fails with a test failure. Because the
tests never fail with the bug fix, assuming the code is correct, this
also means that this bug can sometimes lead to incorrect runtime
results.
After the fix I was able to run the reproducer repeatedly for about an
hour, with no runtime crashes or test failures.
To run the reproducer clone the git repo:
$ git clone https://github.com/osa1/streamly --branch ghc-segfault
Then clone primitive and atomic-primops from their git repos and point
to the clones in cabal.project.local. The project should then be
buildable using GHC HEAD. Run the executable `properties` with `+RTS -c
-DZ`.
In addition to the reproducer above I run the test suite using:
$ make slowtest EXTRA_HC_OPTS="-debug -with-rtsopts=-DS \
-with-rtsopts=-c +RTS -c -RTS" SKIPWAY='nonmoving nonmoving_thr'
This enables compacting GC always in both GHC when building the test
programs and when running the test programs, and also enables sanity
checking when running the test programs. These set of flags are not
compatible for all tests so there are some failures, but I got the same
set of failures with this patch compared to GHC HEAD.
(cherry picked from commit 2e4d572e0a869e38253574cb8f383d6ded0b7e32)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35aab0f90185c6c47ff42e3ff592b27375c281aa">35aab0f9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-14T16:40:50-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fs.h: Add missing declarations on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2cf76e2bb943a375b030e2d381147a986804fbd7">2cf76e2b</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2020-03-14T21:14:25-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: correctly generate LIBRARY_template_haskell_VERSION
(backport for 8.10)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/14ec315fd9a5b84155f10dc4a7b725ce4b5dd411">14ec315f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-15T00:20:55-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Fix unqualified import of Data.List
In System.Environment.ExecutablePath that was only compiled on Windows.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02f393fb33be26e1164b1ebe7139fc1be73f8f61">02f393fb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-15T00:21:50-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule again
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c1c4022c0a58e2be2d75121023bf2d74e12e2d1">5c1c4022</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-03-16T16:47:14+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Warning about SAKs in release notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af9eea15b0ca50b392b03848b693e6d77751f916">af9eea15</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-16T22:34:17-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule again
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3368f4f7b65e5ab4fa85d96f3d975d61af5ef5ef">3368f4f7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-16T22:34:17-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Fix integer-simple job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/90e28e6151782ea630bc3f53d30752d33ac5c9ff">90e28e61</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-16T22:41:53-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hsc2hs to 0.68.7
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/036133af5058845b5ff49c96b56230c3a8d7c547">036133af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-17T09:46:27-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bootstrap Darwin/Windows with 8.8.3
To ensure we have a new enough process version.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/848cc69bc65755e1a7913f2eb4d557ab6116508e">848cc69b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-17T09:46:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Drop old build.mk logic on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c0a45d1043de427a1f179019e87723b1374bf19">4c0a45d1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-17T20:16:58-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hsc2hs submodule
Fixes Darwin build failure due to CPP whitespace.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de890c8294314de582e28b870d83971ef007e900">de890c82</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T09:53:53-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Backport CI rework from master
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/671ac3f68327ce7ed0181b5d38c677802085686c">671ac3f6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T11:57:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix :default: fields
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/00d251377f805474941035e40f2ab4deb54ca840">00d25137</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T13:42:15-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">release notes: Fix undefined references
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5caf1a2859837d0e6a74ddbc69eea174b5131c3">a5caf1a2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T13:43:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Expose interface for configuring EventLogWriters
This exposes a set of interfaces from the GHC API for configuring
EventLogWriters. These can be used by consumers like
[ghc-eventlog-socket](https://github.com/bgamari/ghc-eventlog-socket).
(cherry picked from commit e43e6ece1418f84e50d572772394ab639a083e79)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5295fd5adc967f02ec8b0fa2f45e978e1f531295">5295fd5a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T13:46:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix unknown link targets
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/544e24e11fa3be5bdaad4095bdf146a6ca902c43">544e24e1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T15:35:34-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs/compare-flags: Don't use python f-strings
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24966161e35c6814a2c894d98bc679af7c4d8ce7">24966161</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T15:35:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compare-flags: Don't rely on encoding flag of subprocess.check_output
Apparently it isn't supported by some slightly older Python versions.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0fd7e009024f76a4a245dc7c76e6cec28136e742">0fd7e009</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T15:35:42-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">compare-flags: Fix output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd4990ca1925e619afa547ba9ce6cfe2c6132dad">cd4990ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T18:15:45-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Drop compare-flags
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06ee06fb89689d7c2e0c5b7b030641f58bb2f2c1">06ee06fb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-18T21:32:17-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add test-metrics.sh from master
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b9fb1ac47c1e282e8f07311462e922c19f4f69a5">b9fb1ac4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-19T09:36:05-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Backport get-win32-tarballs configure changes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8eb82c89f31a482b0c2513be36d474dbe666bf88">8eb82c89</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-19T23:45:02-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06889a6f2e2adfd308339a836074216108cd7149">06889a6f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-03-19T23:45:28-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow armv7 to fail
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c3cadf5db0d7eb859ff2c278ab07585c7df17b5">5c3cadf5</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2020-03-22T20:26:41-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump Haddock submodule for 2.24 release
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/07c0d14899cf5d9aa89854d495ec284b27f88b5a">07c0d148</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Force -fPIC for intree GMP (fix #17799)
Configure intree GMP with `--with-pic` instead of patching it. Moreover
the correct patching was only done for x86_64/darwin (see #17799).
(cherry picked from commit e1e329448f3742b2024ca6bc2c78f36fe282b606)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64fb49c9cef20c30fbe98fbdec11c71b294aaa92">64fb49c9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Add FreeBSD release job
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1464459ef8d62e0721257ad2658c640a43f9947">d1464459</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Mention -Wunused-packages in release notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ba0cd3eb00748e5709660b250fef6c733c7d980">9ba0cd3e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Don't ask sed to operate in-place on symlinks
Some sed implementations (e.g. FreeBSD) refuse to operate in-place on
symlinks.
(cherry picked from commit e5ee07ab565c1bf7a33d3bd4bcd3fb6c7b100d1c)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0b4e2cc9d93eb6e7f8e04843171f94edf8ac350">c0b4e2cc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite/T16930: Don't rely on gnu grep specific --include
In BSD grep this flag only affects directory recursion.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2daee6658c68714bc940aa5171b5dfc23053d621">2daee665</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:19-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T6132 as broken on FreeBSD
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12bb99129127dce738ccaba29d04dbb97c932d0a">12bb9912</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:20-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Pass -Wno-unused-command-line-arguments during link on FreeBSD
FreeBSD cc throws a warning if we pass -pthread without actually using
any pthread symbols.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3717c6109691b2666b790a1266638de006234839">3717c610</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:20-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Always clamp reads/writes to 2GB in length
Previously we did this only on Darwin due to #17414. However, even on
other platforms >2GB writes are on shaky ground. POSIX explicitly says
that the result is implementation-specified and Linux will write at most
0x7ffff000, even on 64-bit platforms. Moreover, getting the sign
of the syscall result correct is tricky, as demonstrated by the fact
that T17414 currently fails on FreeBSD.
For simplicity we now just uniformly clamp to 0x7ffff000 on all
platforms.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ff90fd85e2c611a97ba36357ec50972d32db850">9ff90fd8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-04-13T17:57:20-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: Fix sphinx version test
The check for the "v" prefix is redundant.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/584c3b0564d5e572282dde7d173b9c67599e9dd2">584c3b05</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-12T12:42:34-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure.ac: Reset RELEASE to NO</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37956be4958a260c884a20e08ca3bf00a9622e6f">37956be4</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2020-05-21T17:42:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Note platform-specific Foreign.C.Types in context
Also fix the markup in the general note at the top of the module. Haddock
(usability trade-off), does not support multi-line emphasised text.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a16c24b7a75210fed9bb188404118e244af4c491">a16c24b7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Add getCurrentThreadCPUTime helper
(cherry picked from commit cedd6f3041de6abe64dfa3257bec7730a9dced9f)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1f9d71115ceb12e680be4391735ab2596a2b126">d1f9d711</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Prefer darwin-specific getCurrentThreadCPUTime
macOS Catalina now supports a non-POSIX-compliant version of clock_gettime
which cannot use the clock_gettime codepath.
Fixes #17906.
(cherry picked from commit bb586f894532baf1bcb822afd0df7f9fea198671)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39f3b172d2483a31531814e0ca3a5dabef56ac73">39f3b172</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving-gc: Track time usage of nonmoving marking
(cherry picked from commit ace618cd2294989e783bd453cee88e0e1c0dad77)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35f50728804a9951016725d170097326ce75d264">35f50728</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Eagerly flush all capabilities' update remembered sets
(cherry picked from commit 2fa79119570b358a4db61446396889b8260d7957)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc26ba8789597b824b5f82da976d1bb50e906698">dc26ba87</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Explicitly memoize block count
A profile cast doubt on whether the compiler hoisted the bound out the
loop as I would have expected here. It turns out it did but nevertheless
it seems clearer to just do this manually.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce49860d708d8cf59b83346d5d83c3b914bc4daf">ce49860d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Clear bitmap after initializing block size
Previously nonmovingInitSegment would clear the bitmap before
initializing the segment's block size. This is broken since
nonmovingClearBitmap looks at the segment's block size to determine how
much bitmap to clear.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1101739abf339a5222a64d72bcaea40c0a7c6a6e">1101739a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Allow libnuma library path to be specified
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e8ede7e08966de426000c60f866cc8e894b7af5">6e8ede7e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Zero block flags with -DZ
Block flags are very useful for determining the state of a block.
However, some block allocator users don't touch them, leading to
misleading values. Ensure that we zero then when zero-on-gc is set. This
is safe and makes the flags more useful during debugging.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/185a870e642cb7b16f4b8a7ae5b79af4a0f5156b">185a870e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Fix incorrect failed_to_evac value during deadlock gc
Previously we would incorrectly set the failed_to_evac flag if we
evacuated a value due to a deadlock GC. This would cause us to mark more
things as dirty than strictly necessary. It also turned up a nasty but
which I will fix next.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/124a40cccd547178d01b43061fda8c7e04a2852f">124a40cc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Fix handling of dirty objects
Previously we (incorrectly) relied on failed_to_evac to be "precise".
That is, we expected it to only be true if *all* of an object's fields
lived outside of the non-moving heap. However, does not match the
behavior of failed_to_evac, which is true if *any* of the object's
fields weren't promoted (meaning that some others *may* live in the
non-moving heap).
This is problematic as we skip the non-moving write barrier for dirty
objects (which we can only safely do if *all* fields point outside of
the non-moving heap).
Clearly this arises due to a fundamental difference in the behavior
expected of failed_to_evac in the moving and non-moving collector.
e.g., in the moving collector it is always safe to conservatively say
failed_to_evac=true whereas in the non-moving collector the safe value
is false.
This issue went unnoticed as I never wrote down the dirtiness
invariant enforced by the non-moving collector. We now define this
invariant as
An object being marked as dirty implies that all of its fields are
on the mark queue (or, equivalently, update remembered set).
To maintain this invariant we teach nonmovingScavengeOne to push the
fields of objects which we fail to evacuate to the update remembered
set. This is a simple and reasonably cheap solution and avoids the
complexity and fragility that other, more strict alternative invariants
would require.
All of this is described in a new Note, Note [Dirty flags in the
non-moving collector] in NonMoving.c.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b23f16d0e01e12e18f1039b1192e45c528b9e178">b23f16d0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Optimise the write barrier
(cherry picked from commit a636eadac1f30bae37aeb6526f94893293f098b8)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2581e98b75f6ac328aadbae8ca4aefd44e85c78">d2581e98</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">FastString: fix eager reading of string ptr in hashStr
This read causes NULL dereferencing when len is 0.
Fixes #17909
In the reproducer in #17909 this bug is triggered as follows:
- SimplOpt.dealWithStringLiteral is called with a single-char string
("=" in #17909)
- tailFS gets called on the FastString of the single-char string.
- tailFS checks the length of the string, which is 1, and calls
mkFastStringByteString on the tail of the ByteString, which is an
empty ByteString as the original ByteString has only one char.
- ByteString's unsafeUseAsCStringLen returns (NULL, 0) for the empty
ByteString, which is passed to mkFastStringWith.
- mkFastStringWith gets hash of the NULL pointer via hashStr, which
fails on empty strings because of this bug.
(cherry picked from commit d15b61608a542f6349b42224140b7d227b88ef4e)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76059e3e471dc03970b1a325ed621370e4ea6982">76059e3e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve error handling for VTA + deferred type errors
This fixes #17792
See Note [VTA for out-of-scope functions] in TcExpr
(cherry picked from commit 335b18bac3c361d243f427b66e67c2c94f5c6494)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7dd83db50485c11597133e489fcf98281772f76">a7dd83db</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a missing zonk in tcHsPartialType
I omitted a vital zonk when refactoring tcHsPartialType in
commit 48fb3482f8cbc8a4b37161021e846105f980eed4
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date: Wed Jun 5 08:55:17 2019 +0100
Fix typechecking of partial type signatures
This patch fixes it and adds commentary to explain why.
Fixes #18008
(cherry picked from commit 658bda511237593bb80389280d0364180648058d)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3fcf26d43a79616d5ecf687cc8459e9be7f1201">e3fcf26d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Rts: show errno on failure (#18033)
(cherry picked from commit 4875d419ba066e479f7ac07f8b39ebe10c855859)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ba788d22600950d07c876051c2bdb171eb9c5f85">ba788d22</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix two ASSERT buglets in reifyDataCon
Two `ASSERT`s in `reifyDataCon` were always using `arg_tys`, but
`arg_tys` is not meaningful for GADT constructors. In fact, it's
worse than non-meaningful, since using `arg_tys` when reifying a
GADT constructor can lead to failed `ASSERT`ions, as #17305
demonstrates.
This patch applies the simplest possible fix to the immediate
problem. The `ASSERT`s now use `r_arg_tys` instead of `arg_tys`, as
the former makes sure to give something meaningful for GADT
constructors. This makes the panic go away at the very least. There
is still an underlying issue with the way the internals of
`reifyDataCon` work, as described in
https://gitlab.haskell.org/ghc/ghc/issues/17305#note_227023, but we
leave that as future work, since fixing the underlying issue is
much trickier (see
https://gitlab.haskell.org/ghc/ghc/issues/17305#note_227087).
(cherry picked from commit cfb66d181ac45ce3d934bda3521b94277e6eb683)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25d84fa215583286e5788ff8f1b4100df822cd9a">25d84fa2</a></strong>
<div>
<span>by Adam Gundry</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject all duplicate declarations involving DuplicateRecordFields (fixes #17965)
This fixes a bug that resulted in some programs being accepted that used the same
identifier as a field label and another declaration, depending on the order they
appeared in the source code.
(cherry picked from commit 0d8c7a6c7c3513089668f49efb0a2dd8b4bbe74a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/646648a9e71b6ba81a359445abe0d95b8ba390b2">646648a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ensure that printMinimalImports closes handle
Fixes #18166.
(cherry picked from commit 5afc160dee7142c96a842037fb64bee1429ad9ec)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/123c386bfb0e7742e3ee8ee04c00357cefc79b19">123c386b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Make non-existent linker search path merely a warning
As noted in #18105, previously this resulted in a rather intrusive error
message. This is in contrast to the general expectation that search
paths are merely places to look, not places that must exist.
Fixes #18105.
(cherry picked from commit 24af9f30681444380c25465f555599da563713cb)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06f05573892edc33eae634c9b9175aff7c5c4826">06f05573</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nonmoving: Optimise log2_ceil
(cherry picked from commit 5f69016115414d0dd921e72f3edcd0b365966141)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dae01c104edbe24be721261443ddd582320a7411">dae01c10</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Enable tracing of nonmoving heap census with -ln
Previously this was not easily available to the user. Fix this.
Non-moving collection lifecycle events are now reported with -lg.
(cherry picked from commit 7bfe9ac514e18c0b0e24ff55230fe98ec9db894c)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/72218602bf3ac1faa1c63b1c6342013c452a7e3d">72218602</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:32-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users guide: Move eventlog documentation users guide
(cherry picked from commit c560dd07f506810eaabae2f582491138aa224819)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79da3ca28d12306e5bc073d2f1b7ba130e12cd99">79da3ca2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-24T20:42:33-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users guide: Add documentation for non-moving GC events
(cherry picked from commit 02543d5ef9bd7a910fc9fece895780583ab9635a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10f80ca8a30f73baf1e53bd8304b61786a2f646e">10f80ca8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:56:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">iserv: Don't pass --export-dynamic on FreeBSD
This is definitely a hack but it's probably the best we can do for now.
Hadrian does the right thing here by passing --export-dynamic only to
the linker.
(cherry picked from commit 2290eb02cf95e9cfffcb15fc9c593d5ef79c75d9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94562bbfb7107ef728a7f828bcbf4b4e8d07d66e">94562bbf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:56:30-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Use --export-dynamic when linking iserv
As noticed in #17962, the make build system currently does this (see
3ce0e0ba) but the change was never ported to Hadrian.
(cherry picked from commit eba58110538686d8fe57d5dd372624b50f1fa2b7)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3330c2dcbc778dc8811cf8e0b1e1bcdda6f2b60">b3330c2d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:58:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Coverage: Don't produce ModBreaks if not HscInterpreted
emptyModBreaks contains a bottom and consequently it's important that we
don't use it unless necessary.
(cherry picked from commit f684a7d505f19bd78f178e01bbd8e4467aaa00ea)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/295735ae36c5d7d02cbd61d6312a15d4381fe186">295735ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T10:00:15-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule
Fixes #17926.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/285f92bba2f3b5478a3c9418a9afed8648fef838">285f92bb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-05-30T10:03:03-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">RTS: workaround a Linux kernel bug in timerfd
Reading a timerfd may return 0: https://lkml.org/lkml/2019/8/16/335.
This is currently undocumented behavior and documentation "won't happen
anytime soon" (https://lkml.org/lkml/2020/2/13/295).
With this patch, we just ignore the result instead of crashing. It may
fix #18033 but we can't be sure because we don't have enough
information.
See also this discussion about the kernel bug:
https://github.com/Azure/sonic-swss-common/pull/302/files/1f070e7920c2e5d63316c0105bf4481e73d72dc9
(cherry picked from commit 8ea37b01b6ab16937f7b528b6bbae9fade9f1361)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88fd48298f04fa245ac388fdd1cdd976f4b34baa">88fd4829</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add orderingTyCon to wiredInTyCons (#18185)
`Ordering` needs to be wired in for use in the built-in `CmpNat` and
`CmpSymbol` type families, but somehow it was never added to the list
of `wiredInTyCons`, leading to the various oddities observed
in #18185. Easily fixed by moving `orderingTyCon` from
`basicKnownKeyNames` to `wiredInTyCons`.
Fixes #18185.
(cherry picked from commit 6ca3d6a6c19dcd885f3b0beeda192cd90e83e0bd)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6befeb319a02d765f7c8d226ca518c3254b80f9">a6befeb3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">simplCore: Ignore ticks in rule templates
This fixes #17619, where a tick snuck in to the template of a rule,
resulting in a panic during rule matching. The tick in question was
introduced via post-inlining, as discussed in `Note [Simplifying
rules]`. The solution we decided upon was to simply ignore ticks in the
rule template, as discussed in `Note [Tick annotations in RULE
matching]`.
Fixes #18162.
Fixes #17619.
(cherry picked from commit dcd6bdcce57430d08b335014625722c487ea08e4)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa36474d492f80bc775f9bfa141f731362cc2677">fa36474d</a></strong>
<div>
<span>by Tuan Le</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">llvmGen: Consider Relocatable read-only data as not constantReferences: #18137
(cherry picked from commit 0004ccb885e534c386ceae21580fc59ec7ad0ede)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a73e707dd61f30cc66e27050b10abd9cf4a624b">4a73e707</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/CNF: Fix fixup comparison function
Previously we would implicitly convert the difference between two words
to an int, resulting in an integer overflow on 64-bit machines.
Fixes #16992
(cherry picked from commit cf4f1e2f78840d25b132de55bce1e02256334ace)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4219e9c13f0e64addf208c1defa13b2703beb523">4219e9c1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make boxed 1-tuples have known keys
Unlike other tuples, which use special syntax and are "known" by way
of a special `isBuiltInOcc_maybe` code path, boxed 1-tuples do not
use special syntax. Therefore, in order to make sure that the
internals of GHC are aware of the `data Unit a = Unit a` definition
in `GHC.Tuple`, we give `Unit` known keys. For the full details, see
`Note [One-tuples] (Wrinkle: Make boxed one-tuple names have known keys)`
in `GHC.Builtin.Types`.
Fixes #18097.
(cherry picked from commit 518a63d4d7e31e49a81ad66d5e5ccb1f790f6de9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/761909b96de77073b88947880cab7498489691b2">761909b9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Create di_scoped_tvs for associated data family instances properly
See `Note [Associated data family instances and di_scoped_tvs]` in
`GHC.Tc.TyCl.Instance`, which explains all of the moving parts.
Fixes #18055.
(cherry picked from commit cd8409c26d4370bf2cdcd76801974e99a9adf7b0)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30037e6d0cbc741f50577d2ce311fa4f80606fc1">30037e6d</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PmCheck: Adjust recursion depth for inhabitation test
In #17977, we ran into the reduction depth limit of the typechecker.
That was only a symptom of a much broader issue: The recursion depth
of the coverage checker for trying to instantiate strict fields in the
`nonVoid` test was far too high (100, the `defaultMaxTcBound`).
As a result, we were performing quite poorly on `T17977`.
Short of a proper termination analysis to prove emptyness of a type,
we just arbitrarily default to a much lower recursion limit of 3.
Fixes #17977.
(cherry picked from commit ed58d4fdcbc7b4fa8fbdf3d638a8d53c444ef4f2)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1666baa6f3963b2d03b774a51d0f2e76ea1205e0">1666baa6</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve skolemisation
This patch avoids skolemiseUnboundMetaTyVar making
up a fresh Name when it doesn't need to.
See Note [Skolemising and identity]
Improves error messsages for partial type signatures.
(cherry picked from commit d7002bccd7d131f8ee9b1ddcd83d62262622294d)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84ba6d2cb35387fe580c5ac47d3498daa0d2be34">84ba6d2c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve pretty-printing for TyConBinders
In particular, show their kinds.
(cherry picked from commit fa37940cd72f82abc460f5c0a5de64dd75cee6ae)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3527714032fecf4e2cedec3a80b1642dec4224f1">35277140</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix scoping of TyCon binders in TcTyClsDecls
This patch fixes #17566 by refactoring the way we decide the final
identity of the tyvars in the TyCons of a possibly-recursive nest
of type and class decls, possibly with associated types.
It's all laid out in
Note [Swizzling the tyvars before generaliseTcTyCon]
Main changes:
* We have to generalise each decl (with its associated types)
all at once: TcTyClsDecls.generaliseTyClDecl
* The main new work is done in TcTyClsDecls.swizzleTcTyConBndrs
* The mysterious TcHsSyn.zonkRecTyVarBndrs dies altogether
Other smaller things:
* A little refactoring, moving bindTyClTyVars from tcTyClDecl1
to tcDataDefn, tcSynRhs, etc. Clearer, reduces the number of
parameters
* Reduce the amount of swizzling required.
Specifically, bindExplicitTKBndrs_Q_Tv doesn't need
to clone a new Name for the TyVarTv, and not
cloning means that in the vasly common case,
swizzleTyConBndrs is a no-op
In detail:
Rename newTyVarTyVar --> cloneTyVarTyVar
Add newTyVarTyTyVar that doesn't clone
Use the non-cloning newTyVarTyVar in
bindExplicitTKBndrs_Q_Tv
Rename newFlexiKindedTyVarTyVar
--> cloneFlexiKindedTyVarTyVar
* Define new utility function and use it
HsDecls.familyDeclName ::
FamilyDecl (GhcPass p) -> IdP (GhcPass p)
Updates haddock submodule.
(cherry picked from commit b9605396f1f1560aea94792646b835cadcb49f45)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/540d5562f323eabdc2b80ba1520be312b88ab8ae">540d5562</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-06-02T10:07:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CorePrep: Print type if we fail to split
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26386f0c86455fe63ef38930702b292ccf7b9bac">26386f0c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-06-20T15:26:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27
(cherry picked from commit 481e31740672a37c5b3a8924bba7e15c4080bc2e)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/408b67142e2abdaf5866f638ab51ec3e2103d4a9">408b6714</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bump Docker images
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/410f53a99b7d63b7874e1597b56602712f71bc96">410f53a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Eliminate some redundant imports
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2bed3ee5ff15cdb9759bff4301327f76e58025a">e2bed3ee</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept testsuite changes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5018cad4be80f06bd132820d116441ac4e93ac37">5018cad4</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add "-Iw" RTS flag for minimum wait between idle GCs (#11134)
This wasn't originally slated for 8.10 but the documentation part of
this patch snuck into the ghc-8.10 branch via a backport. Instead of
backing out the documentation and causing further user confusion I've
opted just to backport this functional change as well.
(cherry picked from commit 859ebdd446eda446d38708a587503c255b58c4c6)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/edc36a9188e7f25ccee06ff2fe0808ededd5f6eb">edc36a91</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">user-guide: Add release notes for 8.10.2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46e3cecaee1c2a68d8a5d02269ba584dcdea2741">46e3ceca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:27:30-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/ProfHeap: Only allocate the Censuses that we need
When not LDV profiling there is no reason to allocate 32 Censuses; one
will do. This is a very small memory footprint optimisation, but it
comes for free.
(cherry picked from commit 8cc7274b8de254c7266b61fadbc6795dc37bd1e9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca146208a210242904edde77633ef857200dd45f">ca146208</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:27:40-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/ProfHeap: Free old allocations when reinitialising Censuses
Previously when not LDV profiling we would repeatedly reinitialise
`censuses[0]` with `initEra`. This failed to free the `Arena` and
`HashTable` from the old census, resulting in a memory leak.
Fixes #18348.
(cherry picked from commit b835112cbeaa6e34a8bae7b7697bdf2826edaa9a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9770ef3821b1539f24c7207ac50c04597856b65">c9770ef3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-15T23:39:35-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Escape backslashes in json profiling reports properly.
I also took the liberty to do away the fixed buffer size for escaping.
Using a fixed size here can only lead to issues down the line.
Fixes #18438.
(cherry picked from commit fecafac8065d951c14a23de2395e078328f856cd)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa2e5863699306920513b216f337de09e29b5bb8">aa2e5863</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-15T23:42:39-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[linker/rtsSymbols] More linker symbols
Mostly symbols needed for aarch64/armv7l
and in combination with musl, where we have
to rely on loading *all* objects/archives
- __stack_chk_* only when not DYNAMIC
(cherry picked from commit 5bc6082fdcb278be878f01a2eeb9741d7d82bb49)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dfffd9eb6ea01a9e248f24f0f2c981821dca870d">dfffd9eb</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2020-07-15T23:50:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: fix sign confusion in log1mexp implementation (fix #17125)
author: claude (https://gitlab.haskell.org/trac-claude)
The correct threshold for log1mexp is -(log 2) with the current specification
of log1mexp. This change improves accuracy for large negative inputs.
To avoid code duplication, a small helper function is added;
it isn't the default implementation in Floating because it needs Ord.
This patch does nothing to address that the Haskell specification is
different from that in common use in other languages.
(cherry picked from commit af5e3a885ddd09dd5f550552c535af3661ff3dbf)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93c0651822560eb4bf6cbe136021b7c5529d0700">93c06518</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-15T23:51:27-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-prim needs to depend on libc and libm
libm is just an empty shell on musl, and all the math functions are contained in
libc.
(cherry picked from commit b455074875d3c8fd3a5787e01dc6f922f3a97bc2)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b33a20c534bbc8e48cf547d0111a642b0e638a2c">b33a20c5</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-15T23:51:39-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Load .lo as well.
Some archives contain so called linker objects, with the affectionate
.lo suffic. For example the musl libc.a will come in that form. We
still want to load those objects, hence we should not discard them and
look for .lo as well. Ultimately we might want to fix this proerly by
looking at the file magic.
(cherry picked from commit 3fd12af1eaafe304e5916bc1fcfdf31709d360b8)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6560fa8f1af81080240d755a27f0dbbb96e33cdf">6560fa8f</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-15T23:52:20-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Range is actually +/-2^32, not +/-2^31
See also: https://static.docs.arm.com/ihi0056/g/aaelf64.pdf
(cherry picked from commit f2446ff1578a37822488e0e3968694f66712b969)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/820d9ed26b05c8c06464a52806671a3f21f6d700">820d9ed2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T23:55:55-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #18151
(cherry picked from commit bd9f558924755f965f5136b5e3d4fa88d34c9778)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be443156e7efbeb300ad760706b7326fabf73845">be443156</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T23:56:02-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for desugaring of PostfixOperators
(cherry picked from commit 95a9eb7396912314f6cfd971fb4523e4062acec6)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc8800f9f482460ceb2d450137766e0350551740">cc8800f9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T23:56:42-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">HsToCore: Eta expand left sections
Strangely, the comment next to this code already alluded to the fact
that even simply eta-expanding will sacrifice laziness. It's quite
unclear how we regressed so far.
See #18151.
(cherry picked from commit b1dbd625493ae1bf984cf51177011baf9c677c0a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/96a162759000ce10272349f3513ecf44d6aafbbc">96a16275</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-22T19:56:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Add --copying-gc flag to reverse effect of --nonmoving-gc
Fixes #18281.
(cherry picked from commit 750a1595ef31cdc335f3bab045b2f19a9c43ff93)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29d24d10af7a26d5f38bbd9e7d9f17c0671db8db">29d24d10</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-22T19:59:40-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Disable DLL loading if without system linker
Some platforms (musl, aarch64) do not have a working dynamic linker
implemented in the libc, even though we might see dlopen. It will
ultimately just return that this is not supported. Hence we'll add
a flag to the compiler to flat our disable loading dlls. This is
needed as we will otherwise try to load the shared library even
if this will subsequently fail. At that point we have given up
looking for static options though.
(cherry picked from commit aef523ea1254e8bb9e4143ad8f5994ca89ea9d2d)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ab76ca5576aede70d37dc29105e3831e7b1d1e5">9ab76ca5</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-07-22T20:47:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cmm: introduce SAVE_REGS/RESTORE_REGS
We don't want to save both Fn and Dn register sets on x86-64 as they are
aliased to the same arch register (XMMn).
Moreover, when SAVE_STGREGS was used in conjunction with `jump foo [*]`
which makes a set of Cmm registers alive so that they cover all arch
registers used to pass parameter, we could have Fn, Dn and XMMn alive at
the same time. It made the LLVM code generator choke (see #17920).
Now `SAVE_REGS/RESTORE_REGS` and `jump foo [*]` use the same set of
registers.
(cherry picked from commit 54b595c1b91ad9e686b5baf7640177becb372336)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e447bd2caf5f7e949d67ab8408209b76a659c478">e447bd2c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-07-22T22:57:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CmmToC: don't add extern decl to parsed Cmm data
Previously, if a .cmm file *not in the RTS* contained something like:
```cmm
section "rodata" { msg : bits8[] "Test\n"; }
```
It would get compiled by CmmToC into:
```c
ERW_(msg);
const char msg[] = "Test\012";
```
and fail with:
```
/tmp/ghc32129_0/ghc_4.hc:5:12: error:
error: conflicting types for \u2018msg\u2019
const char msg[] = "Test\012";
^~~
In file included from /tmp/ghc32129_0/ghc_4.hc:3:0: error:
/tmp/ghc32129_0/ghc_4.hc:4:6: error:
note: previous declaration of \u2018msg\u2019 was here
ERW_(msg);
^
/builds/hsyl20/ghc/_build/install/lib/ghc-8.11.0.20200605/lib/../lib/x86_64-linux-ghc-8.11.0.20200605/rts-1.0/include/Stg.h:253:46: error:
note: in definition of macro \u2018ERW_\u2019
#define ERW_(X) extern StgWordArray (X)
^
```
See the rationale for this on https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/backends/ppr-c#prototypes
Now we don't generate these extern declarations (ERW_, etc.) for
top-level data. It shouldn't change anything for the RTS (the only place
we use .cmm files) as it is already special cased in
`GHC.Cmm.CLabel.needsCDecl`. And hand-written Cmm can use explicit
extern declarations when needed.
Note that it allows `cgrun069` test to pass with CmmToC (cf #15467).
(cherry picked from commit 499f3a2829d7c5a047c2ee87377d71ab2ea8c6d9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f96a4b2c32a405966527a282c180dd04408161fc">f96a4b2c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-07-22T22:57:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">LLVM: refactor and comment register padding code (#17920)
(cherry picked from commit 9bdc2a056f459b0e05ddbc49d978dfed547ecc13)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/36656d70d9c06d6315aeb81ca511ead235944ca1">36656d70</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-07-22T22:57:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add tests for #17920
Metric Decrease:
T12150
T12234
(cherry picked from commit aa54d1a2b2d2c89107cfa77d8c14a50d6ee9c140)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b7c216cbd8ce4056bee4a460d9f731d4311a72f5">b7c216cb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-22T22:57:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix GhcThreaded setting
This adopts a patch from NetBSD's packaging fixing the `GhcThreaded`
option of the make build system. In addition we introduce a `ghcThreaded`
option in hadrian's `Flavour` type.
Also fix Hadrian's treatment of the `Use Threaded` entry in `settings`.
Previously it would incorrectly claim `Use Threaded = True` if we were
building the `threaded` runtime way. However, this is inconsistent with
the `make` build system, which defines it to be whether the `ghc`
executable is linked against the threaded runtime.
Fixes #17692.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55fac76881ceb849d0e03d98965981ffcb9acb87">55fac768</a></strong>
<div>
<span>by Travis Whitaker</span>
<i>at 2020-07-22T22:57:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Build a threaded stage 1 if the bootstrapping GHC supports it.
(cherry picked from commit 67738db10010fd28a8e997b5c8f83ea591b88a0e)
(cherry picked from commit a228d0a83db06fbe81b1c74fe3b1aea3133cee50)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83bcf37d447ffcc79af14092afdd0f0add519816">83bcf37d</a></strong>
<div>
<span>by Joshua Price</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make `identifier` parse unparenthesized `->` (#18060)
(cherry picked from commit d6203f24cf421749616a247c047a9b44192f963a)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50f259948eae1fbdb75a1295451446763e93df59">50f25994</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Wrap an implication around class-sig kind errors
Ticket #17841 showed that we can get a kind error
in a class signature, but lack an enclosing implication
that binds its skolems.
This patch
* Adds the wrapping implication: the new call to
checkTvConstraints in tcClassDecl1
* Simplifies the API to checkTvConstraints, which
was not otherwise called at all.
* Simplifies TcErrors.report_unsolved by *not*
initialising the TidyEnv from the typechecker lexical
envt. It's enough to do so from the free vars of the
unsolved constraints; and we get silly renamings if
we add variables twice: once from the lexical scope
and once from the implication constraint.
(cherry picked from commit 3f431587c2db712136a3b5a353758ca63e1a5fd8)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a063768e76c0a80b18cc57f125f822482ce95c53">a063768e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactoring in TcSMonad
This patch is just refactoring: no change in
behaviour.
I removed the rather complicated
checkConstraintsTcS
checkTvConstraintsTcS
in favour of simpler functions
emitImplicationTcS
emitTvImplicationTcS
pushLevelNoWorkList
The last of these is a little strange, but overall
it's much better I think.
(cherry picked from commit 9d87ced6832e75fce1e01b67bc6b7d9d1cf31efb)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05be81e83db86cdb2989ab67c37bbf1ab08dd676">05be81e8</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Major improvements to the specialiser
This patch is joint work of Alexis King and Simon PJ. It does some
significant refactoring of the type-class specialiser. Main highlights:
* We can specialise functions with types like
f :: Eq a => a -> Ord b => b => blah
where the classes aren't all at the front (#16473). Here we can
correctly specialise 'f' based on a call like
f @Int @Bool dEqInt x dOrdBool
This change really happened in an earlier patch
commit 2d0cf6252957b8980d89481ecd0b79891da4b14b
Author: Sandy Maguire <sandy@sandymaguire.me>
Date: Thu May 16 12:12:10 2019 -0400
work that this new patch builds directly on that work, and refactors
it a bit.
* We can specialise functions with implicit parameters (#17930)
g :: (?foo :: Bool, Show a) => a -> String
Previously we could not, but now they behave just like a non-class
argument as in 'f' above.
* We can specialise under-saturated calls, where some (but not all of
the dictionary arguments are provided (#17966). For example, we can
specialise the above 'f' based on a call
map (f @Int dEqInt) xs
even though we don't (and can't) give Ord dictionary.
This may sound exotic, but #17966 is a program from the wild, and
showed significant perf loss for functions like f, if you need
saturation of all dictionaries.
* We fix a buglet in which a floated dictionary had a bogus demand
(#17810), by using zapIdDemandInfo in the NonRec case of specBind.
* A tiny side benefit: we can drop dead arguments to specialised
functions; see Note [Drop dead args from specialisations]
* Fixed a bug in deciding what dictionaries are "interesting"; see
Note [Keep the old dictionaries interesting]
This is all achieved by by building on Sandy Macguire's work in
defining SpecArg, which mkCallUDs uses to describe the arguments of
the call. Main changes:
* Main work is in specHeader, which marched down the [InBndr] from the
function definition and the [SpecArg] from the call site, together.
* specCalls no longer has an arity check; the entire mechanism now
handles unders-saturated calls fine.
* mkCallUDs decides on an argument-by-argument basis whether to
specialise a particular dictionary argument; this is new.
See mk_spec_arg in mkCallUDs.
It looks as if there are many more lines of code, but I think that
all the extra lines are comments!
(cherry picked from commit 7052d7c7ce3418db9e66ad6ff31e80b2a2c724bb)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a10c6ddf4f39ff6f564a83256ce97d6ae2e4d42d">a10c6ddf</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix specialisation for DFuns
When specialising a DFun we must take care to saturate the
unfolding. See Note [Specialising DFuns] in Specialise.
Fixes #18120
(cherry picked from commit 88e3c8150d2b2d96c3ebc0b2942c9af44071c511)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5015d3ac72a788ce2beb86f01d29b52c6ca7202e">5015d3ac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Accept wibbles in specialiser test output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6471cc6aff80d5deebbdb1bf7b677b31ed2af3d5">6471cc6a</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2020-07-26T15:05:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[linker] Fix out of range relocations.
mmap may return address all over the place. mmap_next will ensure we get
the next free page after the requested address.
This is especially important for linking on aarch64, where the memory model with PIC
admits relocations in the +-4GB range, and as such we can't work with
arbitrary object locations in memory.
Of note: we map the rts into process space, so any mapped objects must
not be ouside of the 4GB from the processes address space.
(cherry picked from commit aedfeb0b2b22172a0dfca0fe0c020ac80539d6ae)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e4fe92067da5e395daf0822113b3d38293db407">2e4fe920</a></strong>
<div>
<span>by Stefan Schulze Frielinghaus</span>
<i>at 2020-07-28T12:58:12-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Require SMP support in order to build a threaded stage1
Fixes #18266
(cherry picked from commit fc0f6fbcd95f2dc69a8efabbee2d8a485c34cc47)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4672b93ebd390cb2885d09705c341640348ec72f">4672b93e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-29T22:59:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Bump version for log1mexp fix
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9aa91006319a53598e8f7ba4ecb203fc77aaa415">9aa91006</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-29T22:59:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Release notes for 8.10.2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b82011a0020a194a0d7b19d7b314f46d4b32289">7b82011a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-29T22:59:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump Cabal submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/750c51bafc6fa43ca19ffb112fa22f000c6f7e72">750c51ba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-29T22:59:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump hsc2hs submodule to 0.68.7
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f34695e98bf0af4a109bccfd1bd493c44ae59bca">f34695e9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-30T10:48:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore haskeline submodule to v0.8.0.0
It appears that this was incorrectly reverted in
4186c713e65dc5041d0b7a0e1d77f48edc763c3a.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/274989ffa5baf5873150bb843d614321846cae06">274989ff</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-30T10:48:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Mention LLVM version requirement
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/484c4d8950d6c2292a2be8fc6d580ea1a4a7559c">484c4d89</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-30T10:48:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ld.gold to link on deb10
Otherwise we use ld.lld, which fails with
ld.lld: error: -r and --export-dynamic may not be used together
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb0dae833ec99d03eed9958e4dfcbef5970718cc">bb0dae83</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-30T10:48:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Release GHC 8.10.2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81134748910b940eff5701c733ae2daaaa88ad58">81134748</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-31T16:47:01-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Build ARMv7 and AArch64 on Debian 10, not Debian 9
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fec2abb8e5cc1522b60400d2172abe141bd0f7ca">fec2abb8</a></strong>
<div>
<span>by Leon Schoorl</span>
<i>at 2020-08-01T14:43:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix GHC_STAGE definition generated by make
Fixes #18070
GHC_STAGE is the stage of the compiler we're building, it should be 1,2(,3?).
But make was generating 0 and 1.
Hadrian does this correctly using a similar `+ 1`:
https://gitlab.haskell.org/ghc/ghc/-/blob/eb8115a8c4cbc842b66798480fefc7ab64d31931/hadrian/src/Rules/Generate.hs#L245
(cherry picked from commit a481afef354ca0383477fd20891c2e8eb9ef4449)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/428320a97084501c6c11f4803219f7a8b4e92a3e">428320a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-03T17:51:43-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "iserv: Don't pass --export-dynamic on FreeBSD"
This reverts commit 2290eb02cf95e9cfffcb15fc9c593d5ef79c75d9.
(cherry picked from commit f9b7497d30d98a054d4ec5a8df2dfaf4a2b0bb30)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e69b0d42d88794837694429d33667c2f20931820">e69b0d42</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-04T23:37:46-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor handling of object merging
Previously to merge a set of object files we would invoke the linker as
usual, adding -r to the command-line. However, this can result in
non-sensical command-lines which causes lld to balk (#17962).
To avoid this we introduce a new tool setting into GHC, -pgmlm, which is
the linker which we use to merge object files.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b260f31f43eb0c41d3de77a42eda0570e9e1ab3f">b260f31f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-06T17:10:00-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">nativeGen: One approach to fix #18527
Previously the code generator could produce corrupt C call sequences due
to register overlap between MachOp lowerings and the platform's calling
convention. We fix this using a hack described in Note [Evaluate C-call
arguments before placing in destination registers].
(cherry picked from commit a647bae8518e96156eb7775c4cede52b69f711d7)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44f958c869f88936db583a0e7edfa47a67cdf8f9">44f958c8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-06T17:10:00-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add test for #18527
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29204b1c4f52ea34d84da33593052ee839293bf2">29204b1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-07T10:53:04-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">configure: Fix double-negation in ld merge-objects check
We want to only run the check if ld is gold.
Fixes the fix to #17962.
(cherry picked from commit d589ef25f54862968976bc279eb6748509794566)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/430e69ec0a76ddf72eae70919e637429f9f179ed">430e69ec</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-09T14:26:14-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Set RELEASE=NO
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fac083e7ac8a37b61a4082bbbca2848e52fd1bb2">fac083e7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-09T14:26:14-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "[linker/rtsSymbols] More linker symbols"
This reverts commit aa2e5863699306920513b216f337de09e29b5bb8.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82f15edc506cdf91c63c2351603c8f0fb0379914">82f15edc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-09T16:27:21-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Fix unused variable warning on Darwin
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f43a255a660ce3f5571f84d5d608b150f57d4821">f43a255a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-08-21T11:31:14-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump text submodule to 1.2.4.0
Fixes #18588 and #17956.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#157f7634c25bc6366cb7c9c9edb48e819dce38db">
<span class="new-file">
+
.gitlab/ci.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#1726cdd2367b3b0246025a33d56ad19b52d3e5d4">
<span class="deleted-file">
−
.gitlab/prepare-system.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#f656107cc03a27946448887125380c358788500e">
<span class="new-file">
+
.gitlab/test-metrics.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#0641ef536c197a46fddf169b39613b0ff5ad92b3">
<span class="deleted-file">
−
.gitlab/win32-init.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#9ab3868b23ed5d5a6e12ef902049902556fa4009">
aclocal.m4
</a>
</li>
<li class="file-stats">
<a href="#75bfcd03f3ba9315d33104fcb0424c6bfeb4e334">
compiler/GHC/Hs/Decls.hs
</a>
</li>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654">
compiler/GHC/Hs/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#8d8e5922fde8bc19ffa2bc9cae6b6720abb88564">
compiler/GHC/HsToCore/PmCheck/Oracle.hs
</a>
</li>
<li class="file-stats">
<a href="#e18aab7fcc134a71d91f9d26e33b5110a3917e44">
compiler/GHC/StgToCmm/Foreign.hs
</a>
</li>
<li class="file-stats">
<a href="#8390b439f37437a2642e4e31bd6e7e91438915d1">
compiler/GHC/StgToCmm/Prof.hs
</a>
</li>
<li class="file-stats">
<a href="#b62375d0938c2cf6d00a6bec9649e795e57a9683">
compiler/GHC/StgToCmm/Ticky.hs
</a>
</li>
<li class="file-stats">
<a href="#13bc6c694b9a1fa78aeab1e992926d759374ecb2">
compiler/GHC/StgToCmm/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#2f8fee2abca5d63f3b2a113efc849e4e6054c49a">
compiler/basicTypes/MkId.hs
</a>
</li>
<li class="file-stats">
<a href="#86d5486039a2ce83db2b33410cc15bb06e8b7132">
compiler/basicTypes/RdrName.hs
</a>
</li>
<li class="file-stats">
<a href="#db6936871693fa68c3fdcbd692eb7dcffc3a9372">
compiler/cmm/CLabel.hs
</a>
</li>
<li class="file-stats">
<a href="#d619e33ea242c71188c1a96a25ed85ab1732100f">
compiler/cmm/Cmm.hs
</a>
</li>
<li class="file-stats">
<a href="#e113fc0aba1ae306436787b3a33f8bb25fd513a9">
compiler/cmm/CmmCallConv.hs
</a>
</li>
<li class="file-stats">
<a href="#6baddca1d1d357c81c329f9a5877a1772b0086e9">
compiler/cmm/CmmMachOp.hs
</a>
</li>
<li class="file-stats">
<a href="#6ef05b1b6c1d8310a12b77b1b849f9dad563141c">
compiler/cmm/CmmParse.y
</a>
</li>
<li class="file-stats">
<a href="#61470c7221010080ec380a45874259d0ed73da4a">
compiler/cmm/PprC.hs
</a>
</li>
<li class="file-stats">
<a href="#f50439b73583d5fc97ab8917b6fc66f6188a1e62">
compiler/coreSyn/CorePrep.hs
</a>
</li>
<li class="file-stats">
<a href="#2851b7e67a48670033907e77d142974964daa069">
compiler/coreSyn/CoreSubst.hs
</a>
</li>
<li class="file-stats">
<a href="#c9f253bc92ffa226506febcfb5ef5e67536616f2">
compiler/coreSyn/CoreUnfold.hs
</a>
</li>
<li class="file-stats">
<a href="#b330982a833038b785b1f9db1eb6ec91ded5e7f0">
compiler/deSugar/Coverage.hs
</a>
</li>
<li class="file-stats">
<a href="#739e7c8c5f5618e9473d5a01d0a50b4c2aa7daa0">
compiler/deSugar/DsBinds.hs
</a>
</li>
<li class="file-stats">
<a href="#4cebcede53127700de963abffccad9d336d74889">
compiler/deSugar/DsExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#cb94ea134d6d52fab318831e397d2a5c789f2ef3">
compiler/deSugar/DsMeta.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#6846a4633a1df62b15f368e7e22420844e3c6352">
compiler/ghc.mk
</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/722cc2294120b297c9c824ee960c390f7d62e1ed...f43a255a660ce3f5571f84d5d608b150f57d4821">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>